Skip to content

Commit 958a97d

Browse files
author
Steve Canny
committed
tbl: base _Column on Parented
1 parent bb8b718 commit 958a97d

2 files changed

Lines changed: 10 additions & 9 deletions

File tree

docx/table.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def add_column(self):
2626
gridCol = tblGrid.add_gridCol()
2727
for tr in self._tbl.tr_lst:
2828
tr.add_tc()
29-
return _Column(gridCol, self._tbl)
29+
return _Column(gridCol, self._tbl, self)
3030

3131
def add_row(self):
3232
"""
@@ -109,12 +109,12 @@ def text(self, text):
109109
r.text = text
110110

111111

112-
class _Column(object):
112+
class _Column(Parented):
113113
"""
114114
Table column
115115
"""
116-
def __init__(self, gridCol, tbl):
117-
super(_Column, self).__init__()
116+
def __init__(self, gridCol, tbl, parent):
117+
super(_Column, self).__init__(parent)
118118
self._gridCol = gridCol
119119
self._tbl = tbl
120120

@@ -197,10 +197,11 @@ def __getitem__(self, idx):
197197
except IndexError:
198198
msg = "column index [%d] is out of range" % idx
199199
raise IndexError(msg)
200-
return _Column(gridCol, self._tbl)
200+
return _Column(gridCol, self._tbl, self)
201201

202202
def __iter__(self):
203-
return (_Column(gridCol, self._tbl) for gridCol in self._gridCol_lst)
203+
for gridCol in self._gridCol_lst:
204+
yield _Column(gridCol, self._tbl, self)
204205

205206
def __len__(self):
206207
return len(self._gridCol_lst)

tests/test_table.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def paragraphs_fixture(self):
154154
class Describe_Column(object):
155155

156156
def it_provides_access_to_the_column_cells(self):
157-
column = _Column(None, None)
157+
column = _Column(None, None, None)
158158
cells = column.cells
159159
assert isinstance(cells, _ColumnCells)
160160

@@ -180,7 +180,7 @@ def it_can_change_its_width(self, width_set_fixture):
180180
])
181181
def width_get_fixture(self, request):
182182
gridCol_cxml, expected_width = request.param
183-
column = _Column(element(gridCol_cxml), None)
183+
column = _Column(element(gridCol_cxml), None, None)
184184
return column, expected_width
185185

186186
@pytest.fixture(params=[
@@ -191,7 +191,7 @@ def width_get_fixture(self, request):
191191
])
192192
def width_set_fixture(self, request):
193193
gridCol_cxml, new_value, expected_cxml = request.param
194-
column = _Column(element(gridCol_cxml), None)
194+
column = _Column(element(gridCol_cxml), None, None)
195195
expected_xml = xml(expected_cxml)
196196
return column, new_value, expected_xml
197197

0 commit comments

Comments
 (0)