
    iT                     N   % 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  S SKJr  \R                   r\R"                  rS SKJrJr  S SKJrJr  S SKJrJr  \" \" 5       5      r \" S	5      r!\!\" S
5      -  r"S1r#\" \" S/5      5      r$\" \" S/5      5      r%\" \" SS/5      5      r&\'" S5       V s1 s H  n \" U 5      iM     sn r(\( Vs1 s H  n\RS                  SU5      (       d  M  UiM      snr*\( Vs1 s H  n\RS                  SU5      (       d  M  UiM      snr+\( Vs1 s H  n\RS                  SU5      (       d  M  UiM      snr,\RZ                  \*\R\                  \+\R^                  \,\R`                  \(\*-
  \Rb                  \(\+-
  \Rd                  \(\,-
  0r3\Rh                  " \Rj                  " \65      SS9r7\Rp                  \6   \9S'    " S S\5      r:\Rv                  S 5       r<\Rv                  S 5       r=\Rv                  S 5       r>\Rv                  S 5       r?S r@ " S S5      rA " S S 5      rB " S! S"\B5      rC\Rv                  S# 5       rDS)S$ jrES%S&.S' jrFS( rGg! \ a    S SKrS SKr\" 5       r\" 5       r GNHf = fs  sn f s  snf s  snf s  snf )*    N)InvalidArgument)charmap)unwrap_strategies)OneCharStringStrategy)reject
strategies)as_general_categories
categories)add_noteint_to_bytez 	
u   NdZLN   s   \ds   \ss   \wzhypothesis.regex.group_cache)keyGROUP_CACHE_STRATEGYc                       \ rS rSrSrg)IncompatibleWithAlphabetB    N)__name__
__module____qualname____firstlineno____static_attributes__r       d/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/hypothesis/strategies/_internal/regex.pyr   r   B   s    r   r   c                 6    U " [         5      nU " U5      nXCU'   U$ Nr   )draw
group_namestrategycacheresults        r   update_groupr'   F   s#    %&E(^F*Mr   c                 X    U " [         5      n X!   $ ! [         a    [        5          g f = fr    )r   KeyErrorr   )r"   r#   r%   s      r   reuse_groupr*   N   s/    %&E   s    ))c                 D    U " [         5      nX;   a  U " U5      $ U " U5      $ r    r!   )r"   r#   if_yesif_nor%   s        r   group_conditionalr.   W   s'    %&EF|E{r   c                 N    U " [         5      nU " U5      nUR                  5         U$ r    )r   clear)r"   base_strategyr%   r&   s       r   clear_cache_after_drawr2   `   s%    %&E- F	KKMMr   c                 `   ^ U c  g[        U 5      R                  m[        U4S jU 5       5      $ )Nr   c              3   6   >#    U  H  oT;  d  M
  Uv   M     g 7fr    r   ).0cintsets     r   	<genexpr>(chars_not_in_alphabet.<locals>.<genexpr>m   s     6FqvoFs   		)r   	intervalstuple)alphabetstringr7   s     @r   chars_not_in_alphabetr>   h   s-    x(22F6F666r   c                        \ rS rSrS/rS rSrg)Contextp   flagsc                     Xl         g r    rB   )selfrB   s     r   __init__Context.__init__s   s    
r   rD   N)r   r   r   r   	__slots__rF   r   r   r   r   r@   r@   p   s    	Ir   r@   c                   D    \ rS rSrSrSSS.S jr\S 5       rS rS	 r	S
r
g)CharactersBuilderw   ag  Helper object that allows to configure `characters` strategy with
various unicode categories and characters. Also allows negation of
configured set.

:param negate: If True, configure :func:`hypothesis.strategies.characters`
    to match anything other than configured character set
