
    daf?                        	 d dl Z ddlmZmZ d dlZd dlZg dZdZe j                   e j                  e j                  e j                         G d d                    Zej                  Zdd	Zdd
ZddZd dZd dZd dZddZddZddZd ZddZdD  ci c]  } | d e|       z    c} Zd Z e ej,                  dd             Z e ej,                  dd       j                  d            Zi Zi Z dZ!dZ"d Z# ejH                  e!      d        Z%d dl&Z&d Z' e&jP                  ee'e#        G d d      Z)yc c} w )!    N   )	_compiler_parser)match	fullmatchsearchsubsubnsplitfindallfinditercompilepurgetemplateescapeerrorPatternMatchAILMSXUASCII
IGNORECASELOCALE	MULTILINEDOTALLVERBOSEUNICODENOFLAG	RegexFlagz2.2.1)boundaryc                   $   e Zd ZdZej
                  xZZej                  xZ	Z
ej                  xZZej                  xZZej"                  xZZej(                  xZZej.                  xZZej4                  xZZej:                  Zej@                  Z e!Z"y)r$   r   N)#__name__
__module____qualname__r#   r   SRE_FLAG_ASCIIr   r   SRE_FLAG_IGNORECASEr   r   SRE_FLAG_LOCALEr   r   SRE_FLAG_UNICODEr"   r   SRE_FLAG_MULTILINEr   r   SRE_FLAG_DOTALLr    r   SRE_FLAG_VERBOSEr!   r   SRE_FLAG_TEMPLATETEMPLATETSRE_FLAG_DEBUGDEBUGobject__str__hex_numeric_repr_     &/root/Python-3.12.4/Lib/re/__init__.pyr$   r$      s     F(((EA222J***FQ,,,Ga000I***FQ,,,Ga...Hq$$EnnGNr;   r$   c                 :    	 t        | |      j                  |      S N)_compiler   patternstringflagss      r<   r   r      s    6GU#))&11r;   c                 :    	 t        | |      j                  |      S r>   )r?   r   r@   s      r<   r   r      s    6GU#--f55r;   c                 :    	 t        | |      j                  |      S r>   )r?   r   r@   s      r<   r   r      s    6GU#**622r;   c                 >    	 t        | |      j                  |||      S r>   )r?   r	   rA   replrB   countrC   s        r<   r	   r	      s%    ( GU#''fe<<r;   c                 >    	 t        | |      j                  |||      S r>   )r?   r
   rG   s        r<   r
   r
      s%    / GU#((vu==r;   c                 <    	 t        | |      j                  ||      S r>   )r?   r   )rA   rB   maxsplitrC   s       r<   r   r      s#     GU#))&(;;r;   c                 :    	 t        | |      j                  |      S r>   )r?   r   r@   s      r<   r   r      s!    1 GU#++F33r;   c                 :    	 t        | |      j                  |      S r>   )r?   r   r@   s      r<   r   r      s!    1 GU#,,V44r;   c                     	 t        | |      S r>   )r?   )rA   rC   s     r<   r   r      s    GGU##r;   c                  ~    	 t         j                          t        j                          t        j	                          y r>   )_cacheclear_cache2_compile_templatecache_clearr:   r;   r<   r   r      s#    )
LLNMMO!!#r;   c                     	 dd l }|j                  dt               |j                         5  |j	                  dt               t        | |t        z        cd d d        S # 1 sw Y   y xY w)Nr   zThe re.template() function is deprecated as it is an undocumented function without an obvious purpose. Use re.compile() instead.ignore)warningswarnDeprecationWarningcatch_warningssimplefilterr?   r3   )rA   rC   rX   s      r<   r   r      s`    HMM . %	&
 
	 	 	" *h(:;q)* * *s   )AA(s   ()[]{}?*+-|^$\.&~# 	
\c                     	 t        | t              r| j                  t              S t        | d      } | j                  t              j	                  d      S )Nlatin1)
isinstancestr	translate_special_chars_mapencode)rA   s    r<   r   r      sN     '3  !344gx(  !34;;HEEr;    i      c                 :   t        |t              r|j                  }	 t        t	        |       | |f   S # t
        $ r Y nw xY wt	        |       | |f}t        j                  |d       }|t        | t              r|rt        d      | S t        j                  |       st        d      |t        z  rdd l}|j                  dt                t        j"                  | |      }|t$        z  r|S t'        t              t(        k\  r9	 t        t+        t-        t                    = n# t.        t0        t
        f$ r Y nw xY w|t        |<   t'        t              t2        k\  r9	 t        t+        t-        t                    = n# t.        t0        t
        f$ r Y nw xY w|t        |<   |S )Nz5cannot process flags argument with a compiled patternz1first argument must be string or compiled patternr   zoThe re.TEMPLATE/re.T flag is deprecated as it is an undocumented flag without an obvious purpose. Don't use it.)r`   r$   valuerS   typeKeyErrorrQ   popr   
ValueErrorr   isstring	TypeErrorr3   rX   rY   rZ   r   r5   len	_MAXCACHEnextiterStopIterationRuntimeError
_MAXCACHE2)rA   rC   keyprX   s        r<   r?   r?     sv   %#tG}gu455  ='5
)C

3Aygw' KM MN!!'*OPP19MM $ '	(
 gu-5=Hv;)#
4V-.!<:  F3K
7|z!	T']+,|X6 		GCLHs0   3 	??D   D76D7E8 8FFc                 V    t        j                  | t        j                  ||             S r>   )_srer   r   parse_template)rA   rH   s     r<   rT   rT   K  s"     =='"8"8w"GHHr;   c                 >    t         | j                  | j                  ffS r>   )r?   rA   rC   )rw   s    r<   _pickler|   T  s    aii)))r;   c                       e Zd ZddZd Zy)Scannerc                    ddl m}m} t        |t              r|j
                  }|| _        g }t        j                         }||_	        |D ]j  \  }}|j                         }	|j                  t        j                  |||	ddt        j                  ||      ffg             |j                  |	|d          l t        j                  ||d |ffg      }t        j                   |      | _        y )Nr   )BRANCH
SUBPATTERNr   )
_constantsr   r   r`   r$   rh   lexiconr   StaterC   	opengroupappend
SubPatternparse
closegroupr   r   scanner)
selfr   rC   r   r   rw   sphraseactiongids
             r<   __init__zScanner.__init__]  s    2eY'KKEMMO% 	%NFF++-CHHW''c1avu)EFG,   LLae$	% qFT1I#6"78 ((+r;   c                 f   g }|j                   }| j                  j                  |      j                  }d}	  |       }|snk|j                         }||k(  rnU| j                  |j
                  dz
     d   }t        |      r|| _         || |j                               }| ||       |}u|||d  fS )Nr   r   )r   r   r   endr   	lastindexcallablegroup)	r   rB   resultr   r   imjr   s	            r<   scanzScanner.scann  s    $$V,22AAAv\\!++a-03F
aggi0!vA  vabz!!r;   Nr   )r'   r(   r)   r   r   r:   r;   r<   r~   r~   \  s    ,""r;   r~   r   )r   r   )*enumre   r   r   	functoolsry   __all____version__global_enum_simple_enumIntFlagKEEPr$   r   r   r   r   r	   r
   r   r   r   r   r   r   chrrc   r   ri   r   r   rQ   rS   rp   ru   r?   	lru_cacherT   copyregr|   pickler~   )r   s   0r<   <module>r      s|  "iV      4<<$))4  5   	
2
6
3
=	><45$$
*" 1RR1aA&R F  y  Q'
(Yr1%++B/0 

	
1f YI  I * w *
%" %" Ss   D>