+
    TBi8                        ^ RI t ^ RIt^ RIHtHt ^ RIt^ RIt^ RIt^ RIH	t	H
t
HtHtHt ^ RIt]! ^\4      t]! R]	R7      t ! R R4      t]! ^R7      R	 R
 l4       t]! ^R7      R R l4       t]! ^R7      R R l4       t ! R R4      t ! R R4      t ! R R4      t ! R R]4      tR R lt ! R R4      tR&R R lltR R ltR'R RR!^/R" R# llltR$ R% lt R# )(    N)	lru_cachewraps)CallableUnionIterableTypeVarcastC)boundc                   p   a  ] tR t^t o Rt. t. tRt]R 4       t	]! R 4      t
]! R 4      tV 3R ltRtV tR# )	__config_flagsz=Internal class for defining compatibility and debugging flagsconfigurationc                J   WP                   9   d[   \        P                  ! V P                   R V RV P                   R\        \        W4      4      P                  4        R2^R7       R# WP                  9   d   \        WV4       R# \        RV P                   RV: 24      h). z is z and cannot be overridden)
stacklevelNzno such )_fixed_nameswarningswarn__name__
_type_descstrgetattrupper
_all_namessetattr
ValueError)clsdnamevalues   &&&3/usr/lib/python3.14/site-packages/pyparsing/util.py_set__config_flags._set   s    $$$MM<<.%#..)9c'#BU>V>\>\>^=_+-
 NN"C&x'7q	BCC    c                &    V P                  VR 4      # Tr"   r   names   &&r!   <lambda>__config_flags.<lambda>$   s    388D$+?r$   c                &    V P                  VR 4      # )Fr'   r(   s   &&r!   r*   r+   %   s    CHHT5,Ar$   c                R   < V ^8  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   # )   r   r   listr   )format__classdict__s   "r!   __annotate____config_flags.__annotate__   s'      S	  s) 	 r$    N)r   
__module____qualname____firstlineno____doc__r   r   r   classmethodr"   enabledisable__annotate_func____static_attributes____classdictcell__r2   s   @r!   r   r      sJ     GJ L JD D ?@FABG-  r$   r   )maxsizec                <    V ^8  d   QhR\         R\        R\         /# r.   locstrgreturnintr   )r1   s   "r!   r3   r3   )   s&     Y YS Y Y Yr$   c                    Tp^ T u;8  d   \        V4      8  d   M MW ^,
          ,          R8X  d   ^# WP                  R^ V 4      ,
          # )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.

)lenrfind)rD   rE   ss   && r!   colrN   (   sC     	AC #a& QQwZ4%71XS774QRTWCX=XXr$   c                <    V ^8  d   QhR\         R\        R\         /# rC   rG   )r1   s   "r!   r3   r3   :   s!     
( 
( 
(3 
(3 
(r$   c                6    VP                  R^ V 4      ^,           # )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.
rJ   )count)rD   rE   s   &&r!   linenorR   9   s     ::dAs#a''r$   c                <    V ^8  d   QhR\         R\        R\        /# rC   rG   )r1   s   "r!   r3   r3   H   s&     P Pc P P Pr$   c                    VP                  R^ V 4      pVP                  RV 4      pV^ 8  d   W^,           V # W^,           R # )z`
Returns the line of text containing loc within a string, counting newlines as line separators.
rJ   N)rL   find)rD   rE   last_crnext_crs   &&  r!   linerX   G   sI    
 jjq#&Giic"G*1Q,4!g&OD1<OOr$   c                   &   a  ] tR t^Qt o R tRtV tR# )_UnboundedCachec                   aaa / oSP                   o\        4       ;V n        oVV3R  lpV3R lpV3R lpRV n        \        P
                  ! W4      V n         \        P
                  ! W 4      V n        \        P
                  ! W04      V n        R# )c                    < S! VS4      # Nr5   _key	cache_getnot_in_caches   &&r!   get%_UnboundedCache.__init__.<locals>.getW       S,//r$   c                    < VSV&   R # r]   r5   )r_   r`   r    caches   &&&r!   set_&_UnboundedCache.__init__.<locals>.set_Z   s    E#Jr$   c                 (   < SP                  4        R # r]   clearr_   rg   s   &r!   rl   '_UnboundedCache.__init__.<locals>.clear]       KKMr$   N)rc   objectrb   sizetypes
MethodTypesetrl   )selfrc   rh   rl   rg   ra   rb   s   &   @@@r!   __init___UnboundedCache.__init__R   sn    II	+183L	0		 	##C.##D/%%e2
r$   rl   rc   rb   rt   rq   Nr   r6   r7   r8   rv   r>   r?   r@   s   @r!   rZ   rZ   Q   s     3 3r$   rZ   c                   &   a  ] tR t^ft o R tRtV tR# )
_FifoCachec                @  aaaaa / oSV n         \        4       ;V n        oSP                  oSP                  oVV3R  lpVVV3R lpV3R lp\
        P                  ! W 4      V n        \
        P                  ! W04      V n        \
        P                  ! W@4      V n        R# )c                    < S! VS4      # r]   r5   r^   s   &&r!   rc    _FifoCache.__init__.<locals>.getn   re   r$   c                 j   < VSV&   \        S4      S8  d   S! \        \        S4      4      4       K,  R # r]   )rK   nextiter)r_   r`   r    rg   	cache_poprq   s   &&&r!   rh   !_FifoCache.__init__.<locals>.set_q   s.    E#Je*t#$tE{+, $r$   c                 (   < SP                  4        R # r]   rk   rm   s   &r!   rl   "_FifoCache.__init__.<locals>.clearw   ro   r$   N)	rq   rp   rb   rc   poprr   rs   rt   rl   )	ru   rq   rc   rh   rl   rg   ra   r   rb   s	   &f   @@@@r!   rv   _FifoCache.__init__g   sw    	+183LII	II		0	-	 ##C.##D/%%e2
