Skip to content

Commit 965aaf1

Browse files
author
Steve Canny
committed
oxml: convert CT_TblPr to xmlchemy
1 parent 6cd7cd8 commit 965aaf1

File tree

2 files changed

+41
-57
lines changed

2 files changed

+41
-57
lines changed

docs/dev/analysis/features/table.rst

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -114,22 +114,22 @@ Schema Definitions
114114
<xsd:complexType name="CT_TblPr"> <!-- denormalized -->
115115
<xsd:sequence>
116116
<xsd:element name="tblStyle" type="CT_String" minOccurs="0"/>
117-
<xsd:element name="tblpPr" type="CT_TblPPr" minOccurs="0" maxOccurs="1"/>
118-
<xsd:element name="tblOverlap" type="CT_TblOverlap" minOccurs="0" maxOccurs="1"/>
119-
<xsd:element name="bidiVisual" type="CT_OnOff" minOccurs="0" maxOccurs="1"/>
120-
<xsd:element name="tblStyleRowBandSize" type="CT_DecimalNumber" minOccurs="0" maxOccurs="1"/>
121-
<xsd:element name="tblStyleColBandSize" type="CT_DecimalNumber" minOccurs="0" maxOccurs="1"/>
122-
<xsd:element name="tblW" type="CT_TblWidth" minOccurs="0" maxOccurs="1"/>
123-
<xsd:element name="jc" type="CT_JcTable" minOccurs="0" maxOccurs="1"/>
124-
<xsd:element name="tblCellSpacing" type="CT_TblWidth" minOccurs="0" maxOccurs="1"/>
125-
<xsd:element name="tblInd" type="CT_TblWidth" minOccurs="0" maxOccurs="1"/>
126-
<xsd:element name="tblBorders" type="CT_TblBorders" minOccurs="0" maxOccurs="1"/>
127-
<xsd:element name="shd" type="CT_Shd" minOccurs="0" maxOccurs="1"/>
128-
<xsd:element name="tblLayout" type="CT_TblLayoutType" minOccurs="0" maxOccurs="1"/>
129-
<xsd:element name="tblCellMar" type="CT_TblCellMar" minOccurs="0" maxOccurs="1"/>
130-
<xsd:element name="tblLook" type="CT_TblLook" minOccurs="0" maxOccurs="1"/>
131-
<xsd:element name="tblCaption" type="CT_String" minOccurs="0" maxOccurs="1"/>
132-
<xsd:element name="tblDescription" type="CT_String" minOccurs="0" maxOccurs="1"/>
117+
<xsd:element name="tblpPr" type="CT_TblPPr" minOccurs="0"/>
118+
<xsd:element name="tblOverlap" type="CT_TblOverlap" minOccurs="0"/>
119+
<xsd:element name="bidiVisual" type="CT_OnOff" minOccurs="0"/>
120+
<xsd:element name="tblStyleRowBandSize" type="CT_DecimalNumber" minOccurs="0"/>
121+
<xsd:element name="tblStyleColBandSize" type="CT_DecimalNumber" minOccurs="0"/>
122+
<xsd:element name="tblW" type="CT_TblWidth" minOccurs="0"/>
123+
<xsd:element name="jc" type="CT_JcTable" minOccurs="0"/>
124+
<xsd:element name="tblCellSpacing" type="CT_TblWidth" minOccurs="0"/>
125+
<xsd:element name="tblInd" type="CT_TblWidth" minOccurs="0"/>
126+
<xsd:element name="tblBorders" type="CT_TblBorders" minOccurs="0"/>
127+
<xsd:element name="shd" type="CT_Shd" minOccurs="0"/>
128+
<xsd:element name="tblLayout" type="CT_TblLayoutType" minOccurs="0"/>
129+
<xsd:element name="tblCellMar" type="CT_TblCellMar" minOccurs="0"/>
130+
<xsd:element name="tblLook" type="CT_TblLook" minOccurs="0"/>
131+
<xsd:element name="tblCaption" type="CT_String" minOccurs="0"/>
132+
<xsd:element name="tblDescription" type="CT_String" minOccurs="0"/>
133133
<xsd:element name="tblPrChange" type="CT_TblPrChange" minOccurs="0"/>
134134
</xsd:sequence>
135135

@@ -170,8 +170,8 @@ Schema Definitions
170170

171171
<xsd:complexType name="CT_Row">
172172
<xsd:sequence>
173-
<xsd:element name="tblPrEx" type="CT_TblPrEx" minOccurs="0" maxOccurs="1"/>
174-
<xsd:element name="trPr" type="CT_TrPr" minOccurs="0" maxOccurs="1"/>
173+
<xsd:element name="tblPrEx" type="CT_TblPrEx" minOccurs="0"/>
174+
<xsd:element name="trPr" type="CT_TrPr" minOccurs="0"/>
175175
<xsd:group ref="EG_ContentCellContent" minOccurs="0" maxOccurs="unbounded"/>
176176
</xsd:sequence>
177177
<xsd:attribute name="rsidRPr" type="ST_LongHexNumber"/>
@@ -191,7 +191,7 @@ Schema Definitions
191191

192192
<xsd:complexType name="CT_Tc">
193193
<xsd:sequence>
194-
<xsd:element name="tcPr" type="CT_TcPr" minOccurs="0" maxOccurs="1"/>
194+
<xsd:element name="tcPr" type="CT_TcPr" minOccurs="0"/>
195195
<xsd:group ref="EG_BlockLevelElts" minOccurs="1" maxOccurs="unbounded"/>
196196
</xsd:sequence>
197197
<xsd:attribute name="id" type="s:ST_String" use="optional"/>
@@ -222,22 +222,22 @@ Schema Definitions
222222

