ó
    ‰*£h}  ã                   ó    • S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	J
r
JrJr   " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      rg)z5Custom element classes related to the numbering part.é    )ÚOxmlElement)ÚCT_DecimalNumber)ÚST_DecimalNumber)ÚBaseOxmlElementÚOneAndOnlyOneÚRequiredAttributeÚ
ZeroOrMoreÚ	ZeroOrOnec                   ó`   • \ rS rSrSr\" S5      r\" S5      r\	" S\
5      rS r\S 5       rSrg	)
ÚCT_Numé   zÒ``<w:num>`` element, which represents a concrete list definition instance, having
a required child <w:abstractNumId> that references an abstract numbering definition
that defines most of the formatting details.úw:abstractNumIdzw:lvlOverrideúw:numIdc                 ó    • U R                  US9$ )zeReturn a newly added CT_NumLvl (<w:lvlOverride>) element having its ``ilvl``
attribute set to `ilvl`.)Úilvl)Ú_add_lvlOverride)Úselfr   s     ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docx/oxml/numbering.pyÚadd_lvlOverrideÚCT_Num.add_lvlOverride   s   € ð ×$Ñ$¨$Ð$Ð/Ð/ó    c                 óx   • [        S5      nXl        [        R                  " SU5      nUR	                  U5        U$ )zŽReturn a new ``<w:num>`` element having numId of `num_id` and having a
``<w:abstractNumId>`` child with val attribute set to `abstractNum_id`.úw:numr   )r   ÚnumIdr   ÚnewÚappend)ÚclsÚnum_idÚabstractNum_idÚnumÚabstractNumIds        r   r   Ú
CT_Num.new   s7   € ô ˜'Ó"ˆØŒ	Ü(×,Ò,Ð->ÀÓOˆØ�
‰
�=Ô!Øˆ
r   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r!   r	   ÚlvlOverrider   r   r   r   Úclassmethodr   Ú__static_attributes__r#   r   r   r   r      sD   † ñ4ñ "Ð"3Ó4€MÙ˜_Ó-€KÙ˜iÐ)9Ó:€Eò0ð
 ñó ór   r   c                   ó>   • \ rS rSrSr\" SSS9r\" S\5      r	S r
Srg	)
Ú	CT_NumLvlé(   zq``<w:lvlOverride>`` element, which identifies a level in a list definition to
override with settings it contains.zw:startOverride)zw:lvl©Ú
successorsúw:ilvlc                 ó    • U R                  US9$ )ztReturn a newly added CT_DecimalNumber element having tagname
``w:startOverride`` and ``val`` attribute set to `val`.)Úval)Ú_add_startOverride)r   r3   s     r   Úadd_startOverrideÚCT_NumLvl.add_startOverride/   s   € ð ×&Ñ&¨3Ð&Ð/Ð/r   r#   N)r$   r%   r&   r'   r(   r
   ÚstartOverrider   r   r   r5   r+   r#   r   r   r-   r-   (   s(   † ñ+ñ Ð/¸JÑG€MÙ˜XÐ'7Ó8€Dõ0r   r-   c                   ó4   • \ rS rSrSr\" SSS9r\" SSS9rSrg	)
ÚCT_NumPré5   zUA ``<w:numPr>`` element, a container for numbering properties applied to a
paragraph.r1   )r   úw:numberingChangeúw:insr/   r   )r;   r<   r#   N)	r$   r%   r&   r'   r(   r
   r   r   r+   r#   r   r   r9   r9   5   s#   † ññ �XÐ*SÑT€DÙ�iÐ,JÑKƒEr   r9   c                   óB   • \ rS rSrSr\" SSS9rS rS r\	S 5       r
S	rg
)ÚCT_NumberingéN   zT``<w:numbering>`` element, the root element of a numbering part, i.e.
numbering.xml.r   )zw:numIdMacAtCleanupr/   c                 óf   • U R                   n[        R                  X!5      nU R                  U5      $ )z{Return a newly added CT_Num (<w:num>) element referencing the abstract
numbering definition identified by `abstractNum_id`.)Ú_next_numIdr   r   Ú_insert_num)r   r   Únext_num_idr    s       r   Úadd_numÚCT_Numbering.add_numT   s.   € ð ×&Ñ&ˆÜ�j‰j˜Ó5ˆØ×Ñ Ó$Ð$r   c                 ón   • SU-  n U R                  U5      S   $ ! [         a    [        SU-  5      ef = f)zQReturn the ``<w:num>`` child element having ``numId`` attribute matching
`numId`.z./w:num[@w:numId="%d"]r   z no <w:num> element with numId %d)ÚxpathÚ
IndexErrorÚKeyError)r   r   rG   s      r   Únum_having_numIdÚCT_Numbering.num_having_numId[   sJ   € ð )¨5Ñ0ˆð	GØ—:‘:˜eÓ$ QÑ'Ð'øÜó 	GÜÐ=ÀÑEÓFÐFð	Gús   ‡ ›4c                 ó¶   • U R                  S5      nU Vs/ s H  n[        U5      PM     nn[        S[        U5      S-   5       H  nXC;  d  M
    U$    W$ s  snf )z‹The first ``numId`` unused by a ``<w:num>`` element, starting at 1 and
filling any gaps in numbering between existing ``<w:num>`` elements.z./w:num/@w:numIdé   é   )rG   ÚintÚrangeÚlen)r   Ú
numId_strsÚ	numId_strÚnum_idsr    s        r   rA   ÚCT_Numbering._next_numIdd   s_   € ð —Z‘ZÐ 2Ó3ˆ
Ù3=Ó>²: i”3�y–>±:ˆÐ>Ü˜œC ›L¨1Ñ,Ö-ˆCØÕ!ØØˆ
ñ .ð ˆ
ùò	 ?s   –Ar#   N)r$   r%   r&   r'   r(   r	   r    rD   rJ   ÚpropertyrA   r+   r#   r   r   r>   r>   N   s5   † ññ �WÐ)AÑ
B€Cò%òGð ñó ór   r>   N)r(   Údocx.oxml.parserr   Údocx.oxml.sharedr   Údocx.oxml.simpletypesr   Údocx.oxml.xmlchemyr   r   r   r	   r
   r   r-   r9   r>   r#   r   r   Ú<module>r[      sM   ðÙ ;å (Ý -Ý 2÷õ ôˆ_ô ô2
0�ô 
0ôLˆô Lô2�?õ r   