
    j                     4   d dl Z ddlmZ ddlmZ d Zd Zd Ze j                   G d	 d
e	             Z
e j                   G d de	             Zd Zd Zd Zd Ze j                   G d de	             Z G d de	      Z ei i ej$                        e_        y)    N   )numbering_level   )Stylesc                 J    t        |       }t        |       }t        |||      S )Nabstract_numsnumsstyles)_read_abstract_nums
_read_nums	Numbering)elementr   r	   r
   s       [/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/mammoth/docx/numbering_xml.pyread_numbering_xml_elementr      s%    '0MgD=tFKK    c                 V    | j                  d      }t        t        t        |            S )Nzw:abstractNum)find_childrendictmap_read_abstract_num)r   abstract_num_elementss     r   r   r      s'    #11/B&(=>??r   c                     | j                   j                  d      }t        |       }| j                  d      j                   j                  d      }|t	        ||      fS )Nw:abstractNumIdzw:numStyleLinkw:val)levelsnum_style_link)
attributesget_read_abstract_num_levelsfind_child_or_null_AbstractNum)r   abstract_num_idr   r   s       r   r   r      sX    ((,,->?O&w/F//0@ALLPPQXYNL~VVVr   c                   P    e Zd Z ej                         Z ej                         Zy)r"   N)__name__
__module____qualname__cobblefieldr   r    r   r   r"   r"      s    V\\^F!V\\^Nr   r"   c                   r    e Zd Z ej                         Z ej                         Z ej                         Zy)_AbstractNumLevelN)r%   r&   r'   r(   r)   level_index
is_orderedparagraph_style_idr*   r   r   r,   r,      s*    &,,.KJ%r   r,   c                     i }d }| j                  d      D ]2  }t        |      }|j                  
d|_        |}$|||j                  <   4 ||j                  |vr|||j                  <   |S )Nzw:lvl0)r   _read_abstract_num_levelr-   )r   r   level_without_indexlevel_elementlevels        r   r    r    &   s    F
  ..w7 .(7$ #E"'(-F5$$%. &+>+J+JRX+X2E"../Mr   c                    | j                   j                  d      }| j                  d      j                   j                  d      }|dk7  }| j                  d      j                   j                  d      }t        |||      S )Nzw:ilvlzw:numFmtr   bulletzw:pStyle)r-   r.   r/   )r   r   r!   r,   )r   r-   num_fmtr.   r/   s        r   r2   r2   <   s{    $$((2K((4??CCGLGH$J 33J?JJNNwW- r   c                 H    | j                  d      }t        d |D              S )Nzw:numc              3   2   K   | ]  }t        |        y wN)	_read_num).0num_elements     r   	<genexpr>z_read_nums.<locals>.<genexpr>J   s       	+s   )r   r   )r   num_elementss     r   r   r   H   s,    ((1L '  r   c                     | j                   j                  d      }| j                  d      j                   d   }|t        |      fS )Nzw:numIdr   r   )r#   )r   r   r!   _Num)r   num_idr#   s      r   r<   r<   P   sD    ##I.F001BCNNwWO4888r   c                   .    e Zd Z ej                         Zy)rB   N)r%   r&   r'   r(   r)   r#   r*   r   r   rB   rB   V   s    "fllnOr   rB   c                   $    e Zd Zd Zd Zd Zd Zy)r   c                 ~     | _         t         fd|j                         D               _        | _        | _        y )Nc              3      K   | ]L  }|j                   j                         D ]-  }|j                  |j                  j                  |      f / N y wr;   )r   valuesr/   _to_numbering_level)r=   abstract_numr5   selfs      r   r?   z%Numbering.__init__.<locals>.<genexpr>^   s_      2
%,,3352
 ''3 %%t'?'?'FG2
G2
s   AA)_abstract_numsr   rH   _levels_by_paragraph_style_id_nums_styles)rK   r	   r
   r   s   `   r   __init__zNumbering.__init__\   s>    +-1 2
 - 4 4 62
 .
* 
r   c                 |   | j                   j                  |      }|y | j                  j                  |j                        }|y |j                  *| j                  |j                  j                  |            S | j                  j                  |j                        }| j                  |j                  |      S r;   )rN   r   rL   r#   r   rI   r   rO   find_numbering_style_by_id
find_levelrC   )rK   rC   r5   numrJ   styles         r   rS   zNumbering.find_levelg   s    jjnnV$;..2233F3FGL#,,4//0C0C0G0G0NOO??@[@[\u||U;;r   c                 8    | j                   j                  |      S r;   )rM   r   )rK   style_ids     r    find_level_by_paragraph_style_idz*Numbering.find_level_by_paragraph_style_idu   s    1155h??r   c                 J    |y t        |j                  |j                        S )N)r-   r.   )r   r-   r.   )rK   abstract_num_levels     r   rI   zNumbering._to_numbering_levelx   s*    %".::-88 r   N)r%   r&   r'   rP   rS   rX   rI   r*   r   r   r   r   [   s    	<@r   r   r   )r(   	documentsr   
styles_xmlr   r   r   r   dataobjectr"   r,   r    r2   r   r<   rB   r   EMPTYr*   r   r   <module>r`      s     ' L@
W $6 $ $
 ( ( (,	9 %6 % %$ $N "2fllK	r   