
    Цi}>                        S SK r S SKrS SKJrJr  S SKrS SKrS SKrS SKJ	r	J
r
JrJrJrJr  S SKrSSKJrJr  \" S5      r\" S\	S9r " S	 S
5      r\" SS9S\S\S\4S j5       r\" SS9S\S\S\4S j5       r\" SS9S\S\S\4S j5       r " S S5      r " S S5      r " S S5      r " S S\5      rS\S\4S jr  " S S5      r!\\"4\#4S jr$S \S\4S! jr% S9S\
\\\   4   S#\&S\4S$ jjr'S%\S\(4S& jr)S\S\4S' jr* S:S"SS(.S)\\   S*\S+\&S,\S\4
S- jjjr+S.\S/\S\4S0 jr,\RZ                  " S15      4S\S\4S2 jjr. S;S3S4.S5\\\4   S6\S7\S\4S8 jjjr/g)<    N)	lru_cachewraps)CallableUnionIterableTypeVarcastAny   )PyparsingDeprecationWarningPyparsingDiagnosticWarning\   C)boundc                   z    \ rS rSr% Sr/ r\\   \S'   / r	\\   \S'   Sr
\S 5       r\" S 5      r\" S 5      rS	rg
)__config_flags   z=Internal class for defining compatibility and debugging flags
_all_names_fixed_namesconfigurationc                 F   XR                   ;   a[  [        R                  " U R                   SU SU R                   S[        [        X5      5      R                  5        S3[        SS9  g XR                  ;   a  [        XU5        g [        SU R                   SU< 35      e)N. z is z and cannot be overridden   
stacklevelzno such )r   warningswarn__name__
_type_descstrgetattrupperr   r   setattr
ValueError)clsdnamevalues      M/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/pyparsing/util.py_set__config_flags._set   s    $$$MM<<.%#..)9c'#BU>V>\>\>^=_+-*	 NN"C&x'7q	BCC    c                 &    U R                  US5      $ )NTr*   r&   names     r)   <lambda>__config_flags.<lambda>'   s    388D$+?r,   c                 &    U R                  US5      $ )NFr.   r/   s     r)   r1   r2   (   s    CHHT5,Ar,    N)r   
__module____qualname____firstlineno____doc__r   listr!   __annotations__r   r    classmethodr*   enabledisable__static_attributes__r4   r,   r)   r   r      sR    GJS	 L$s)  JD D ?@FABGr,   r      )maxsizelocstrgreturnc                 |    UnSU s=:  a  [        U5      :  a  O  OX S-
     S:X  a  S$ XR                  SSU 5      -
  $ )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
:meth:`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   
)lenrfind)rA   rB   ss      r)   colrI   +   sC     	AC #a& QQwZ4%71XS774QRTWCX=XXr,   c                 .    UR                  SSU 5      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 :meth:`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.
rE   r   r   )count)rA   rB   s     r)   linenorL   <   s     ::dAs#a''r,   c                 t    UR                  SSU 5      nUR                  SU 5      nUS:  a  XS-   U $ XS-   S $ )z`
Returns the line of text containing loc within a string, counting newlines as line separators.
rE   r   r   N)rG   find)rA   rB   last_crnext_crs       r)   linerQ   J   sI    
 jjq#&Giic"G*1Q,4!g&OD1<OOr,   c                       \ rS rSrS rSrg)_UnboundedCacheT   c                   ^^^ 0 mTR                   m[        5       =U l        mUU4S jnU4S jnU4S jnS U l        [        R
                  " X5      U l         [        R
                  " X 5      U l        [        R
                  " X05      U l        g )Nc                    > T" UT5      $ Nr4   _key	cache_getnot_in_caches     r)   get%_UnboundedCache.__init__.<locals>.getZ       S,//r,   c                    > UTU'   g rW   r4   )rY   rZ   r(   caches      r)   set_&_UnboundedCache.__init__.<locals>.set_]   s    E#Jr,   c                 &   > TR                  5         g rW   clearrY   ra   s    r)   rf   '_UnboundedCache.__init__.<locals>.clear`       KKMr,   )r]   objectr\   sizetypes