223223
<xsd:complexType name="CT_TcPr"> <!-- denormalized -->
224224
<xsd:sequence>
225-
<xsd:element name="cnfStyle" type="CT_Cnf" minOccurs="0" maxOccurs="1"/>
226-
<xsd:element name="tcW" type="CT_TblWidth" minOccurs="0" maxOccurs="1"/>
227-
<xsd:element name="gridSpan" type="CT_DecimalNumber" minOccurs="0"/>
228-
<xsd:element name="hMerge" type="CT_HMerge" minOccurs="0"/>
229-
<xsd:element name="vMerge" type="CT_VMerge" minOccurs="0"/>
230-
<xsd:element name="tcBorders" type="CT_TcBorders" minOccurs="0" maxOccurs="1"/>
231-
<xsd:element name="shd" type="CT_Shd" minOccurs="0"/>
232-
<xsd:element name="noWrap" type="CT_OnOff" minOccurs="0"/>
233-
<xsd:element name="tcMar" type="CT_TcMar" minOccurs="0" maxOccurs="1"/>
234-
<xsd:element name="textDirection" type="CT_TextDirection" minOccurs="0" maxOccurs="1"/>
235-
<xsd:element name="tcFitText" type="CT_OnOff" minOccurs="0" maxOccurs="1"/>
236-
<xsd:element name="vAlign" type="CT_VerticalJc" minOccurs="0"/>
237-
<xsd:element name="hideMark" type="CT_OnOff" minOccurs="0"/>
238-
<xsd:element name="headers" type="CT_Headers" minOccurs="0"/>
239-
<xsd:group ref="EG_CellMarkupElements" minOccurs="0" maxOccurs="1"/>
240-
<xsd:element name="tcPrChange" type="CT_TcPrChange" minOccurs="0"/>
225+
<xsd:element name="cnfStyle" type="CT_Cnf" minOccurs="0"/>
226+
<xsd:element name="tcW" type="CT_TblWidth" minOccurs="0"/>
227+
<xsd:element name="gridSpan" type="CT_DecimalNumber" minOccurs="0"/>
228+
<xsd:element name="hMerge" type="CT_HMerge" minOccurs="0"/>
229+
<xsd:element name="vMerge" type="CT_VMerge" minOccurs="0"/>
230+
<xsd:element name="tcBorders" type="CT_TcBorders" minOccurs="0"/>
231+
<xsd:element name="shd" type="CT_Shd" minOccurs="0"/>
232+
<xsd:element name="noWrap" type="CT_OnOff" minOccurs="0"/>
233+
<xsd:element name="tcMar" type="CT_TcMar" minOccurs="0"/>
234+
<xsd:element name="textDirection" type="CT_TextDirection" minOccurs="0"/>
235+
<xsd:element name="tcFitText" type="CT_OnOff" minOccurs="0"/>
236+
<xsd:element name="vAlign" type="CT_VerticalJc" minOccurs="0"/>
237+
<xsd:element name="hideMark" type="CT_OnOff" minOccurs="0"/>
238+
<xsd:element name="headers" type="CT_Headers" minOccurs="0"/>
239+
<xsd:group ref="EG_CellMarkupElements" minOccurs="0"/>
240+
<xsd:element name="tcPrChange" type="CT_TcPrChange" minOccurs="0"/>
241241
</xsd:sequence>
242242
</xsd:complexType>
243243

docx/oxml/table.py

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@
88

99
from . import OxmlElement
1010
from .ns import qn
11-
from .shared import CT_String
1211
from .text import CT_P
13-
from .xmlchemy import BaseOxmlElement, OneAndOnlyOne, ZeroOrMore
12+
from .xmlchemy import BaseOxmlElement, OneAndOnlyOne, ZeroOrOne, ZeroOrMore
1413

1514

1615
class CT_Row(BaseOxmlElement):
@@ -72,13 +71,14 @@ class CT_TblPr(BaseOxmlElement):
7271
``<w:tblPr>`` element, child of ``<w:tbl>``, holds child elements that
7372
define table properties such as style and borders.
7473
"""
74+
tblStyle = ZeroOrOne('w:tblStyle')
75+
7576
def add_tblStyle(self, style_name):
7677
"""
77-
Return a new <w:tblStyle> element newly inserted in sequence among
78-
the existing child elements, respecting the schema definition.
78+
Return a new <w:tblStyle> element having its style set to
79+
*style_name*.
7980
"""
80-
tblStyle = CT_String.new('w:tblStyle', style_name)
81-
return self._insert_tblStyle(tblStyle)
81+
return self._add_tblStyle(val=style_name)
8282

8383
@classmethod
8484
def new(cls):
@@ -87,22 +87,6 @@ def new(cls):
8787
"""
8888
return OxmlElement('w:tblPr')
8989

90-
@property
91-
def tblStyle(self):
92-
"""
93-
Optional <w:tblStyle> child element, or |None| if not present.
94-
"""
95-
return self.find(qn('w:tblStyle'))
96-
97-
def _insert_tblStyle(self, tblStyle):
98-
"""
99-
Return *tblStyle* after inserting it in sequence among the existing
100-
child elements. Assumes no ``<w:tblStyle>`` element is present.
101-
"""
102-
assert self.tblStyle is None
103-
self.insert(0, tblStyle)
104-
return tblStyle
105-
10690

10791
class CT_Tc(BaseOxmlElement):
10892
"""

0 commit comments

Comments
 (0)