Skip to content

Commit 5a17d8c

Browse files
committed
refactor Table, add tests for Table
1 parent bb1e65b commit 5a17d8c

File tree

2 files changed

+584
-15
lines changed

2 files changed

+584
-15
lines changed

src/odfdo/table.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
from .datatype import Boolean, Date, DateTime, Duration
4444
from .element import (
4545
Element,
46+
EText,
4647
register_element_class,
4748
xpath_compile,
4849
xpath_return_elements,
@@ -63,7 +64,6 @@
6364
)
6465

6566
if TYPE_CHECKING:
66-
from .element import EText
6767
from .style import Style
6868

6969
_XP_ROW = xpath_compile(
@@ -637,15 +637,11 @@ def protection_key(self, key: str) -> None:
637637

638638
@property
639639
def printable(self) -> bool:
640-
printable = self.get_attribute("table:print")
641-
# Default value
642-
if printable is None:
643-
return True
644-
return bool(printable)
640+
return self._get_attribute_bool_default("table:print", True)
645641

646642
@printable.setter
647643
def printable(self, printable: bool) -> None:
648-
self.set_attribute("table:print", printable)
644+
self._set_attribute_bool_default("table:print", printable, True)
649645

650646
@property
651647
def print_ranges(self) -> list[str]:
@@ -759,7 +755,7 @@ def iter_values(
759755
760756
Filter by coordinates will parse the area defined by the coordinates.
761757
762-
cell_type, complete, grt_type : see get_values()
758+
cell_type, complete, get_type : see get_values()
763759
764760
765761
@@ -891,11 +887,9 @@ def rstrip(self, aggressive: bool = False) -> None:
891887
self._table_cache.clear_row_indexes()
892888
# Step 3: trim columns to match max_width
893889
columns = self._get_columns()
894-
repeated_cols: list[EText] = self.xpath( # type: ignore[assignment]
895-
"table:table-column/@table:number-columns-repeated"
890+
repeated_cols: list[EText] = cast(
891+
list[EText], self.xpath("table:table-column/@table:number-columns-repeated")
896892
)
897-
if not isinstance(repeated_cols, list):
898-
raise TypeError
899893
unrepeated = len(columns) - len(repeated_cols)
900894
column_width = sum(int(r) for r in repeated_cols) + unrepeated
901895
diff = column_width - max_width

0 commit comments

Comments
 (0)