
    ̆hQ                    x   S r SSKJr  SSKrSSKrSSKJr	  SSK
Jr  SSK
Jr  SSKJr  SS	KJrJrJrJrJrJrJr  SS
KJrJr  Sr\R6                  r\R8                  r\R:                  r\R<                  r\R>                  r\R@                  r \RB                  r!\RD                  r"\RF                  r#\RH                  r$\RJ                  r%\RL                  r&\RN                  r'\RP                  r(\RR                  r)\RT                  r*\RV                  r+\RX                  r,\RZ                  r-\R\                  r.\R^                  r/\R`                  r0\Rb                  r1\Rd                  r2\Rf                  r3\Rh                  r4\Rj                  r5\Rl                  r6\Rn                  r7\Rp                  r8\Rr                  r9\Rt                  r:\Rv                  r;\Rx                  r<Sr=Sr>Sr?Sr@\A" \R                  " SS5      5      rC\	" \@S9          S,S j5       rD\	" \@S9          S-S j5       rES.S/S jjrFS0S jrGS1S jrH S2       S3S jjrI S2     S4S jjrJS.S5S jjrK " S S\R                  \\   5      rM  S6         S7S jjrB S2       S8S jjrN S2       S9S jjrOS0S jrPS:S jrQS:S jrR S2           S;S  jjrS S2           S;S! jjrT S2           S;S" jjrU  S<               S=S# jjrV  S<               S=S$ jjrW  S<               S>S% jjrX  S<               S>S& jjrY  S<             S?S' jjrZ  S<             S@S( jjr[ S2           SAS) jjr\ S2           SBS* jjr]S+ r^\R                  " \M\^5        g)Ca  
Backrefs for the 'regex' module.

Add the ability to use the following backrefs with re:

 - `\Q` and `\Q...\E`                                           - Escape/quote chars (search)
 - `\c` and `\C...\E`                                           - Uppercase char or chars (replace)
 - `\l` and `\L...\E`                                           - Lowercase char or chars (replace)
 - `\N{Black Club Suit}`                                        - Unicode character by name (replace)
 - `\u0000` and `\U00000000`                                    - Unicode characters (replace)
 - `\R`                                                         - Generic line breaks (search)

Licensed under MIT
Copyright (c) 2015 - 2020 Isaac Muse <isaacmuse@gmail.com>
    )annotationsN)	lru_cache   )util)_bregex_parse)ReplaceTemplate)AnyStrCallableAnyGenericMappingIteratorcast)PatternMatch)6expandexpandfmatch	fullmatchsearchsubsubfsubnsubfnsplit	splititerfindallfinditerpurgeescapeDDEBUGAASCIIB	BESTMATCHEENHANCEMATCHFFULLCASEI
