From 60ad0394a717c076324c4a5d53602cdf715477be Mon Sep 17 00:00:00 2001 From: "Chris (ChrisJr404)" <11917633+ChrisJr404@users.noreply.github.com> Date: Mon, 24 Aug 2026 15:47:10 -0400 Subject: [PATCH] table: add _Row.index and _Column.index --- src/docx/table.py | 22 +++++++++++----------- tests/test_table.py | 8 ++++---- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/docx/table.py b/src/docx/table.py index 545c46884..944f87691 100644 --- a/src/docx/table.py +++ b/src/docx/table.py @@ -322,7 +322,12 @@ def __init__(self, gridCol: CT_TblGridCol, parent: TableParent): @property def cells(self) -> tuple[_Cell, ...]: """Sequence of |_Cell| instances corresponding to cells in this column.""" - return tuple(self.table.column_cells(self._index)) + return tuple(self.table.column_cells(self.index)) + + @property + def index(self) -> int: + """Index of this column in the table, starting from zero.""" + return self._gridCol.gridCol_idx @property def table(self) -> Table: @@ -338,11 +343,6 @@ def width(self) -> Length | None: def width(self, value: Length | None): self._gridCol.w = value - @property - def _index(self): - """Index of this column in its table, starting from zero.""" - return self._gridCol.gridCol_idx - class _Columns(Parented): """Sequence of |_Column| instances corresponding to the columns in a table. @@ -471,6 +471,11 @@ def grid_cols_before(self) -> int: """ return self._tr.grid_before + @property + def index(self) -> int: + """Index of this row in the table, starting from zero.""" + return self._tr.tr_idx + @property def height(self) -> Length | None: """Return a |Length| object representing the height of this cell, or |None| if @@ -498,11 +503,6 @@ def table(self) -> Table: """Reference to the |Table| object this row belongs to.""" return self._parent.table - @property - def _index(self) -> int: - """Index of this row in its table, starting from zero.""" - return self._tr.tr_idx - class _Rows(Parented): """Sequence of |_Row| objects corresponding to the rows in a table. diff --git a/tests/test_table.py b/tests/test_table.py index 479d670c6..4374eb404 100644 --- a/tests/test_table.py +++ b/tests/test_table.py @@ -599,13 +599,13 @@ def it_knows_its_index_in_table_to_help(self, table_: Mock): tbl = cast(CT_Tbl, element("w:tbl/w:tblGrid/(w:gridCol,w:gridCol,w:gridCol)")) gridCol = tbl.tblGrid.gridCol_lst[1] column = _Column(gridCol, table_) - assert column._index == 1 + assert column.index == 1 # fixtures ------------------------------------------------------- @pytest.fixture def _index_prop_(self, request: FixtureRequest): - return property_mock(request, _Column, "_index") + return property_mock(request, _Column, "index") @pytest.fixture def parent_(self, request: FixtureRequest): @@ -826,13 +826,13 @@ def it_provides_access_to_the_table_it_belongs_to(self, parent_: Mock, table_: M def it_knows_its_index_in_table_to_help(self, parent_: Mock): tbl = element("w:tbl/(w:tr,w:tr,w:tr)") row = _Row(cast(CT_Row, tbl[1]), parent_) - assert row._index == 1 + assert row.index == 1 # fixtures ------------------------------------------------------- @pytest.fixture def _index_prop_(self, request: FixtureRequest): - return property_mock(request, _Row, "_index") + return property_mock(request, _Row, "index") @pytest.fixture def parent_(self, request: FixtureRequest):