MethodTypesetrf   )selfr]   rb   rf   ra   r[   r\   s       @@@r)   __init___UnboundedCache.__init__U   sn    II	+183L	0		 	##C.##D/%%e2
r,   rf   r]   r\   rn   rk   Nr   r5   r6   r7   rp   r>   r4   r,   r)   rS   rS   T   s    3r,   rS   c                       \ rS rSrS rSrg)
_FifoCachei   c                 >  ^^^^^ 0 mTU l         [        5       =U l        mTR                  mTR                  mUU4S jnUUU4S jnU4S jn[
        R                  " X 5      U l        [
        R                  " X05      U l        [
        R                  " X@5      U l        g )Nc                    > T" UT5      $ rW   r4   rX   s     r)   r]    _FifoCache.__init__.<locals>.getq   r_   r,   c                    > UTU'   [        T5      T:  a,  T" [        [        T5      5      5        [        T5      T:  a  M+  g g rW   )rF   nextiter)rY   rZ   r(   ra   	cache_poprk   s      r)   rb   !_FifoCache.__init__.<locals>.set_t   s7    E#Je*t#$tE{+, e*t#r,   c                 &   > TR                  5         g rW   re   rg   s    r)   rf   "_FifoCache.__init__.<locals>.clearz   ri   r,   )	rk   rj   r\   r]   poprl   rm   rn   rf   )	ro   rk   r]   rb   rf   ra   r[   r}   r\   s	    `   @@@@r)   rp   _FifoCache.__init__j   sw    	+183LII	II		0	-	 ##C.##D/%%e2
r,   rr   Nrs   r4   r,   r)   ru   ru   i   s    3r,   ru   c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
LRUMemo   z
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                 ,    Xl         0 U l        0 U l        g rW   )	_capacity_active_memory)ro   capacitys     r)   rp   LRUMemo.__init__   s    !r,   c                      U R                   U   $ ! [         a:    U R                  R                  U5      U R                  U'   U R                  U   s $ f = frW   )r   KeyErrorr   r   ro   rZ   s     r)   __getitem__LRUMemo.__getitem__   sQ    	%<<$$ 	% $ 0 0 5DLL<<$$	%s    AAAc                 X    U R                   R                  US 5        X R                  U'   g rW   )r   r   r   )ro   rZ   r(   s      r)   __setitem__LRUMemo.__setitem__   s"    d#!Sr,   c                     U R                   R                  U5      n[        U R                  5      S U R                  S-   *  nU H  nU R                  R                  U5        M      X R                  U'   g ! [
         a     g f = fNr   )r   r   r9   r   r   r   )ro   rZ   r(   oldest_keyskey_to_deletes        r)   __delitem__LRUMemo.__delitem__   s{    	&LL$$S)E t||,-D!1C/DEK!,  / "- %LL  		s   A6 6
BBc                 l    U R                   R                  5         U R                  R                  5         g rW   )r   rf   r   ro   s    r)   rf   LRUMemo.clear   s"    r,   )r   r   r   N)r   r5   r6   r7   r8   rp   r   r   r   rf   r>   r4   r,   r)   r   r      s     
%"	&r,   r   c                       \ rS rSrSrS rSrg)UnboundedMemo   z4
A memoizing mapping that retains all deleted items
c                     g rW   r4   r   s     r)   r   UnboundedMemo.__delitem__   s    r,   r4   N)r   r5   r6   r7   r8   r   r>   r4   r,   r)   r   r      s    r,   r   rH   c                     S H  nU R                  U[        U-   5      n M     U R                  SS5      n U R                  SS5      n [        U 5      $ )Nz\^-[]rE   z\n	z\t)replace_bslashr!   )rH   cs     r)   _escape_regex_range_charsr      sI    IIa1% 			$A			$Aq6Mr,   c                   4    \ rS rSrSrS	S jrS\S\4S jrSr	g)
_GroupConsecutive   a  
Used as a callable `key` for itertools.groupby to group
characters that are consecutive:

.. testcode::

   from itertools import groupby
   from pyparsing.util import _GroupConsecutive

   grouped = groupby("abcdejkmpqrs", key=_GroupConsecutive())
   for index, group in grouped:
       print(tuple([index, list(group)]))

prints:

.. testoutput::

   (0, ['a', 'b', 'c', 'd', 'e'])
   (1, ['j', 'k'])
   (2, ['m'])
   (3, ['p', 'q', 'r', 's'])
rC   Nc                 T    SU l         [        R                  " 5       U l        SU l        g )Nr   )prev	itertoolsrK   counterr(   r   s    r)   rp   _GroupConsecutive.__init__   s    	 (
r,   charc                     [        U5      nX R                  sU l        nX#-
  S:  a  [        U R                  5      U l        U R                  $ r   )ordr   r{   r   r(   )ro   r   c_intr   s       r)   __call___GroupConsecutive.__call__   s>    D		4<!dll+DJzzr,   )r   r   r(   )rC   N)