IGNORECASELLOCALEM	MULTILINERREVERSESDOTALLUUNICODEXVERBOSEV0VERSION0V1VERSION1WWORDPPOSIXDEFAULT_VERSIONFORMATcompilecompile_searchcompile_replaceBregexr      i   )maxsizec                L    [         R                  " XU5      R                  5       $ )zCached search compile.)r   _SearchParserparse)pattern
re_verbose
re_versionpattern_types       G/opt/services/DDDS/venv/lib/python3.13/site-packages/backrefs/bregex.py_cached_search_compilerR   U   s      &&wJGMMOO    c                l    [         R                  " X[        U[        -  5      5      R	                  5       $ )zCached replace compile.)r   _ReplaceParserboolrB   rL   )rM   replflagsrP   s       rQ   _cached_replace_compilerY   a   s)     ''tEFN7KLRRTTrS   c                    U (       d   [         R                  5       R                  nU$ [        R                  5       R                  nU$ )zGet size of cache.)rR   
cache_infocurrsizerY   )replacesizes     rQ   _get_cache_sizer_   m   s=     %002;; K '113<<KrS   c                 T    [         R                  5         [        R                  5         g)zPurge the cache.N)rY   cache_clearrR    rS   rQ   _purge_cacherc   w   s     '')&&(rS   c                "    [        U [        5      $ )z$Check if object is a replace object.)
isinstancer   )objs    rQ   _is_replacerg   ~   s     c?++rS   c                   U c  [        S5      e[        U[        5      (       a  UR                  U 5      $ [        R
                  " U R                  U[        U[        -  5      5      R                  5       R                  U 5      $ )zOExpand with either the `ReplaceTemplate` or compile on the fly, or return None.zMatch is None!)

ValueErrorre   r   r   r   rU   rerV   rB   rL   )mrW   rX   s      rQ   _apply_replace_backrefsrl      sg     	y)**$(({{1~''dD4HIOOQXXYZ[[rS   c                0   [        U [        [        45      (       a  [        U-  nU[        -  (       a  [        nOU[
        -  (       a  [
        nOSnU[        -  (       d  [        XU[        U 5      5      nU$ [        R                  " [        [        U 5      X#5      R                  5       n U$ [        U [        5      (       a   U(       a  [        S5      eU R                   nU$ [        U ["        5      (       a  U(       a  [        S5      eU nU$ [%        S5      e)z0Apply the search backrefs to the search pattern.r   5Cannot process flags argument with a compiled patternz6Cannot process flags argument with a compiled pattern!z!Not a string or compiled pattern!)re   strbytesr8   r9   r;   r"   rR   typer   rK   r   r	   rL   rF   ri   _pattern_REGEX_TYPE	TypeError)rM   rX   rN   rO   ps        rQ   _apply_search_backrefsrv      s     'C<((u_
2:JRZJJ&ZgA H ++D,A:Z``bA H 
GV	$	$TUU H 
G[	)	)UVV H ;<<rS   c                    [        U [        5      (       a.  U R                  U:w  a  U(       a  [        S5      e[        S5      eg[        U [        [
        45      (       d  [        S5      eg)z(Check if replace template is expandable.z(Replace not compiled as a format replacez3Replace should not be compiled as a format replace!z-Expected string, buffer, or compiled replace!N)re   r   
use_formatri   ro   rp   rt   )rW   rx   s     rQ   _assert_expandablery      sa     $((??j( !KLL !VWW	 )
 sEl++GHH ,rS   c                  Z  ^  \ rS rSr% SrS\S'   S\S'   S\S'   S	rS#S$U 4S
 jjjr\S%S j5       r	\S&S j5       r
\S'S j5       r\S(S j5       r\S)S j5       rS&S jrS*S jrS*S jrS+S jr S,     S-S jjr S.     S/S jjr\S0S j5       r        S1S jr        S1S jr        S1S jr        S2S jr        S3S jr        S4S jr        S5S jr          S6S jr          S6S jr          S7S  jr          S7S! jrS"r U =r!$ )8rF      zBregex object.Pattern[AnyStr]rr   rV   auto_compileint_hashrr   r}   r   c           
     `   > [         TU ]  UU[        [        U 5      [        U5      X45      S9  g)zInitialization.r   N)super__init__hashrq   )selfrM   r}   	__class__s      rQ   r   Bregex.__init__   s4     	%T
DM7IJ 	 	
rS   c                J    [        [        U R                  R                  5      $ )zReturn pattern.)r   r	   rr   rM   r   s    rQ   rM   Bregex.pattern   s     FDMM1122rS   c                J    [        [        U R                  R                  5      $ )zReturn flags.)r   r~   rr   rX   r   s    rQ   rX   Bregex.flags   s     C,,--rS   c                d    [        [        [        [        4   U R                  R
                  5      $ )zReturn group index.)r   r   ro   r~   rr   
groupindexr   s    rQ   r   Bregex.groupindex   s$     GCH%t}}'?'?@@rS   c                B    [        SU R                  R                  5      $ )zReturn groups.tuple[AnyStr | None, ...])r   rr   groupsr   s    rQ   r   Bregex.groups   s     /1E1EFFrS   c                .    U R                   R                  $ )zReturn scanner.)rr   scannerr   s    rQ   r   Bregex.scanner   s     }}$$$rS   c                    U R                   $ )zHash.)r   r   s    rQ   __hash__Bregex.__hash__   s     zzrS   c                    [        U[        5      =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ zEqual.re   rF   rr   r}   r   others     rQ   __eq__Bregex.__eq__   sA     uf% 4MMU^^+4!3!33	
rS   c                    [        U[        5      (       + =(       d9    U R                  UR                  :g  =(       d    U R                  UR                  :g  $ r   r   r   s     rQ   __ne__Bregex.__ne__  sD     5&)) 4MMU^^+4!3!33	
rS   c                    SR                  U R                  U R                  R                  U R                  U R
                  5      $ )zRepresentation.z{}.{}({!r}, auto_compile={!r}))format
__module__r   __name__rr   r}   r   s    rQ   __repr__Bregex.__repr__  s8     066OOT^^44dmmTEVEV
 	
rS   c                   [        U[        5      (       a  X!R                  :w  a  [        S5      e U$ [        U[        5      (       d,  [        U[        [
        45      (       aH  U R                  (       a7  U R                  X(       a  [        U[        5      (       d
  [        5      $ S5      $ [        U[        [
        45      (       a  U(       a  [        S5      eU$ )zCompile replacements.+Compiled replace cannot be a format object!r   zDFormat replaces cannot be called without compiling replace template!)
re   r   rx   ri   ro   rp   r}   rC   rB   AttributeError)r   templaterx   s      rQ   _auto_compileBregex._auto_compile  s     h00000 !NOO 1  /22z(SRWL7Y7Y^b^o^o<<Z
S[]lHmHm6vvstvv3,//J !!ghhrS   c                .    [        U R                  X5      $ )zCompile replace.)rE   rr   )r   rW   rX   s      rQ   rC   Bregex.compile%  s     t}}d::rS   c                B    [        SU R                  R                  5      $ )zReturned named lists.Mapping[str, set[str | bytes]])r   rr   named_listsr   s    rQ   r   Bregex.named_lists.  s     4dmm6O6OPPrS   c                B    U R                   R                  " U/UQ70 UD6$ )zApply `search`.)rr   r   r   stringargskwargss       rQ   r   Bregex.search4  s#     }}##F<T<V<<rS   c                V    [        SU R                  R                  " U/UQ70 UD65      $ )zApply `match`.Match[AnyStr] | None)r   rr   r   r   s       rQ   r   Bregex.match>  s,     *DMM,?,?,X,XQW,XYYrS   c                V    [        SU R                  R                  " U/UQ70 UD65      $ )zApply `fullmatch`.r   )r   rr   r   r   s       rQ   r   Bregex.fullmatchH  s,     *DMM,C,CF,\T,\U[,\]]rS   c                V    [        SU R                  R                  " U/UQ70 UD65      $ )zApply `split`.list[AnyStr])r   rr   r   r   s       rQ   r   Bregex.splitR  s*     NDMM$7$7$P$P$PQQrS   c                l    [        [        [           U R                  R                  " U/UQ70 UD65      $ )zApply `splititer`.)r   r   r	   rr   r   r   s       rQ   r   Bregex.splititer\  s/     HV$dmm&=&=f&Vt&Vv&VWWrS   c                V    [        SU R                  R                  " U/UQ70 UD65      $ )zApply `findall`.'list[AnyStr] | list[tuple[AnyStr, ...]])r   rr   r   r   s       rQ   r   Bregex.findallf  s.     =t}}?T?TU[?m^b?mfl?mnnrS   c                z    [        [        [        [              U R                  R
                  " U/UQ70 UD65      $ )zApply `finditer`.)r   r   r   r	   rr   r   r   s       rQ   r   Bregex.finditerp  s4     HU6]+T]]-C-CF-\T-\U[-\]]rS   c                ~    [        [        U R                  R                  " U R	                  U5      U/UQ70 UD65      $ )zApply `sub`.)r   r	   rr   r   r   r   rW   r   r   r   s        rQ   r   
Bregex.subz  s9     FDMM--d.@.@.F`QU`Y_`aarS   c           	         [        [        U R                  R                  " U R	                  US5      U/UQ70 UD65      $ )z&Apply `sub` with format style replace.T)r   r	   rr   r   r   r   s        rQ   r   Bregex.subf  s;     FDMM..t/A/A$/MvgX\g`fghhrS   c                v    [        SU R                  R                  " U R                  U5      U/UQ70 UD65      $ )z'Apply `subn` with format style replace.tuple[AnyStr, int])r   rr   r   r   r   s        rQ   r   Bregex.subn  s<     ($--*<*<T=O=OPT=UW]*o`d*ohn*opprS   c           	     x    [        SU R                  R                  " U R                  US5      U/UQ70 UD65      $ )z%Apply `subn` after applying backrefs.r   T)r   rr   r   r   r   s        rQ   r   Bregex.subfn  s?     ($--*=*=d>P>PQUW[>\^d*vgk*vou*vwwrS   rb   )T)rM   r|   r}   rV   returnNone)r   r	   )r   r~   )r   zMapping[str, int])r   r   )r   r   )r   r   r   rV   )r   ro   F)r   AnyStr | Callable[..., AnyStr]rx   rV   r   r   r   )rW   r   rX   r~   r   Callable[..., AnyStr])r   r   )r   r	   r   r   r   r   r   r   )r   r	   r   r   r   r   r   r   )r   r	   r   r   r   r   r   Iterator[AnyStr])r   r	   r   r   r   r   r   r   )r   r	   r   r   r   r   r   Iterator[Match[AnyStr]])
rW   r   r   r	   r   r   r   r   r   r	   )
rW   r   r   r	   r   r   r   r   r   r   )"r   r   __qualname____firstlineno____doc____annotations__	__slots__r   propertyrM   rX   r   r   r   r   r   r   r   r   rC   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classcell__)r   s   @rQ   rF   rF      sA   J5I
 
 3 3
 . .
 A A
 G G
 % %




 !0  
(	, ;,; ; 
	; Q Q
== = 	=
 
=ZZ Z 	Z
 
Z^^ ^ 	^
 
^RR R 	R
 
RXX X 	X
 
Xoo o 	o
 
1o^^ ^ 	^
 
!^	b,	b 	b 		b
 	b 
	b	i,	i 	i 		i
 	i 
	i	q,	q 	q 		q
 	q 
	q	x,	x 	x 		x
 	x 
	x 	xrS   rF   c                    [        U [        5      (       a!  Ub  [        S5      eUS:w  a  [        S5      eU $ Uc  Sn[        [        X40 UD6U5      $ )z>Compile both the search or search and replace into one object.z4Cannot compile Bregex with a different auto_compile!r   rn   T)re   rF   ri   rD   )rM   rX   r}   r   s       rQ   rC   rC     s]     '6""#STTaZTUULnW>v>MMrS   c           	     n    [        [        [           [        R                  " [        X5      U40 UD65      $ )z(Compile with extended search references.)r   r   r	   _regexrC   rv   )rM   rX   r   s      rQ   rD   rD     s-     0Fw0VX]!hag!hiirS   c                   U b  [        U [        5      (       a  [        U[        [        45      (       ah  U R                  [
        -  (       d  [        XU[        U5      5      nU$ [        R                  " X[        U[        -  5      5      R                  5       n U$ [        U[        5      (       a:  U(       a  [        S5      eUR                  [!        U 5      :w  a  [        S5      eUnU$ [#        S5      e[#        S5      e)zOConstruct a method that can be used as a replace method for `sub`, `subn`, etc.z5Cannot process flags argument with a ReplaceTemplate!z4Pattern hash doesn't match hash in compiled replace!zNot a valid type!z.Pattern must be a compiled regular expression!)re   rs   ro   rp   rX   r"   rY   rq   r   rU   rV   rB   rL   r   ri   pattern_hashr   rt   )rM   rW   rX   calls       rQ   rE   rE     s     z';??dS%L))MME).weT$ZP K %33G4PVCWX^^` K o.. !XYY  DM1 !WXXD
 K /00HIIrS   c                 B    [        5         [        R                  " 5         g)zPurge caches.N)rc   r   r   rb   rS   rQ   r   r     s     N
LLNrS   c                .    [        U5        [        X5      $ )z8Expand the string using the replace pattern or function.)ry   rl   rk   rW   s     rQ   r   r     s     t"1++rS   c                6    [        US5        [        X[        S9$ )z?Expand the string using the format replace pattern or function.TrX   )ry   rl   rB   r   s     rQ   r   r     s     tT""1&99rS   c           	     ^    [        S[        R                  " [        X5      X/UQ70 UD65      $ )zWrapper for `match`.r   )r   r   r   rv   rM   r   rX   r   r   s        rQ   r   r     s3     +G;V\T\U[\ rS   c           	     ^    [        S[        R                  " [        X5      X/UQ70 UD65      $ )zWrapper for `fullmatch`.r   )r   r   r   rv   r   s        rQ   r   r     s6     /?`QU`Y_` rS   c           	     ^    [        S[        R                  " [        X5      X/UQ70 UD65      $ )zWrapper for `search`.r   )r   r   r   rv   r   s        rQ   r   r     s3     ,W<f]d]V\] rS   c           
     R   [        U5      n[        U[        [        45      nU(       a1  [	        [
        [           U5      R                  (       a  [        S5      e[        X5      n [	        [        [        R                  " X(       d  U(       a  [        X5      OUUUS/UQ70 UD65      $ )zWrapper for `sub`.r   r   )rg   re   ro   rp   r   r   r	   rx   ri   rD   r   r   rE   	rM   rW   r   countrX   r   r   
is_replace	is_strings	            rQ   r   r   "  s     T"J4#u.Id?62D9DDFGGW,G


iog4UY\b	
 		
 		
 rS   c                n   [        U5      n[        U[        [        45      nU(       a1  [	        [
        [           U5      R                  (       d  [        S5      e[        X5      n U(       a  [        OSn	[	        [        [        R                  " X(       d  U(       a
  [        XU	S9OUUUS/UQ70 UD65      $ )zWrapper for `subf`.(Compiled replace is not a format object!r   r   )rg   re   ro   rp   r   r   r	   rx   ri   rD   rB   r   r   rE   
rM   rW   r   r   rX   r   r   r   r   rflagss
             rQ   r   r   >  s     T"J4#u.I$v6=HHCDDW,G VaF

jT]og6Bcgjp	
 		
 		
 rS   c           
     J   [        U5      n[        U[        [        45      nU(       a1  [	        [
        [           U5      R                  (       a  [        S5      e[        X5      n [	        S[        R                  " X(       d  U(       a  [        X5      OUUUS/UQ70 UD65      $ )zWrapper for `subn`.r   r   r   )rg   re   ro   rp   r   r   r	   rx   ri   rD   r   r   rE   r   s	            rQ   r   r   [  s     T"J4#u.Id?62D9DDFGGW,G
iog4UY\b	
 		
 		
 rS   c                f   [        U5      n[        U[        [        45      nU(       a1  [	        [
        [           U5      R                  (       d  [        S5      e[        X5      n U(       a  [        OSn	[	        S[        R                  " X(       d  U(       a
  [        XU	S9OUUUS/UQ70 UD65      $ )zWrapper for `subfn`.r   r   r   r   )rg   re   ro   rp   r   r   r	   rx   ri   rD   rB   r   r   rE   r   s
             rQ   r   r   w  s     T"J4#u.I$v6=HHCDDW,G VaFjT]og6Bcgjp	
 		
 		
 rS   c           	     `    [        S[        R                  " [        X5      XU/UQ70 UD65      $ )zWrapper for `split`.r   )r   r   r   rv   rM   r   maxsplitrX   r   r   s         rQ   r   r     s6     +G;VufW[f_ef rS   c           	     v    [        [        [           [        R                  " [        X5      XU/UQ70 UD65      $ )zWrapper for `splititer`.)r   r   r	   r   r   rv   r   s         rQ   r   r     s>     /?SXj[_jcij rS   c           	     ^    [        S[        R                  " [        X5      X/UQ70 UD65      $ )zWrapper for `findall`.r   )r   r   r   rv   r   s        rQ   r   r     s3     1-g=v^t^W]^ rS   c           	         [        [        [        [              [        R
                  " [        X5      U/UQ70 UD65      $ )zWrapper for `finditer`.)r   r   r   r	   r   r   rv   r   s        rQ   r   r     s<     v.w>XXQWX rS   c                >    [         U R                  U R                  44$ )N)rF   rr   r}   )ru   s    rQ   _pickler    s    AJJ///rS   )
rM   r	   rN   rV   rO   rV   rP   type[AnyStr]r   r	   )
rM   r|   rW   r	   rX   r~   rP   r  r   zReplaceTemplate[AnyStr]r   )r]   rV   r   r~   )r   r   )rf   r   r   rV   r   )rk   r   rW    ReplaceTemplate[AnyStr] | AnyStrrX   r~   r   r	   )rM   )AnyStr | Pattern[AnyStr] | Bregex[AnyStr]rX   r~   r   zAnyStr | Pattern[AnyStr])rW   r   rx   rV   r   r   )r   N)
rM   r	  rX   r~   r}   zbool | Noner   r   r   zBregex[AnyStr])rM   r	  rX   r~   r   r   r   r|   )rM   r|   rW   r   rX   r~   r   r   )rk   r   rW   r  r   r	   )rM   r	  r   r	   rX   r~   r   r   r   r   r   r   )r   r   )rM   r	  rW   r   r   r	   r   r~   rX   r~   r   r   r   r   r   r	   )rM   r	  rW   r   r   r	   r   r~   rX   r~   r   r   r   r   r   r   )rM   r	  r   r	   r  r~   rX   r~   r   r   r   r   r   r   )rM   r	  r   r	   r  r~   rX   r~   r   r   r   r   r   r   )rM   r	  r   r	   rX   r~   r   r   r   r   r   r   )rM   r	  r   r	   rX   r~   r   r   r   r   r   r   )`r   
__future__r   regexr   copyreg_copyreg	functoolsr   
_lru_cacherH   r   _utilr   r   typingr	   r
   r   r   r   r   r   _bregex_typingr   r   __all__r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   r    rB   _UPPER_LOWER	_MAXCACHErq   rC   rs   rR   rY   r_   rc   rg   rl   rv   ry   	ImmutablerF   rD   rE   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  picklerb   rS   rQ   <module>r     s   #   -   * J J J * HH
HH
HH	
HH""
HH??
HH

HH	
HH	
HH
..
HH	
HH
..
HH
..YY??YY??
HH{{
HH((	 
 
	
 	6>>"a() IPPP P 	P
 P P IUU
U U 	U
 U U), \\
*\ \ 	\" 6 B
I `xU__gfo `xJ  $N6NN N 	N
 N. j6jj j 	j 
(  	4,: 6  	
  $ 6  	
  $ 6  	
  & 6
(  	
    @ 6
(  	
    B 6
(  	
    @ 6
(  	
    @ 	6  	
   & 	6  	
   & 6  	
  -$ 6  	
  0 	  rS   