55"""
66
77from .. import OxmlElement
8- from ..shared import CT_DecimalNumber
98from ..ns import qn
10- from ..xmlchemy import BaseOxmlElement
9+ from ..shared import CT_DecimalNumber
10+ from ..simpletypes import ST_DecimalNumber
11+ from ..xmlchemy import (
12+ BaseOxmlElement , OneAndOnlyOne , RequiredAttribute , ZeroOrMore
13+ )
1114
1215
1316class CT_Num (BaseOxmlElement ):
@@ -16,18 +19,16 @@ class CT_Num(BaseOxmlElement):
1619 instance, having a required child <w:abstractNumId> that references an
1720 abstract numbering definition that defines most of the formatting details.
1821 """
19- @ property
20- def abstractNumId ( self ):
21- return self . find ( qn ( 'w:abstractNumId' ) )
22+ abstractNumId = OneAndOnlyOne ( 'w:abstractNumId' )
23+ lvlOverride = ZeroOrMore ( 'w:lvlOverride' )
24+ numId = RequiredAttribute ( 'w:numId' , ST_DecimalNumber )
2225
2326 def add_lvlOverride (self , ilvl ):
2427 """
2528 Return a newly added CT_NumLvl (<w:lvlOverride>) element having its
2629 ``ilvl`` attribute set to *ilvl*.
2730 """
28- lvlOverride = CT_NumLvl .new (ilvl )
29- self .append (lvlOverride )
30- return lvlOverride
31+ return self ._add_lvlOverride (ilvl = ilvl )
3132
3233 @classmethod
3334 def new (cls , num_id , abstractNum_id ):
@@ -36,24 +37,22 @@ def new(cls, num_id, abstractNum_id):
3637 a ``<w:abstractNumId>`` child with val attribute set to
3738 *abstractNum_id*.
3839 """
40+ num = OxmlElement ('w:num' )
41+ num .numId = num_id
3942 abstractNumId = CT_DecimalNumber .new (
4043 'w:abstractNumId' , abstractNum_id
4144 )
42- num = OxmlElement ('w:num' , {qn ('w:numId' ): str (num_id )})
4345 num .append (abstractNumId )
4446 return num
4547
46- @property
47- def numId (self ):
48- numId_str = self .get (qn ('w:numId' ))
49- return int (numId_str )
50-
5148
5249class CT_NumLvl (BaseOxmlElement ):
5350 """
5451 ``<w:lvlOverride>`` element, which identifies a level in a list
5552 definition to override with settings it contains.
5653 """
54+ ilvl = RequiredAttribute ('w:ilvl' , ST_DecimalNumber )
55+
5756 def add_startOverride (self , val ):
5857 """
5958 Return a newly added CT_DecimalNumber element having tagname
@@ -63,14 +62,6 @@ def add_startOverride(self, val):
6362 self .insert (0 , startOverride )
6463 return startOverride
6564
66- @classmethod
67- def new (cls , ilvl ):
68- """
69- Return a new ``<w:lvlOverride>`` element having its ``ilvl``
70- attribute set to *ilvl*.
71- """
72- return OxmlElement ('w:lvlOverride' , {qn ('w:ilvl' ): str (ilvl )})
73-
7465
7566class CT_NumPr (BaseOxmlElement ):
7667 """
0 commit comments