Skip to content

Commit

Permalink
Rename HtmlRange.node to HtmlRange.xpath
Browse files Browse the repository at this point in the history
  • Loading branch information
clinton-encord committed Jan 13, 2025
1 parent 3c2671e commit b4eab9e
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 31 deletions.
18 changes: 9 additions & 9 deletions encord/objects/html_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,18 @@

class HtmlNode(BaseDTO):
"""
A class representing a single HTML node, with the node and offset.
A class representing a single HTML node, with the xpath and offset.
Attributes:
node (str): The xpath of the node
xpath (str): The xpath of the node
offset (int): The offset of the content from the xpath
"""

node: str
xpath: str
offset: int

def __repr__(self):
return f"(Node: {self.node} Offset: {self.offset})"
return f"(Node: {self.xpath} Offset: {self.offset})"


class HtmlRange(BaseDTO):
Expand All @@ -51,18 +51,18 @@ def __repr__(self):

def to_dict(self):
return {
"start": {"node": self.start.node, "offset": self.start.offset},
"end": {"node": self.end.node, "offset": self.end.offset},
"start": {"xpath": self.start.xpath, "offset": self.start.offset},
"end": {"xpath": self.end.xpath, "offset": self.end.offset},
}

def __hash__(self):
return f"{self.start.node}-{self.start.offset}-{self.end.node}-{self.end.offset}"
return f"{self.start.xpath}-{self.start.offset}-{self.end.xpath}-{self.end.offset}"

@classmethod
def from_dict(cls, d: dict):
return HtmlRange(
start=HtmlNode(node=d["start"]["node"], offset=d["start"]["offset"]),
end=HtmlNode(node=d["end"]["node"], offset=d["end"]["offset"]),
start=HtmlNode(xpath=d["start"]["xpath"], offset=d["start"]["offset"]),
end=HtmlNode(xpath=d["end"]["xpath"], offset=d["end"]["offset"]),
)


Expand Down
4 changes: 2 additions & 2 deletions tests/objects/data/html_text_labels.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@
"range_html": [
{
"start": {
"node": "start_node",
"xpath": "start_node",
"offset": 5,
},
"end": {
"node": "end_node",
"xpath": "end_node",
"offset": 10,
},
}
Expand Down
40 changes: 20 additions & 20 deletions tests/objects/test_label_structure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1264,8 +1264,8 @@ def test_get_annotations_from_html_text_object(ontology) -> None:
now = datetime.datetime.now()

range = HtmlRange(
start=HtmlNode(node="/html[1]/body[1]/div[1]/text()[1]", offset=50),
end=HtmlNode(node="/html[1]/body[1]/div[1]/text()[1]", offset=60),
start=HtmlNode(xpath="/html[1]/body[1]/div[1]/text()[1]", offset=50),
end=HtmlNode(xpath="/html[1]/body[1]/div[1]/text()[1]", offset=60),
)

object_instance = ObjectInstance(text_obj_ontology_item)
Expand Down Expand Up @@ -1313,8 +1313,8 @@ def test_html_text_object_can_be_added_edited_and_removed(ontology, empty_html_t

initial_range = [
HtmlRange(
start=HtmlNode(node="start_node", offset=50),
end=HtmlNode(node="end_node", offset=100),
start=HtmlNode(xpath="start_node", offset=50),
end=HtmlNode(xpath="end_node", offset=100),
)
]

Expand All @@ -1323,9 +1323,9 @@ def test_html_text_object_can_be_added_edited_and_removed(ontology, empty_html_t

assert range is not None
assert len(range) == 1
assert range[0].start.node == "start_node"
assert range[0].start.xpath == "start_node"
assert range[0].start.offset == 50
assert range[0].end.node == "end_node"
assert range[0].end.xpath == "end_node"
assert range[0].end.offset == 100

label_row.add_object_instance(obj_instance)
Expand All @@ -1334,27 +1334,27 @@ def test_html_text_object_can_be_added_edited_and_removed(ontology, empty_html_t

edited_range = [
HtmlRange(
start=HtmlNode(node="start_node_edited", offset=70),
end=HtmlNode(node="end_node_edited", offset=90),
start=HtmlNode(xpath="start_node_edited", offset=70),
end=HtmlNode(xpath="end_node_edited", offset=90),
),
HtmlRange(
start=HtmlNode(node="start_node_new", offset=5),
end=HtmlNode(node="end_node_new", offset=7),
start=HtmlNode(xpath="start_node_new", offset=5),
end=HtmlNode(xpath="end_node_new", offset=7),
),
]

obj_instance.set_for_frames(HtmlCoordinates(range=edited_range), overwrite=True)
range = obj_instance.range_html
assert range is not None
assert len(range) == 2
assert range[0].start.node == "start_node_edited"
assert range[0].start.xpath == "start_node_edited"
assert range[0].start.offset == 70
assert range[0].end.node == "end_node_edited"
assert range[0].end.xpath == "end_node_edited"
assert range[0].end.offset == 90

assert range[1].start.node == "start_node_new"
assert range[1].start.xpath == "start_node_new"
assert range[1].start.offset == 5
assert range[1].end.node == "end_node_new"
assert range[1].end.xpath == "end_node_new"
assert range[1].end.offset == 7

obj_instance.remove_from_frames(frames=0)
Expand All @@ -1369,8 +1369,8 @@ def test_html_text_object_cannot_be_added_to_non_html_label_row(

initial_range = [
HtmlRange(
start=HtmlNode(node="start_node", offset=50),
end=HtmlNode(node="end_node", offset=100),
start=HtmlNode(xpath="start_node", offset=50),
end=HtmlNode(xpath="end_node", offset=100),
)
]

Expand All @@ -1379,9 +1379,9 @@ def test_html_text_object_cannot_be_added_to_non_html_label_row(

assert range is not None
assert len(range) == 1
assert range[0].start.node == "start_node"
assert range[0].start.xpath == "start_node"
assert range[0].start.offset == 50
assert range[0].end.node == "end_node"
assert range[0].end.xpath == "end_node"
assert range[0].end.offset == 100

with pytest.raises(LabelRowError) as e:
Expand All @@ -1406,8 +1406,8 @@ def test_set_for_frames_with_range_html_throws_error_if_used_incorrectly(
):
range_html = [
HtmlRange(
start=HtmlNode(node="start_node", offset=50),
end=HtmlNode(node="end_node", offset=100),
start=HtmlNode(xpath="start_node", offset=50),
end=HtmlNode(xpath="end_node", offset=100),
)
]

Expand Down

0 comments on commit b4eab9e

Please sign in to comment.