
    %g2              	       `   d dl Z d dlmZmZ d dlZd dlZd dlZd dlmZm	Z	m
Z
mZmZ d dlZ ed          Z ede          Z G d d          Z ed	
          dededefd            Z ed	
          dededefd            Z ed	
          dededefd            Z G d d          Z G d d          Z G d d          Z G d de          ZdedefdZ G d d          Z	 d+de	ee
e         f         dedefdZd e
de fd!Z!	 d,d$e
e         d%ed&edefd'Z"d(ed)edefd*Z#dS )-    N)	lru_cachewraps)CallableUnionIterableTypeVarcast\   C)boundc                       e Zd ZU dZg Zee         ed<   g Zee         ed<   dZ	e
d             Z e
d           Z e
d           ZdS )	__config_flagsz=Internal class for defining compatibility and debugging flags
_all_names_fixed_namesconfigurationc                 6   || j         v r[t          j        | j         d| d| j         dt          t          | |                                                     dd           d S || j        v rt          | ||           d S t          d| j         d|          )N. z is z and cannot be overridden   )
stacklevelzno such )r   warningswarn__name__
_type_descstrgetattrupperr   setattr
ValueError)clsdnamevalues      @/var/www/api/venv/lib/python3.11/site-packages/pyparsing/util.py_setz__config_flags._set   s    C$$$M< - -% - -#. - -c'#uBUBU>V>V>\>\>^>^ - - -   
 FCN""C&&&&&BBBBBCCC    c                 .    |                      |d          S )NTr$   r    names     r#   <lambda>z__config_flags.<lambda>#   s    388D$+?+? r%   c                 .    |                      |d          S )NFr'   r(   s     r#   r*   z__config_flags.<lambda>$   s    CHHT5,A,A r%   N)r   
__module____qualname____doc__r   listr   __annotations__r   r   classmethodr$   enabledisable r%   r#   r   r      s         GGJS	 L$s)    JD D [D [??@@FkAABBGGGr%   r      )maxsizelocstrgreturnc                     |}d| cxk     rt          |          k     rn n|| dz
           dk    rdn| |                    dd|           z
  S )a  
    Returns current column within a string, counting newlines as line separators.
    The first column is number 1.

    Note: the default parsing behavior is to expand tabs in the input string
    before starting the parsing process.  See
    :class:`ParserElement.parse_string` for more
    information on parsing strings containing ``<TAB>`` s, and suggested
    methods to maintain a consistent view of the parsed string, the parse
    location, and line and column positions within the parsed string.
    r      
)lenrfind)r7   r8   ss      r#   colr@   '   sc     	AC    #a&&     QsQwZ4%7%711S1774QRTWCXCX=XXr%   c                 6    |                     dd|           dz   S )a  Returns current line number within a string, counting newlines as line separators.
    The first line is number 1.

    Note - the default parsing behavior is to expand tabs in the input string
    before starting the parsing process.  See :class:`ParserElement.parse_string`
    for more information on parsing strings containing ``<TAB>`` s, and
    suggested methods to maintain a consistent view of the parsed string, the
    parse location, and line and column positions within the parsed string.
    r<   r   r;   )count)r7   r8   s     r#   linenorC   8   s     ::dAs##a''r%   c                     |                     dd|           }|                    d|           }|dk    r||dz   |         n||dz   d         S )zh
    Returns the line of text containing loc within a string, counting newlines as line separators.
    r<   r   r;   N)r>   find)r7   r8   last_crnext_crs       r#   linerH   F   sZ    
 jjq#&&Giic""G*1Q,,4!g%&&D1<OOr%   c                       e Zd Zd ZdS )_UnboundedCachec                    i j         t                      x| _        fd}fd}fd}d | _        t	          j        ||           | _         t	          j        ||           | _        t	          j        ||           | _        d S )Nc                      |          S Nr4   _key	cache_getnot_in_caches     r#   getz%_UnboundedCache.__init__.<locals>.getV       9S,///r%   c                     ||<   d S rM   r4   )rO   rP   r"   caches      r#   set_z&_UnboundedCache.__init__.<locals>.set_Y   s    E#JJJr%   c                 0                                      d S rM   clearrO   rV   s    r#   rZ   z'_UnboundedCache.__init__.<locals>.clear\       KKMMMMMr%   )rS   objectrR   sizetypes
MethodTypesetrZ   )selfrS   rW   rZ   rV   rQ   rR   s       @@@r#   __init__z_UnboundedCache.__init__Q   s    I	+1883L	0 	0 	0 	0 	0 	0	 	 	 	 		 	 	 	 	 	#C..#D$//%eT22


r%   Nr   r,   r-   rc   r4   r%   r#   rJ   rJ   P   s#        3 3 3 3 3r%   rJ   c                       e Zd Zd ZdS )
_FifoCachec                 (   i | _         t                      x| _        j        j        fd}fd}fd}t          j        ||           | _        t          j        ||           | _        t          j        ||           | _        d S )Nc                      |          S rM   r4   rN   s     r#   rS   z _FifoCache.__init__.<locals>.getm   rT   r%   c                     ||<   t                    k    r: t          t                                         t                    k    8d S d S rM   )r=   nextiter)rO   rP   r"   rV   	cache_popr^   s      r#   rW   z!_FifoCache.__init__.<locals>.set_p   sZ    E#Je**t##	$tE{{++,,, e**t######r%   c                 0                                      d S rM   rY   r[   s    r#   rZ   z"_FifoCache.__init__.<locals>.clearv   r\   r%   )	r^   r]   rR   rS   popr_   r`   ra   rZ   )	rb   r^   rS   rW   rZ   rV   rQ   rl   rR   s	    `   @@@@r#   rc   z_FifoCache.__init__f   s    	+1883LI	I		0 	0 	0 	0 	0 	0	- 	- 	- 	- 	- 	- 	-	 	 	 	 	 #C..#D$//%eT22


r%   Nrd   r4   r%   r#   rf   rf   e   s#        3 3 3 3 3r%   rf   c                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )LRUMemoz
    A memoizing mapping that retains `capacity` deleted items

    The memo tracks retained items by their access order; once `capacity` items
    are retained, the least recently used item is discarded.
    c                 0    || _         i | _        i | _        d S rM   )	_capacity_active_memory)rb   capacitys     r#   rc   zLRUMemo.__init__   s    !r%   c                     	 | j         |         S # t          $ r2 | j                            |          | j        |<   | j        |         cY S w xY wrM   )rs   KeyErrorrt   rn   rb   rP   s     r#   __getitem__zLRUMemo.__getitem__   s^    	%<$$ 	% 	% 	% $ 0 0 5 5DL<$$$$	%s    9A
Ac                 P    | j                             |d            || j        |<   d S rM   )rt   rn   rs   )rb   rP   r"   s      r#   __setitem__zLRUMemo.__setitem__   s,    d###!Sr%   c                     	 | j                             |          }t          | j                  d | j        dz             }|D ]}| j                            |           || j        |<   d S # t
          $ r Y d S w xY wNr;   )rs   rn   r/   rt   rr   rw   )rb   rP   r"   oldest_keyskey_to_deletes        r#   __delitem__zLRUMemo.__delitem__   s    	&L$$S))E t|,,-D!1C/D-DEK!, 0 0  //// %DL  	 	 	DD	s   A, ,
A:9A:c                 j    | j                                          | j                                         d S rM   )rs   rZ   rt   rb   s    r#   rZ   zLRUMemo.clear   s0    r%   N)	r   r,   r-   r.   rc   ry   r{   r   rZ   r4   r%   r#   rp   rp   ~   si           
% % %" " "	& 	& 	&    r%   rp   c                       e Zd ZdZd ZdS )UnboundedMemoz<
    A memoizing mapping that retains all deleted items
    c                     d S rM   r4   rx   s     r#   r   zUnboundedMemo.__delitem__   s    r%   N)r   r,   r-   r.   r   r4   r%   r#   r   r      s-             r%   r   r?   c                     dD ] }|                      |t          |z             } !|                      dd          } |                      dd          } t          |           S )Nz\^-[]r<   z\n	z\t)replace_bslashr   )r?   cs     r#   _escape_regex_range_charsr      s[     & &IIa1%%			$A			$Aq66Mr%   c                   (    e Zd ZdZd ZdedefdZdS )_GroupConsecutiveaQ  
    Used as a callable `key` for itertools.groupby to group
    characters that are consecutive:
        itertools.groupby("abcdejkmpqrs", key=IsConsecutive())
        yields:
            (0, iter(['a', 'b', 'c', 'd', 'e']))
            (1, iter(['j', 'k']))
            (2, iter(['m']))
            (3, iter(['p', 'q', 'r', 's']))
    c                 R    d| _         t          j                    | _        d| _        d S )Nr   )prev	itertoolsrB   counterr"   r   s    r#   rc   z_GroupConsecutive.__init__   s#    	 ((


r%   charr9   c                     t          |          }|| j        c| _        }||z
  dk    rt          | j                  | _        | j        S r}   )ordr   rj   r   r"   )rb   r   c_intr   s       r#   __call__z_GroupConsecutive.__call__   sD    D			44<!dl++DJzr%   N)r   r,   r-   r.   rc   r   intr   r4   r%   r#   r   r      sO        	 	  
S S      r%   r   T	re_escapec                   	 dt           dt           fd	dt           dt           fd}|s|	g }t          t          |                     }t          |          dk    rt	          j        |t                                D ]\  }}t          |          x}}t          j	        t                    5  |^ }}ddd           n# 1 swxY w Y   ||k    r|                     	|                     q|t          t          |          dz             k    r,|                     	|            	|                      |                     	|           d	 	|                      n	fd
|D             }d                    |          S )a  
    Take a string or list of single-character strings, and return
    a string of the consecutive characters in that string collapsed
    into groups, as might be used in a regular expression '[a-z]'
    character set:
        'a' -> 'a' -> '[a]'
        'bc' -> 'bc' -> '[bc]'
        'defgh' -> 'd-h' -> '[d-h]'
        'fdgeh' -> 'd-h' -> '[d-h]'
        'jklnpqrtu' -> 'j-lnp-rtu' -> '[j-lnp-rtu]'
    Duplicates get collapsed out:
        'aaa' -> 'a' -> '[a]'
        'bcbccb' -> 'bc' -> '[bc]'
        'defghhgf' -> 'd-h' -> '[d-h]'
        'jklnpqrjjjtu' -> 'j-lnp-rtu' -> '[j-lnp-rtu]'
    Spaces are preserved:
        'ab c' -> ' a-c' -> '[ a-c]'
    Characters that are significant when defining regex ranges
    get escaped:
        'acde[]-' -> r'\-\[\]ac-e' -> r'[\-\[\]ac-e]'
    r   r9   c                     | dv rd| z   n| S )Nz\^-][\r4   r   s    r#   escape_re_range_charz8_collapse_string_to_ranges.<locals>.escape_re_range_char   s    ==taxxa/r%   c                     | S rM   r4   r   s    r#   no_escape_re_range_charz;_collapse_string_to_ranges.<locals>.no_escape_re_range_char   s    r%      rP   Nr;   -c                 &    g | ]} |          S r4   r4   ).0r   r   s     r#   
<listcomp>z._collapse_string_to_ranges.<locals>.<listcomp>   s%    8881##A&&888r%    )r   sortedra   r=   r   groupbyr   rj   
contextlibsuppressr   appendchrr   join)
r?   r   r   rets_charsrO   charsfirstlastr   s
            @r#   _collapse_string_to_rangesr      s'   @0 0 0 0 0 03 3      76
C  AG
7||a ")'7H7J7JKKK 	 	HAu  ;;&ED$Z00 ! ! D! ! ! ! ! ! ! ! ! ! ! ! ! ! ! }}

//667777SZZ!^,,,, 

22599W;O;OPT;U;UWWXXXX
 

++E22QQ5I5I$5O5OQQ   )	< 9888888773<<s   -B??C	C	llc                     g }g | }|r^|                     d          }t          |t                    rt          |t                    s||d d<   n|                    |           |^|S )Nr   )rn   
isinstancer   r   r   )r   r   to_visitis       r#   _flattenr   %  sy    
CuH
 LLOOa"" 	:a+=+= 	HRaRLLJJqMMM   Jr%   r   r;   	word_list	max_level_levelc                 (   dt           t                   fd}|dk    r*d                    t          | t          d                    S g }d} |t          |                     D ]\  }}|                    |           d}d}d|v rd}|                    d           t	          |          d	k    rt          d
 |D                       r1|                    | dd                    |           d|            ||k     r?t          t          |          ||d	z             }	|                    | d|	 d|            |	                    t          d           |                    | dd                    |           d|            *|rY|d         }
t	          |
          d	k    r!|r|                    | d|
 d|            h|                    | |
 |            |                    |           d                    |          S )z
    Create a regular expression string from a list of words, collapsing by common
    prefixes and optional suffixes.

    Calls itself recursively to build nested sublists for each group of suffixes
    that have a shared prefix.
    namelistc              3      K   t          |           dk    rDt          j        | d           D ]*\  }}|t          d |D             t           d          fV  +d S | d         d         | d         dd          gfV  d S )Nr;   c                     | d d         S r}   r4   )r?   s    r#   r*   zOmake_compressed_re.<locals>.get_suffixes_from_common_prefixes.<locals>.<lambda>>  s    aPRQRPRe r%   r   c                 "    g | ]}|d d         S r;   Nr4   r   r?   s     r#   r   zQmake_compressed_re.<locals>.get_suffixes_from_common_prefixes.<locals>.<listcomp>?  s     %>%>%>ae%>%>%>r%   TrP   reverser   )r=   r   r   r   )r   prefixsuffixess      r#   !get_suffixes_from_common_prefixesz=make_compressed_re.<locals>.get_suffixes_from_common_prefixes<  s      x==1$-$5hOO$T$T$T W W f%>%>X%>%>%>CQUVVVVVVVVW W 1+a.8A;qrr?"3333333r%   r   |Tr   r   ?r;   c              3   <   K   | ]}t          |          d k    V  dS r   )r=   r   s     r#   	<genexpr>z%make_compressed_re.<locals>.<genexpr>R  s,      1113q66Q;111111r%   []())
r/   r   r   r   r=   r   removeallmake_compressed_resort)r   r   r   r   r   sepinitialr   trailing	suffix_resuffixs              r#   r   r   1  s_   4DI 4 4 4 4 A~~xxyc4@@@AAA
C
C>>vi?P?PQQ $ $

3>>HOOBx==11111111 
M

gFF(9(9FFHFFGGGGI%% 2x(()VaZ! !I JJ'BBIBBBBCCCCMMc4M888JJ'KKCHHX,>,>KKKKLLLL $!!v;;??x?JJ'??F??X??@@@@JJ'=6=8==>>>>

7####773<<r%   compat_namefnc                 H   t          d          dgt          t          j                  j                  d d         k    rt                    fd            }nt                    fd            }dj         d|_        | |_        j        |_        t          t          j                  rj        |_        n>t          t                    r"t          d          rj        j        |_        nd |_        j        |_        t#          t$          |          S )	N__func__rb   r;   c                      | g|R i |S rM   r4   )rb   argskwargsr   s      r#   _innerz replaced_by_pep8.<locals>._innert  s%    
 2d,T,,,V,,,r%   c                       | i |S rM   r4   )r   r   r   s     r#   r   z replaced_by_pep8.<locals>._inner}  s    
 2t&v&&&r%   zDeprecated - use :class:``rc   )r   r/   inspect	signature
parametersr   r   r.   r0   r   r_   FunctionType__kwdefaults__typehasattrrc   r-   r	   r   )r   r   r   s    ` r#   replaced_by_pep8r   i  s<   
 
Z	$	$B 	x4)"--899"1"===	r	- 	- 	- 	- 
	- 	- 
r	' 	' 	' 	' 
	' D2;CCCFN!FO/F"e()) % " 1	B		 %'"j"9"9 % " : $/F6??r%   )T)r   r;   )$r   	functoolsr   r   r   r   r_   typingr   r   r   r   r	   r   r   r   r   r   r   r   r@   rC   rH   rJ   rf   rp   dictr   r   r   boolr   r/   r   r   r   r4   r%   r#   <module>r      sv       & & & & & & & &       ; ; ; ; ; ; ; ; ; ; ; ; ; ; 
#b''GCx   C C C C C C C C2 3YS Y Y Y Y Y Y  3
( 
(3 
(3 
( 
( 
( 
( 3Pc P P P P P P3 3 3 3 3 3 3 3*3 3 3 3 3 3 3 32% % % % % % % %P    D               4 59Q QS(3- Q-1QQ Q Q Qh	 	d 	 	 	 	 AB5 5}5),5:=55 5 5 5p%# %1 % % % % % % %r%   