
    ZMh8                     t   d dl Z 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d#d$d%ee         d&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      N/var/www/html/test/jupyter/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   9   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   G   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>.getW       9S,///r%   c                     ||<   d S rM   r4   )rO   rP   r"   caches      r#   set_z&_UnboundedCache.__init__.<locals>.set_Z   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__R   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   Q   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>.getn   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_q   sZ    E#Je**t##	$tE{{++,,, e**t######r%   c                 0                                      d S rM   rY   r[   s    r#   rZ   z"_FifoCache.__init__.<locals>.clearw   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__g   s    	+1883LI	I		0 	0 	0 	0 	0 	0	- 	- 	- 	- 	- 	- 	-	 	 	 	 	 #C..#D$//%eT22


r%   Nrd   r4   r%   r#   rf   rf   f   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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']))
    r9   Nc                 R    d| _         t          j                    | _        d| _        d S )Nr   )prev	itertoolsrB   counterr"   r   s    r#   rc   z_GroupConsecutive.__init__   s#    	 ((


r%   charc                     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%   )r9   N)r   r,   r-   r.   rc   r   intr   r4   r%   r#   r   r      sT        	 	   
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;   non_capturing_groups_level	word_list	max_levelr   r   c          
         dt           t                   fd}|dk    r%| st          d          d| v rt          d          n| sdS t          i                     |                     } |dk    rpt	          d | D                       r4d	                    t          d
 | D             t          d                    S dd                    d | D                        dS g }d}|rdnd} |t          |                     D ]2\  }}	|                    |           d	}t          j
        |          }d}
d|	v rd}
|	                    d           t          |	          dk    rLt          d |	D                       r;|                    | dd                    d |	D                        d|
            ||k     rCt          t          |	          |||dz             }|                    | d| | d|
            t          d |	D                       r<|                    | dd                    d |	D                        d|
            T|	                    t          d           |                    | d| d	                    d |	D                        d|
            |	rmt          j
        |	d                   }t          |          dk    r#|
r!|                    | d| | d|
             |                    | | |
            |                    |           4d                    |          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>C  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>D  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_prefixesA  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;   z&no words given to make_compressed_re()r   z%word list cannot contain empty stringr   c              3   <   K   | ]}t          |          d k    V  dS r   r=   r   wds     r#   	<genexpr>z%make_compressed_re.<locals>.<genexpr>W  s,      //rs2ww{//////r%   |c                 6    g | ]}t          j        |          S r4   reescaper   s     r#   r   z&make_compressed_re.<locals>.<listcomp>Y  s     :::"	":::r%   Tr   [c              3   4   K   | ]}t          |          V  d S rM   r   r   s     r#   r   z%make_compressed_re.<locals>.<genexpr>\  s+      QQ8<<QQQQQQr%   ]z?:?c              3   <   K   | ]}t          |          d k    V  dS r   r   r   s     r#   r   z%make_compressed_re.<locals>.<genexpr>n  s,      1113q66Q;111111r%   c              3   4   K   | ]}t          |          V  d S rM   r   r   s     r#   r   z%make_compressed_re.<locals>.<genexpr>p  s+      (X(X!)B1)E)E(X(X(X(X(X(Xr%   r   ()c              3   <   K   | ]}t          |          d k    V  dS r   r   r   s     r#   r   z%make_compressed_re.<locals>.<genexpr>|  s,      9913q66Q;999999r%   c              3   4   K   | ]}t          |          V  d S rM   r   r   s     r#   r   z%make_compressed_re.<locals>.<genexpr>~  s,      0`0`RS1J11M1M0`0`0`0`0`0`r%   c              3   >   K   | ]}t          j        |          V  d S rM   r   r   s     r#   r   z%make_compressed_re.<locals>.<genexpr>  s*      :Z:ZA29Q<<:Z:Z:Z:Z:Z:Zr%   )r/   r   r   fromkeysanyr   r   r=   r   r   r   removeallmake_compressed_resort)r   r   r   r   r   r   sepncgroupinitialr   trailing	suffix_resuffixs                r#   r   r   2  s   4DI 4 4 4 4 {{ 	GEFFF??DEEE   	2 R[[++,,IA~~//Y///// 	U88::	:::TRRR   UrwwQQyQQQQQTTTT
C
C*2ddG>>vi?P?PQQ +$ +$

3)G$$>>HOOBx==11111111 

ee(X(Xx(X(X(X!X!Xee[cee    I%% 2x((!-A%z	! ! !I JJ'KKGKYKKKKLLLL9999999 

&mm0`0`W_0`0`0`)`)`mmckmm    !#t<<<

&ggg#((:Z:ZQY:Z:Z:Z2Z2Zgg]egg     $8A;//v;;??x?JJ'HHGHVHHhHHIIII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>._inner  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     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     s       				 & & & & & & & &       ; ; ; ; ; ; ; ; ; ; ; ; ; ; 
#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 	 	 	 	 \ "&\ \ \}\\ 	\
 \ 	\ \ \ \~%# %1 % % % % % % %r%   