r   r5   r6   r7   r8   rp   r!   intr   r>   r4   r,   r)   r   r      s    .
S S r,   r   c                 V    [        X5      (       a  g [        U 5        g! U a     gf = f)NFT)
isinstancer|   )obj	_str_type_iter_exceptions      r)   _is_iterabler      s5    #!!S	   s    ((r   c                     U S;   a  SU  3$ U $ )Nz\^-][\r4   )r   s    r)   _escape_re_range_charr      s    H}as8+!+r,   T	re_escapec                    U(       a  [         nOS n/ n[        [        U 5      5      n[        U5      S:  a  [        R
                  " U[        5       S9 H  u  pV[        U5      =px[        R                  " [        5         UGt pXSSS5        Xx:X  a  UR                  U" U5      5        MV  U[        [        U5      S-   5      :X  a#  UR                  U" U5       U" U5       35        M  UR                  U" U5       SU" U5       35        M     OU V	s/ s H
  o" U	5      PM     nn	SR                  U5      $ ! , (       d  f       N= fs  sn	f )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]'
c                     U $ rW   r4   )sss    r)   r1   ,_collapse_string_to_ranges.<locals>.<lambda>  s    "r,      rZ   Nr   - )r   sortedrn   rF   r   groupbyr   r{   
contextlibsuppressr%   appendchrr   join)
rH   r   escape_re_range_charrets_charsrY   charsfirstlastr   s
             r)   _collapse_string_to_rangesr      s0   P 4,
C  AG
7|a "))'7H7JKHA  ;&E$$Z0  1 }

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

259:;OPT;U:VWX
 

