
    %j                     >   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_        dS )    N   )numbering_level   )Stylesc                 b    t          |           }t          |           }t          |||          S )Nabstract_numsnumsstyles)_read_abstract_nums
_read_nums	Numbering)elementr   r	   r
   s       b/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/mammoth/docx/numbering_xml.pyread_numbering_xml_elementr      s1    '00MgD=tFKKKK    c                 p    |                      d          }t          t          t          |                    S )Nzw:abstractNum)find_childrendictmap_read_abstract_num)r   abstract_num_elementss     r   r   r      s0    #11/BB&(=>>???r   c                     | j                             d          }t          |           }|                     d          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      sd    (,,->??O&w//F//0@AALPPQXYYNL~VVVVVr   c                   J    e Zd Z ej                    Z ej                    ZdS )r"   N)__name__
__module____qualname__cobblefieldr   r    r   r   r"   r"      s(        V\^^F!V\^^NNNr   r"   c                   h    e Zd Z ej                    Z ej                    Z ej                    ZdS )_AbstractNumLevelN)r%   r&   r'   r(   r)   level_index
is_orderedparagraph_style_idr*   r   r   r,   r,      s8        &,..KJ%r   r,   c                     i }d }|                      d          D ],}t          |          }|j        
d|_        |}"|||j        <   -||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 . .(77$ #E"'(-F5$%%&+>+JRX+X+X2E"./Mr   c                    | j                             d          }|                     d          j                             d          }|dk    }|                     d          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    $((22K((44?CCGLLGH$J 33J??JNNwWW-   r   c                 ^    |                      d          }t          d |D                       S )Nzw:numc              3   4   K   | ]}t          |          V  d S N)	_read_num).0num_elements     r   	<genexpr>z_read_nums.<locals>.<genexpr>J   s>         	+     r   )r   r   )r   num_elementss     r   r   r   H   sC    ((11L  '     r   c                     | j                             d          }|                     d          j         d         }|t          |          fS )Nzw:numIdr   r   )r#   )r   r   r!   _Num)r   num_idr#   s      r   r<   r<   P   sJ    ##I..F001BCCNwWO488888r   c                   ,    e Zd Z ej                    ZdS )rB   N)r%   r&   r'   r(   r)   r#   r*   r   r   rB   rB   V   s        "flnnOOOr   rB   c                   &    e Zd Zd Zd Zd Zd ZdS )r   c                      | _         t           fd|                                D                        _        | _        | _        d S )Nc              3      K   | ]C}|j                                         D ]'}|j        	|j                            |          fV  (Dd S r;   )r   valuesr/   _to_numbering_level)r=   abstract_numr5   selfs      r   r?   z%Numbering.__init__.<locals>.<genexpr>^   st       2
 2
%,33552
 2
 '3 %t'?'?'F'FG 43333	2
 2
r   )_abstract_numsr   rH   _levels_by_paragraph_style_id_nums_styles)rK   r	   r
   r   s   `   r   __init__zNumbering.__init__\   sc    +-1 2
 2
 2
 2
 - 4 4 6 62
 2
 2
 .
 .
* 
r   c                 `   | j                             |          }|d S | j                            |j                  }|d S |j        -|                     |j                            |                    S | 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    jnnV$$;4.2233FGGL#t,4//0C0G0G0N0NOOO??@[\\u|U;;;r   c                 6    | j                             |          S r;   )rM   r   )rK   style_ids     r    find_level_by_paragraph_style_idz*Numbering.find_level_by_paragraph_style_idu   s    155h???r   c                 @    |d S t          |j        |j                  S )N)r-   r.   )r   r-   r.   )rK   abstract_num_levels     r   rI   zNumbering._to_numbering_levelx   s0    %4".:-8   r   N)r%   r&   r'   rP   rS   rX   rI   r*   r   r   r   r   [   sS        	 	 	< < <@ @ @    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 L L@ @ @
W W W $ $ $ $ $6 $ $ $
 ( ( ( ( ( ( ( (  ,	 	 	  9 9 9 % % % % %6 % % %$ $ $ $ $ $ $ $N )"2flKKK	r   