:param flags: Regex flags. They affect how and which characters are matched
Fr   negaterB   c                t   [        5       U l        [        5       U l        [        5       U l        Xl        U[
        R                  -  U l        [        U l	        [        U5      U l        U[
        R                  -  (       a:  [        U R                  R                  [        R                   " SS9-  5      U l        g g )N   )max_codepoint)set_categories_whitelist_chars_blacklist_chars_negatere
IGNORECASE_ignorecasechrcode_to_charr   	_alphabetASCIIr   r:   r   query)rE   rM   rB   r<   s       r   rF   CharactersBuilder.__init__   s    5 # # 2==0*842882((7==s+KKDN r   c                    U R                   U R                  -
  nU Vs1 s H  n[        U5      S:  d  M  UiM     nn[        R                  " U R
                  U R                  X-
  S9nU R                  (       a(  [        R                  " 5       U-
  nUR                  5         [        X@R                  R                  -  5      U(       a!  [        R                  " [        U5      5      -  $ [        R                  " 5       -  $ s  snf )>Returns resulting strategy that generates configured char set.   )r
   exclude_charactersinclude_characters)rS   rT   lenr   r]   rR   rU   r0   r   r[   r:   stsampled_fromsortednothing)rE   white_charsr6   multi_charsr:   s        r   r$   CharactersBuilder.strategy   s     ++d.C.CC"-<+QQ!q+<MM''#44*8
	 <<)3I$Y1I1I%IJ4?BOOF;/0
 	
EGZZ\
 	
 =s
   DDc                 @   U[         R                  :X  a  U =R                  [        -  sl        gU[         R                  :X  a!  U =R                  [
        [        -
  -  sl        gU[         R                  :X  a3  U =R                  [        -  sl        U =R                  [        -  sl        gU[         R                  :X  a:  U =R                  [
        [        -
  -  sl        U =R                  [        -  sl        gU[         R                  :X  a5  U =R                  [        -  sl        U R                  R                  S5        gU[         R                  :X  a<  U =R                  [
        [        -
  -  sl        U R                  R                  S5        g[!        SU 35      e)z<Update unicode state to match sre_parse object ``category``._zUnknown character category: N)sreCATEGORY_DIGITrR   UNICODE_DIGIT_CATEGORIESCATEGORY_NOT_DIGITUNICODE_CATEGORIESCATEGORY_SPACEUNICODE_SPACE_CATEGORIESrS   UNICODE_SPACE_CHARSCATEGORY_NOT_SPACErT   CATEGORY_WORDUNICODE_WORD_CATEGORIESaddCATEGORY_NOT_WORDNotImplementedErrorrE   categorys     r   add_categoryCharactersBuilder.add_category   s3   s))) 88/// 25M MM+++ 88!!%88!/// 25M MM!!%88!*** 77!!%%c*... 25L LL!!%%c*%(DXJ&OPPr   c                 @   U R                   R                  U5        U R                  (       ar  [        R                  " [        R
                  " U5      UR                  5       [        R                  S9b*  U R                   R                  UR                  5       5        ggg)z Add given char to the whitelist.rD   N)rS   ry   rX   rV   matchescapeswapcaserW   )rE   r6   s     r   add_charCharactersBuilder.add_char   sk    !!!$1qzz|2==IU !!%%ajjl3 V r   )r[   rT   rR   rX   rU   rS   rZ   N)r   r   r   r   __doc__rF   propertyr$   r~   r   r   r   r   r   rJ   rJ   w   s2     "'a  
 
&Q*4r   rJ   c                   :    \ rS rSrSSS.S jr\S 5       rS rSrg	)
BytesBuilder   Fr   rL   c                    [        5       U l        [        5       U l        Xl        S U l        U[
        R                  -  U l        [        U l	        g r    )
rQ   rS   rT   rU   r[   rV   rW   rX   r   rZ   )rE   rM   rB   s      r   rF   BytesBuilder.__init__   s;     # # 2==0'r   c                     U R                   nU R                  (       a	  [        U-
  n[        R                  " [        U5      5      $ )r`   )rS   rU   	BYTES_ALLre   rf   rg   )rE   alloweds     r   r$   BytesBuilder.strategy   s3     ''<<')Gvg//r   c                 <    U =R                   [        U   -  sl         g)z?Update characters state to match sre_parse object ``category``.N)rS   BYTES_LOOKUPr|   s     r   r~   BytesBuilder.add_category   s    h!77r   )r[   rT   rX   rU   rS   rZ   N)	r   r   r   r   rF   r   r$   r~   r   r   r   r   r   r      s%    !&a ( 0 08r   r   c                     U " U5      nU " U5      nU(       a  UR                  Xe-   5      (       a  Xe-   nU " U5      nU(       a  UR                  XW-   5      (       a  XW-  nU$ )zWAttempt to insert padding around the result of a regex draw while
preserving the match.)search)r"   regexr$   left_pad_strategyright_pad_strategyr&   left_pad	right_pads           r   	maybe_padr      s`     (^F%&HELL!233"'(IU\\&"455Mr   c                 *   Uc)  [         R                  " U R                  U R                  S9n [	        U[        U R                  S9[        U R                  [        5      US9n[        U5      $ ! [         a  n[        USU< SU < 35        e S nAff = f)NrD   )context
is_unicoder<   z	alphabet=z regex=)	sre_parseparsepatternrB   	_strategyr@   
isinstancestr	Exceptionr   r2   )r   parsedr<   serrs        r   base_regex_strategyr      s    ~ekkB	%++.!%--5	
 "!$$  8UH-.s   5A. .
B8BBF)$_temp_jsonschema_hack_no_end_newlinec                f   [        U S5      (       d  [        R                  " U 5      n [        U R                  [
        5      n[        R                  " U R                  U R                  S9nU(       aO  U(       d#  [        R                  " U(       a  S5      $ S5      $ [        XU5      R                  U R                  5      $ U(       d0  U(       a  [        R                  " US9$ [        R                  " 5       $ U(       aA  [        R                  " US9n[        R                  " S5      n[        R                  " S5      nOA[        R                  " 5       n[        R                  " S5      n[        R                  " S5      nUn	Un
US   S	   [         R"                  :X  a  US   S
   [         R$                  :X  a  Un	OUS   S
   [         R&                  :X  a|  U R                  [        R(                  -  (       a;  [        R*                  " U[        R,                  " [.        R0                  X5      5      n	O[        R*                  " Xx5      n	U(       a  Un	US	   S	   [         R"                  :X  a  US	   S
   [         R2                  :X  a  Un
OyUS	   S
   [         R4                  :X  a_  U R                  [        R(                  -  (       a;  [        R*                  " U[        R,                  " [.        R0                  X5      5      n
OUn
[        XU5      R                  U R6                  5      n[9        XX5      $ )Nr   rD    r   r<   
   
r   ra   )hasattrrV   compiler   r   r   r   r   rB   re   justr   filter	fullmatchtextbinaryrn   ATAT_END_STRINGAT_END	MULTILINEone_ofbuildsoperatorry   AT_BEGINNING_STRINGAT_BEGINNINGr   r   )r   r   r<   r   r   r   base_padding_strategyemptynewliner   r   bases               r   regex_strategyr      s/    5)$$

5!EMM3/J__U]]%++>F7725555"5(;BB5??SS77H--99; " :''$- "		''%.%I$Hbz!}":a=C---IBZ]cjj({{R\\)II299X\\7F	 IIe5	 4!	ay|svv!9Q<3222HAYq\S---{{R\\)99UBIIhllH,VW uh7>>u||LDU(66r   c                  ^^^^ ^! UUU4S jnT(       a	  Sn[         m!OSn[        m![        R                  " SSS9n[	        U [
        5      (       Gd  / nSnU[        U 5      :  Ga>  X   S   [        R                  :X  a  TR                  [        R                  -  (       d  US-   n	U	[        U 5      :  aH  X	   S   [        R                  :X  a/  U	S-  n	U	[        U 5      :  a  X	   S   [        R                  :X  a  M/  US-   U	:  an  UR                  U!4S jXU	  5       5      n
[        TU
5      =n(       a  [        SU
< S	U< S
35      eUR                  [        R                   " U
5      5        U	nGM  UR                  U" X   5      5        US-  nU[        U 5      :  a  GM>  U(       d  [        R                   " U5      $ [        U5      S:X  a  US   $ [        R"                  " U6 R%                  UR                  5      $ U u  pU[        R                  :X  Ga  T!" U5      n[        TU5      (       a  [        SU< S35      eTR                  [        R                  -  (       a  XR'                  5       :w  a  [        R(                  " [        R*                  " U5      UR'                  5       [        R                  5      bD  [        TUR'                  5       5      (       d%  [        R,                  " XR'                  5       /5      $ [        R                   " U5      $ U[        R.                  :X  Ga9  T!" U5      nU1m TR                  [        R                  -  (       a  [        R(                  " [        R*                  " U5      UR'                  5       [        R                  5      bt  UR'                  5       /nU(       a\  UR1                  5        H?  nT R3                  U5        UR5                  [7        UR'                  5       5      T -
  5        MA     U(       a  M\  T(       a3  [9        [;        T5      R<                  [>        R@                  " T S9-  5      $ WRC                  U 4S j5      $ U[        RD                  :X  Ga  US   S   [        RF                  :H  nT(       a  [I        TR                  UTS9nO[K        TR                  US9nU GH  u  nnU[        RF                  :X  a  M  U[        R                  :X  aO  URM                  U5      n[        URN                  U5      (       a  [        SU< S35      eURQ                  U5        M  U[        RR                  :X  a  Uu  nnUR                  [%        URL                  [U        UUS-   5      5      5      n
[        U
5      [        [7        [        TU
5      5      =n5      :X  a(  [        S[        U5       S[        U5       SU< S
35      eU
 H;  n[	        U[V        5      (       a  [        U5      nX;  d  M*  URQ                  U5        M=     GMd  U[        RX                  :X  a  UR[                  U5        GM  []        SU 35      e   UR^                  $ U[        R`                  :X  a  T(       a\  Tc   eTR                  [        Rb                  -  (       a  T$ [9        [;        T5      R<                  [>        R@                  " SS9-  5      $ TR                  [        Rb                  -  (       a  W$ WRC                  S 5      $ U[        Rd                  :X  a  [        R                   " U5      $ U[        Rf                  :X  a[  TR                  nTR                  US   -  US   ) -  Tl	        [i        US   TTTS9nUTl	        US   (       a  [k        US   U5      nU$ U[        Rl                  :X  a  [o        U5      $ U[        Rp                  :X  a  U" US   5      $ U[        Rr                  :X  a  [        R                   " U5      $ U[        Rt                  :X  af  / n/ nUS    H  n UR                  U" U5      5        M     U(       a!  U(       d  [        SR                  U5      5      e[        Rx                  " U5      $ U[        Rz                  [        R|                  [~        4;   a|  Uu  nnnU[        R                  :X  a  SnUS:X  a%  US:X  a  [        R                   " U5      U" U5      -  $ [        R                  " U" U5      UUS9R%                  UR                  5      $ U[        R                  :X  aF  [        US   U" US   5      US   (       a  U" US   5      5      $ [        R                   " U5      5      $ U[        :X  a  [i        UTTTS9$ []        SU< S35      e! [         a&  nUR                  [w        U5      5         SnAGM  SnAff = f)a:  Convert SRE regex parse tree to strategy that generates strings matching
that regex represented by that parse tree.

`codes` is either a list of SRE regex elements representations or a
particular element representation. Each element is a tuple of element code
(as string) and parameters. E.g. regex 'ab[0-9]+' compiles to following
elements:

    [
        (LITERAL, 97),
        (LITERAL, 98),
        (MAX_REPEAT, (1, 4294967295, [
            (IN, [
                (RANGE, (48, 57))
            ])
        ]))
    ]

The function recursively traverses regex element tree and converts each
element to strategy that generates strings that match that element.

Context stores
1. List of groups (for backreferences)
2. Active regex flags (e.g. IGNORECASE, DOTALL, UNICODE, they affect
   behavior of various inner strategies)
c                    > [        U TTTS9$ )Nr   )r   )codesr<   r   r   s    r   recurse_strategy.<locals>.recurseT  s    hGGr   r   r   ra   )min_sizemax_sizer   c              3   8   >#    U  H  u  pT" U5      v   M     g 7fr    r   )r5   rm   charcodeto_chars      r   r8   _strategy.<locals>.<genexpr>m  s     &WJ[Qwx'8'8Js   zLiteral z contains characters z( which are not in the specified alphabetz! is not in the specified alphabetN)rb   c                    > U T;  $ r    r   )r6   	blacklists    r   <lambda>_strategy.<locals>.<lambda>  s
    AY4Fr   )rB   rM   r<   )rB   rM   z
Charset '[-z]' contains characters zUnknown charset code: r   c                     U S:g  $ )Nr   r   )r6   s    r   r   r     s    AJr      r   r   zUnknown code point: z.  Please open an issue.)ErY   r   re   r   r   r;   rd   rn   LITERALrB   rV   rW   joinr>   r   appendr   tuplesmapr   r   r   rf   NOT_LITERALpopry   extendrQ   r   r   r:   r   r]   r   INNEGATErJ   r   rZ   r[   r   RANGErangeintCATEGORYr~   r{   r$   ANYDOTALLr   
SUBPATTERNr   r'   GROUPREFr*   ASSERT
ASSERT_NOTBRANCHr   r   
MIN_REPEAT
MAX_REPEATPOSSESSIVE_REPEAT	MAXREPEATlistsGROUPREF_EXISTSr.   ATOMIC_GROUP)"r   r   r   r<   r   r   binary_charr   ijcharsinvalidcodevaluer6   stackcharrM   buildercharset_codecharset_valuelowhigh	old_flagsstratbrancheserrorsbrancheat_leastat_mostsubregexr   r   s"    ```                            @@r   r   r   8  s3   8H iiQ7eU##
#e*nx{ckk)'--"--2O E#e*n!)CFA #e*n!)C q519!JJ&WETUJ&WWE"7%"HHwH6&ui/DWK PF G  %%bggen5Ageh/0FA) #e*n0 775>!z?aa= yy*%))%**55 3;;A$Xq11.qe#DE  -%HHRYYq\1::<GS-h

EE ::<'899771:S__$AI-HHRYYq\1::<GS  %		!d+S%9I%EF !, e
 ,%h/99mmyAB 
 #))*FGGSVV^1Xa[CJJ.F+!-- 'W]]6J/4+m3::- !S[[0,,];A,W->->BB6&qe+LM  $$Q'!SYY. -IC!JJs7+?+?sDSTHAU'VWE5zS#&'<Xu'M#NN&  7(S
!CI;>UV]U` aF G  #%a-- +AA+#,,Q/	 #
 "S\\1((7 .0F|n.UVVG 05H ###SWW_+++==299,#O,%h/99mmt<= 
 ==299,&&"))*>??SVV^ 775>!S^^#I$]]U1X5%(BGMeBi*xPE%GMQx$U1Xu5LS\\!u%%SZZ58$$S^^#775>!SZZHF(*OOGFO4 #
 h.tyy/@AA99X&&cnncnn6GHH +0'Hgx#--'1}Awwu~(99988GH-7SWW

  S((( %aa!%*1Xa!  46775> 
 \!UGZ(KK
 &&th.FG A 0 *MM#a&))*s    f>>
g.g))g.)NN)Hr   rV   hypothesis.errorsr   hypothesis.internalr   $hypothesis.strategies._internal.lazyr   'hypothesis.strategies._internal.stringsr   re._constants
_constantsrn   
re._parser_parserr   r   r   ImportErrorsre_constantsobject
hypothesisr   r   re   hypothesis.internal.charmapr	   r
   hypothesis.internal.compatr   r   rQ   rr   SPACE_CHARSru   rp   rt   UNICODE_LETTER_CATEGORIESrx   r   r   r   BYTES_DIGITBYTES_SPACE
BYTES_WORDro   rs   rw   rq   rv   rz   r   sharedr   dictr   SearchStrategy__annotations__r   	compositer'   r*   r.   r2   r>   r@   rJ   r   r   r   r   r   )r   bs   00r   <module>r$     s    	 - ' B I!"##L-- 0 I <&  - !C(>$??  6 4cU;<  5se <= 3S#J?@  &+3Z0Z[^Z0	#;)Qrxx':q);#;)Qrxx':q);":Abhhvq&9a:
zI3I39z1 13		IIdO71 b''- 
	 	        7 H4 H4V8$ 8, 
 
%" IN?7DH  !8L!, 1;;:s;   $I0 :JJ2J?JJ+J"
J"0JJ