+E2315I$5O4PQ) L< 1881#A&8773<7 102 9s   ?D7E7
E	llc                     / nU  Hm  n[        U[        5      (       a  UR                  U5        M+  [        U[        5      (       a  UR	                  [        U5      5        M\  UR                  U5        Mo     U$ rW   )r   r!   r   r   extend_flatten)r   r   is      r)   r   r   J  sZ    
C aJJqM8$$JJx{#JJqM  Jr,   c                     U S:X  a  gU R                  5       (       a$  [        U 5      S:X  a  [        [        U S5      5      $ U R	                  S5      (       a  [        [        U SS  S5      5      $ U $ )N0 r      )uxr      )isdigitrF   r   r   
startswithrH   s    r)   !_convert_escaped_numerics_to_charr   Y  s\    Cxyy{{s1v{3q!9~	
j	!	!3qub>""Hr,   non_capturing_groups_level	word_list	max_levelr   r   c          
         S[         [           4S jnUS:X  a$  U (       d  [        S5      eSU ;   a  [        S5      eOU (       d  g[        0 R                  U 5      5      n US:X  av  [	        S U  5       5      (       aC  S	R                  [        U  Vs/ s H  n[        R                  " U5      PM     sn[        S
S95      $ SSR                  S U  5       5       S3$ / nSnU(       a  SOSnU" [        U 5      5       GH  u  pUR                  U5        S	n[        R                  " U	5      n	SnSU
;   a  SnU
R                  S5        [        U
5      S:  Ga  [        S U
 5       5      (       a1  UR                  U	 SSR                  S U
 5       5       SU 35        M  X1:  a5  [        [        U
5      UUUS-   S9nUR                  U	 SU U SU 35        M  [        S U
 5       5      (       a2  UR                  U	 SSR                  S U
 5       5       SU 35        GM%  U
R                  [        S
S9  UR                  U	 SU S	R                  S U
 5       5       SU 35        GMm  U
(       ag  [        R                  " U
S   5      n[        U5      S:  a%  U(       a  UR                  U	 SU U SU 35        GM  UR                  U	 U U 35        GM  UR                  U	5        GM     SR                  U5      $ s  snf )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      #    [        U 5      S:  aF  [        R                  " U S S9 H+  u  pU[        U Vs/ s H  o3SS  PM	     sn[         SS94v   M-     g U S   S   U S   SS  /4v   g s  snf 7f)Nr   c                     U S S $ r   r4   r   s    r)   r1   Omake_compressed_re.<locals>.get_suffixes_from_common_prefixes.<locals>.<lambda>t  s    aPRQRer,   r   TrZ   reverser   )rF   r   r   r   )r   prefixsuffixesrH   s       r)   !get_suffixes_from_common_prefixes=make_compressed_re.<locals>.get_suffixes_from_common_prefixesr  s{     x=1$-$5$5hO$T fX%>XeX%>CQUVVV %U 1+a.8A;qr?"333 &?s   5A1A,,A1r   z&no words given to make_compressed_re()r   z%word list cannot contain empty stringr   c              3   >   #    U  H  n[        U5      S :  v   M     g7fr   NrF   .0wds     r)   	<genexpr>%make_compressed_re.<locals>.<genexpr>  s     /Yrs2w{Y   |Tr   [c              3   8   #    U  H  n[        U5      v   M     g 7frW   r   r   s     r)   r   r     s     Qy8<<y   ]z?:?c              3   >   #    U  H  n[        U5      S :H  v   M     g7fr   r   r   rH   s     r)   r   r     s     113q6Q;r   c              3   8   #    U  H  n[        U5      v   M     g 7frW   r  r	  s     r)   r   r     s     (Xx!)B1)E)Exr  r   ()c              3   >   #    U  H  n[        U5      S :H  v   M     g7fr   r   r	  s     r)   r   r     s     913q6Q;r   c              3   8   #    U  H  n[        U5      v   M     g 7frW   r  r	  s     r)   r   r     s     0`W_RS1J11M1MW_r  c              3   N   #    U  H  n[         R                  " U5      v   M     g 7frW   )reescaper	  s     r)   r   r     s     :ZQYA299Q<<QYs   #%)r9   r!   r%   fromkeysanyr   r   r  r  rF   r   removeallmake_compressed_resort)r   r   r   r   r   r   r   sepncgroupinitialr   trailing	suffix_resuffixs                 r)   r  r  c  s   4DI 4 {EFF?DEE   R[[+,IA~/Y///88	:	"		"	:TR  rwwQyQQRRSTT
C
C*dG>vi?PQ

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

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

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

&iq	#((:ZQY:Z2Z1[[\]e\fg 8A;/v;?xJJ'!G9VHAhZHIJJ'6(8*=>

7#W RX 773<k ;s    K=compat_namefnc                 h  ^ ^ [        TST5      mS/[        [        R                  " T5      R                  5      S S :X  a  [        T5      U U4S j5       nO[        T5      U U4S j5       nSTR                   S3Ul        T Ul        TR                  Ul        [        T[        R                  5      (       a  TR                  Ul        OI[        T[        5      (       a-  [        TS5      (       a  TR                  R                  Ul        OS Ul        TR                   Ul        [#        [$        U5      $ )	N__func__ro   r   c                 r   > [         R                  " T< STR                  < 3[        SS9  T" U /UQ70 UD6$ Nz deprecated - use r   r   r   r   r   r   )ro   argskwargsr  r  s      r)   _inner replaced_by_pep8.<locals>._inner  s?    MM/!3BKK?C+
 d,T,V,,r,   c                  j   > [         R                  " T< STR                  < 3[        SS9  T" U 0 UD6$ r#  r$  )r%  r&  r  r  s     r)   r'  r(    s:    MM/!3BKK?C+
 t&v&&r,   z6
        .. deprecated:: 3.0.0
           Use :class:`z` instead
        rp   )r"   r9   inspect	signature
parametersr   r   r8   r:   r   rl   FunctionType__kwdefaults__typehasattrrp   r6   r	   r   )r  r  r'  s   `` r)   replaced_by_pep8r1    s	    
Z	$B 	x4))"-889"1==	r	- 
	- 
r	' 
	'} %	FN "FO//F"e(()) " 1 1	B		'"j"9"9 " : : $//F6?r,   z([a-z])([A-Z])c                 F    UR                  SU 5      n U R                  5       $ )Nz\1_\2)sublower)rH   _re_sub_patterns     r)   _to_pep8_namer6    s     Ha(A779r,   r   )new_namer&  arg_namer7  c                    X;   a9  U=(       d    [        U5      n[        R                  " U< SU< 3[        SS9  X   $ X U'   X   $ )Nz argument is deprecated, use r   )categoryr   )r6  r   r   r   )r&  r8  default_valuer7  s       r)   deprecate_argumentr<    sX     6}X6l7|D0	
  )xr,   )T)r   rW   )0r   r  	functoolsr   r   r*  r   rl   typingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r!   rI   rL   rQ   rS   ru   r   dictr   r   r   bytes	Exceptionr   r   boolr   r9   r   r   r  r1  compiler6  r<  r4   r,   r)   <module>rD     sg    	 &    @ @  M
b'Cx C C4 3YS Y Y Y Y  3
( 
(3 
(3 
( 
( 3Pc P P P P3 3*3 32% %PD   " "J "%ei 
,S ,S ,
 59US(3- U-1UUp d    \ "&\}\\ 	\
 \ 	\~*# *1 * *Z +-**5F*G S C  :>RTcN&)LOr,   