r$   rx   Nry   r@   s   @r!   r{   r{   f   s     3 3r$   r{   c                   B   a  ] tR t^t o RtR tR tR tR tR t	Rt
V tR# )	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                .    Wn         / V n        / V n        R # r]   )	_capacity_active_memory)ru   capacitys   &&r!   rv   LRUMemo.__init__   s    !r$   c                     V P                   V,          #   \         d?    T P                  P                  T4      T P                  T&   T P                  T,          u # i ; ir]   )r   KeyErrorr   r   ru   r`   s   &&r!   __getitem__LRUMemo.__getitem__   sQ    	%<<$$ 	% $ 0 0 5DLL<<$$	%s    AAAc                Z    V P                   P                  VR 4       W P                  V&   R # r]   )r   r   r   )ru   r`   r    s   &&&r!   __setitem__LRUMemo.__setitem__   s"    d#!Sr$   c                    V P                   P                  V4      p\        V P                  4      R V P                  ^,           )  pV F  pV P                  P                  V4       K   	  W P                  V&   R #   \
         d     R # i ; ir]   )r   r   r0   r   r   r   )ru   r`   r    oldest_keyskey_to_deletes   &&   r!   __delitem__LRUMemo.__delitem__   s{    	&LL$$S)E t||,-D!1C/DEK!,  / "- %LL  		s   A; ;B
	B
c                n    V P                   P                  4        V P                  P                  4        R # r]   )r   rl   r   ru   s   &r!   rl   LRUMemo.clear   s"    r$   )r   r   r   N)r   r6   r7   r8   r9   rv   r   r   r   rl   r>   r?   r@   s   @r!   r   r      s(     
%"	& r$   r   c                   *   a  ] tR t^t o RtR tRtV tR# )UnboundedMemoz4
A memoizing mapping that retains all deleted items
c                    R # r]   r5   r   s   &&r!   r   UnboundedMemo.__delitem__   s    r$   r5   N)r   r6   r7   r8   r9   r   r>   r?   r@   s   @r!   r   r      s      r$   r   c                0    V ^8  d   QhR\         R\         /# )r.   rM   rF   r   )r1   s   "r!   r3   r3      s        r$   c                     R  F   pV P                  V\        V,           4      p K"  	  V P                  RR4      p V P                  RR4      p \        V 4      # )z\^-[]rJ   z\n	z\t)replace_bslashr   )rM   cs   & r!   _escape_regex_range_charsr      sI    IIa1% 			$A			$Aq6Mr$   c                   H   a  ] tR t^t o RtV 3R lR ltV 3R lR ltRtV tR# )_GroupConsecutivea  
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'])
c                   < V ^8  d   QhRR/# )r.   rF   Nr5   )r1   r2   s   "r!   r3   _GroupConsecutive.__annotate__   s      $ r$   c                V    ^ V n         \        P                  ! 4       V n        RV n        R# )r   N)prev	itertoolsrQ   counterr    r   s   &r!   rv   _GroupConsecutive.__init__   s    	 (
r$   c                &   < V ^8  d   QhRS[ RS[/# )r.   charrF   )r   rH   )r1   r2   s   "r!   r3   r      s      S S r$   c                    \        V4      pW P                  uV n        pW#,
          ^8  d   \        V P                  4      V n        V P                  # )   )ordr   r   r   r    )ru   r   c_intr   s   &&  r!   __call___GroupConsecutive.__call__   s>    D		4<!dll+DJzzr$   )r   r   r    N)	r   r6   r7   r8   r9   rv   r   r>   r?   r@   s   @r!   r   r      s     . 
 r$   r   Tc                t    V ^8  d   QhR\         \        \        \        ,          3,          R\        R\        /# )r.   rM   	re_escaperF   )r   r   r   bool)r1   s   "r!   r3   r3      s7     X XS(3- X-1XXr$   c                   R R lpR R lpV'       g   Tp. p\        \        V 4      4      p\        V4      ^8  d   \        P                  ! V\        4       R7       F  w  rg\        V4      ;r\        P                  ! \        4      ;_uu_ 4        VEv riRRR4       W8X  d   VP                  V! V4      4       K_  V	\        \        V4      ^,           4      8X  d$   VP                  V! V4       V! V	4       24       K  VP                  V! V4       RV! V	4       24       K  	  MV U
u. uF
  q! V
4      NK  	  pp
RP                  V4      #   + '       g   i     L; iu up
i )	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                0    V ^8  d   QhR\         R\         /# r.   r   rF   r   )r1   s   "r!   r3   0_collapse_string_to_ranges.<locals>.__annotate__  s     0 0 0 0r$   c                 &    V R 9   d
   RV ,           # T # )z\^-][\r5   r   s   &r!   escape_re_range_char8_collapse_string_to_ranges.<locals>.escape_re_range_char  s    =tax/a/r$   c                0    V ^8  d   QhR\         R\         /# r   r   )r1   s   "r!   r3   r     s      3 3 r$   c                     V # r]   r5   r   s   &r!   no_escape_re_range_char;_collapse_string_to_ranges.<locals>.no_escape_re_range_char  s    r$   r`   N- )sortedrt   rK   r   groupbyr   r   
contextlibsuppressr   appendchrr   join)rM   r   r   r   rets_charsr_   charsfirstlastr   s   &&         r!   _collapse_string_to_rangesr      s7   N0 6
C  AG
7|a "))'7H7JKHA  ;&E$$Z0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   E*E Ec                0    V ^8  d   QhR\         R\        /# )r.   llrF   )r   r0   )r1   s   "r!   r3   r3   9  s     	 	 	d 	r$   c                     . p. V OpV'       dW   VP                  ^ 4      p\        V\        4      '       d   \        V\        4      '       g   W2R&   KK  VP	                  V4       K^  V# )r   :Nr   N)r   
isinstancer   r   r   )r   r   to_visitis   &   r!   _flattenr   9  sP    
CuH
LLOa"":a+=+=RLJJqMJr$   non_capturing_groups_levelc          
      j    V ^8  d   QhR\         \        ,          R\        R\        R\        R\        /# )r.   	word_list	max_levelr   r   rF   )r   r   rH   r   )r1   s   "r!   r3   r3   E  sE     \ \}\\ 	\
 \ 	\r$   c          
        R R lpV^8X  d'   V '       g   \        R4      hRV 9   d   \        R4      hM
V '       g   R# \        / P                  V 4      4      p V^ 8X  d   \        ;QJ d    R V  4       F  '       g   K   RM	  RM! R V  4       4      '       dF   R	P	                  \        V  Uu. uF  p\        P                  ! V4      NK  	  up\        RR
7      4      # RRP	                  R V  4       4       R2# . pRpV'       d   RMRpV! \        V 4      4       EFG  w  rVP                  V4       R	p\        P                  ! V	4      p	RpRV
9   d   RpV
P                  R4       \        V
4      ^8  Edf   \        ;QJ d    R V
 4       F  '       d   K   RM	  RM! R V
 4       4      '       d2   VP                  V	 RRP	                  R V
 4       4       RV 24       K  W18  d>   \        \        V
4      VVV^,           R7      pVP                  V	 RV V RV 24       EK
  \        ;QJ d    R V
 4       F  '       d   K   RM	  RM! R V
 4       4      '       d3   VP                  V	 RRP	                  R V
 4       4       RV 24       EKv  V
P                  \        RR
7       VP                  V	 RV R	P	                  R V
 4       4       RV 24       EK  V
'       dn   \        P                  ! V
^ ,          4      p\        V4      ^8  d'   V'       d   VP                  V	 RV V RV 24       EK  VP                  V	 V V 24       EK6  VP                  V	4       EKJ  	  RP	                  V4      # u upi )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.
c                :    V ^8  d   QhR\         \        ,          /# )r.   namelistr/   )r1   s   "r!   r3   (make_compressed_re.<locals>.__annotate__T  s     4 4DI 4r$   c           	   3     "   \        V 4      ^8  dQ   \        P                  ! V R R7       F1  w  rT\        V Uu. uF  q3R,          NK  	  up\         RR7      3x  K3  	  R# V ^ ,          ^ ,          V ^ ,          R,          .3x  R# u upi 5i)r   c                     V R ,          # )Nr   Nr5   )rM   s   &r!   r*   Omake_compressed_re.<locals>.get_suffixes_from_common_prefixes.<locals>.<lambda>V  s	    aPRer$   r   :r   NNTr`   reverseN)rK   r   r   r   )r   prefixsuffixesrM   s   &   r!   !get_suffixes_from_common_prefixes=make_compressed_re.<locals>.get_suffixes_from_common_prefixesT  sy     x=1$-$5$5hO$T fX%>XeeX%>CQUVVV %U 1+a.8A;r?"333 &?s   9BBABz&no words given to make_compressed_re()r   z%word list cannot contain empty stringc              3   >   "   T F  p\        V4      ^8  x  K  	  R# 5ir   NrK   .0wds   & r!   	<genexpr>%make_compressed_re.<locals>.<genexpr>j  s     /Yrs2w{Y   TF|r   [c              3   8   "   T F  p\        V4      x  K  	  R # 5ir]   r   r   s   & r!   r   r   o  s     Qy8<<y   ]z?:?c              3   >   "   T F  p\        V4      ^8H  x  K  	  R# 5ir   r   r   rM   s   & r!   r   r     s     113q6Q;r   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir]   r  r	  s   & r!   r   r     s     (Xx!)B1)E)Exr  )r   r   ()c              3   >   "   T F  p\        V4      ^8H  x  K  	  R# 5ir   r   r	  s   & r!   r   r     s     913q6Q;r   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir]   r  r	  s   & r!   r   r     s     0`W_RS1J11M1MW_r  c              3   N   "   T F  p\         P                  ! V4      x  K  	  R # 5ir]   )reescaper	  s   & r!   r   r     s     :ZQYA299Q<<QYs   #%)r   r0   fromkeysanyr   r   r  r  rK   r   removeallmake_compressed_resort)r   r   r   r   r   r   r   sepncgroupinitialr   trailing	suffix_resuffixs   &&$$          r!   r  r  E  s   4 {EFF?DEE   R[[+,IA~3/Y/333/Y///88	:	"		"	:TR  rwwQyQQRRSTT
C
C*dG>vi?PQ

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

iq(Xx(X!X YYZ[cZde % 2x(!-A%z	!I JJ'!G9YKq
KLs99sss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   -M8c                <    V ^8  d   QhR\         R\        R\        /# )r.   compat_namefnrF   )r   r
   )r1   s   "r!   r3   r3     s!     ( (# (1 ( (r$   c                 p  a \        SR S4      oR.\        \        P                  ! S4      P                  4      R,          8X  d   \        S4      V3R l4       pM\        S4      V3R l4       pRSP                   R2Vn        Wn        SP                  Vn        \        S\        P                  4      '       d   SP                  Vn        MK\        S\        4      '       d/   \        SR4      '       d   SP                  P                  Vn        MRVn        SP                   Vn        \#        \$        V4      # )	__func__ru   r   c                    < S! V .VO5/ VB # r]   r5   )ru   argskwargsr   s   &*,r!   _inner replaced_by_pep8.<locals>._inner  s    
 d,T,V,,r$   c                     < S! V / VB # r]   r5   )r$  r%  r   s   *,r!   r&  r'    s    
 t&v&&r$   z6
        .. deprecated:: 3.0.0
           Use :class:`z` instead
        rv   N)r   r0   inspect	signature
parametersr   r   r9   __annotations__r   rr   FunctionType__kwdefaults__typehasattrrv   r7   r	   r
   )r  r   r&  s   &f r!   replaced_by_pep8r1    s   
 
Z	$B 	x4))"-889"==	r	- 
	- 
r	' 
	'} %	FN "O//F"e(()) " 1 1	B		'"j"9"9 " : : $//F6?r$   r&   )r.   )!r   r  	functoolsr   r   r)  r   rr   typingr   r   r   r   r	   r   r   r   r
   r   rN   rR   rX   rZ   r{   r   dictr   r   r   r   r   r  r1  r5   r$   r!   <module>r5     s     	 &    ; ; 
b'Cx C C2 3Y Y  3
( 
( 3P P3 3*3 32% %PD " "JXv	\ "&	\
 \ \~(r$   