
    h9                     :   % S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	J
r
JrJrJrJr  SSKJr  SSKrSSKrSSKrSSKJr   SSKrS\S\4S jr\R6                  " \R8                  \R:                  " 5       R=                  \5      5        \R6                  " \R>                  \R@                  " S	RB                  \RD                  " S
SS9\R:                  " 5       R=                  \5      5      5        \R6                  " \RH                  \RJ                  " \&" \'" \5      5       V s/ s H0  o RQ                  S5      (       a  M  \" \RH                  SU  35      PM2     sn 5      5        SRS                  \RT                  RV                  \RT                  RX                  \RT                  RZ                  \RT                  R\                  \RT                  R^                  \RT                  R`                  45      Rc                  \RT                  Rd                  S5      Rc                  \RT                  Rf                  S5      Rc                  \RT                  Rh                  S5      r5\R6                  " \RT                  Rl                  \Rn                  " \RJ                  " \&" \RT                  Rp                  5      5      \Rr                  " \Rt                  " SS5      \Rt                  " SS5      \Rt                  " SS5      \Rv                  " 5       \Rx                  " SS5      -  \Rx                  " SS5      R{                  SRB                  5      -  5      \RD                  " \5SS95      5        S\S\4S jr>Sr?\R6                  " \R                  \RD                  " SRS                  \?5      SS9R{                  \>5      5        \R6                  " \R                  \R                  " SS95        \R6                  " \R                  \R                  " SS95        \R6                  " \R                  \R                  " SS95        \R6                  " \R                  \R                  " SS95        \R6                  " \R                  \R                  " 5       R{                  \R                  5      5        \R6                  " \R                  \R                  " 5       R{                  \R                  5      5        \R6                  " \R                  \R                  " 5       5        \R6                  " \R                  \R                  " \R                  5      \R                  " \R                  5      -  5        \R6                  " \R                  \R                  " \R                  5      \R                  " \R                  5      -  5        \R6                  " \R                  \R                  " 5       5        \R6                  " \R                  \R                  " 5       5        \R6                  " \R                  \R                  " \R                  R                  5       \R                  " SS9-   S95        \R6                  " \R                  \R                  " \R                  R                  5       \R                  " SS9-
  S 95        0 r\\
\]\	\]/\R                  4   4   \_S!'   \S"\\R                  R                     S\\R                  R                     4S# j5       rb\S"\R                  R                  S\R                  R                  4S$ j5       rbS"\\\R                  R                     \R                  R                  4   S\\\R                  R                     \R                  R                  4   4S% jrbS"\\]\R                  R                  4   S\	\	S&\R                  4   /\	S&\R                  4   4   4S' jrd\d" \R                  5      S( 5       rf\d" \R                  5      S) 5       rh\d" \R                  5      S* 5       rj\d" \R                  5      S+ 5       rl\d" \R                  5      S, 5       rn\d" \R                  5      S- 5       rp\d" \R                  5      S. 5       rr\s" \R                  R                  5       H  ru\b" \u5        M     \b\R                  lb        \R6                  " \R                  \f5        g! \# a     GNf = fs  sn f )/a  
Register Hypothesis strategies for Pydantic custom types.

This enables fully-automatic generation of test data for most Pydantic classes.

Note that this module has *no* runtime impact on Pydantic itself; instead it
is registered as a setuptools entry point and Hypothesis will import it if
Pydantic is installed.  See also:

https://hypothesis.readthedocs.io/en/latest/strategies.html#registering-strategies-via-setuptools-entry-points
https://hypothesis.readthedocs.io/en/latest/data.html#hypothesis.strategies.register_type_strategy
https://hypothesis.readthedocs.io/en/latest/strategies.html#interaction-with-pytest-cov
https://docs.pydantic.dev/usage/types/#pydantic-types

Note that because our motivation is to *improve user experience*, the strategies
are always sound (never generate invalid data) but sacrifice completeness for
maintainability (ie may be unable to generate some tricky but valid data).

Finally, this module makes liberal use of `# type: ignore[<code>]` pragmas.
This is because Hypothesis annotates `register_type_strategy()` with
`(T, SearchStrategy[T])`, but in most cases we register e.g. `ConstrainedInt`
to generate instances of the builtin `int` type which match the constraints.
    N)Fraction)CallableDictTypeUnioncastoverload)lenient_issubclasssreturnc                 d     [         R                  " U SS9  g! [         R                   a     gf = f)NF)check_deliverabilityT)email_validatorvalidate_emailEmailNotValidErrorr   s    P/var/www/html/env/lib/python3.13/site-packages/pydantic/v1/_hypothesis_plugin.pyis_valid_emailr   :   s2    	**15I11 		s    //z{} <{}>z"[A-Za-z0-9_]+( [A-Za-z0-9_]+){0,5}T	fullmatch_zmath.|z#(?:(\d\d?(?:\.\d+)?|100(?:\.0+)?)%)z+(?:(0(?:\.\d+)?|1(?:\.0+)?|\.\d+|\d{1,2}%))zB(?:((?:\d|\d\d|[01]\d\d|2[0-4]\d|25[0-4])(?:\.\d+)?|255(?:\.0+)?))      d   z{}%card_numberc                     S HL  n[         R                  " [        5         [        R                  R                  X-   5        X-   sS S S 5        s  $    [        S5      e! , (       d  f       Mj  = f)N
0123456789Unreachable)
contextlibsuppress	ExceptionpydanticPaymentCardNumbervalidate_luhn_check_digitAssertionError)r   digits     r   add_luhn_digitr(   z   sU      +&&@@ATU& ,+  
'' ,+s   %A
A-	)z
4[0-9]{14}z5[12345][0-9]{13}z3[47][0-9]{12}z[0-26-9][0-9]{10,17})version         days)	min_value)	max_value	RESOLVERStypc                     g N r2   s    r   _registeredr7              c                     g r4   r5   r6   s    r   r7   r7      r8   r9   c                    [         R                  R                  R                  U 5        [        R                  5        H5  u  p[        X5      (       d  M  [        R                  " X" U 5      5        U s  $    [        SU < S35      e)NzUnknown type z has no resolver to register)
r#   types_DEFINED_TYPESaddr1   items
issubclassstregister_type_strategyNotImplementedError)r2   	supertyperesolvers      r   r7   r7      sk     NN!!%%c*(0	c%%%%c8C=9J  1 cW4PQ
RRr9   .c                    ^  U 4S jnU$ )Nc                 2   > U [         ;  d   eU [         T'   U $ r4   )r1   )fr2   s    r   innerresolves.<locals>.inner   s    	!!!	#r9   r5   )r2   rI   s   ` r   resolvesrK      s    
 Lr9   c                 :    U R                   c  [        R                  " 5       O[        R                  " U R                   5      n[        U SS 5      n[        R                  " [        U[        R                  5      (       a  U R                   R                   O[         R"                  U[        R                  " 5       [        R                  " 5       [        R                  " SS5      -  [        R                  " 5       S9$ ! [         a    [        R
                  " SSS9n[        R                  " [        R                  " [        R                  " 5       [        R                  " 5       [        R                  " 5       U[        R                  " 5       5      S S9n GNUf = f)	NF)allow_infinity	allow_nanc                     [         R                  " U 5      [         R                  " [         R                  " 5       U 5      -  $ r4   )rA   listsdictionariestext)xs    r   <lambda>resolve_json.<locals>.<lambda>   s"    RXXa[2??2779a+HHr9   )baseextend
inner_typer      )ensure_asciiindent	sort_keys)rX   rA   none	from_typer"   floats	recursiveone_ofbooleansintegersrR   getattrbuildsr
   r#   	BaseModeljsondumps)clsrI   finiterX   s       r   resolve_jsonrk      s    
 ^^3	cnn9U lD1J991*h>P>PQQW[WaWa[[]wwy2;;q"--++-   
%5A2779bkkmR[[]FBGGIVH

s   AC= =BFFc                    U R                   =(       d    SnU R                  nU R                  (       d  [        R                  " XS9$ SR                  US:  a  US-
  OSU=(       d    SS:  a  US-
  OS5      nUS:  a  SU S3nOUS:X  a  S	U S
3nOUS:X  d   eSU S3n[        R                  " UR                  5       SS9$ )Nr   min_sizemax_size	{{{},{}}}    \W.\Wr   \W(.\W)?(\W(.\W)?)?Tr   )
min_length
max_lengthstrip_whitespacerA   binaryformat
from_regexencode)ri   rn   ro   repeatspatterns        r   resolve_conbytesr      s    ~~"H~~Hyy(>>   11!!Q!+1G 1}	$	Q'$'1}}7)6*==)T::r9   c                   ^  T R                   nT R                  nT R                  b  Ub   S5       eT R                  nT R                  b  Ub   S5       eT R                  n[        R
                  " XST R                  S9nT R                  b  UR                  U 4S j5      nT R                  b  UR                  U 4S j5      nU$ )NSet `gt` or `ge`, but not bothSet `lt` or `le`, but not bothF)rN   placesc                 "   > U TR                   :  $ r4   )ltdri   s    r   rT   $resolve_condecimal.<locals>.<lambda>  s    q366zr9   c                 "   > TR                   U :  $ r4   )gtr   s    r   rT   r     s    svvzr9   )geler   r   rA   decimalsdecimal_placesfilter)ri   r/   r0   r   s   `   r   resolve_condecimalr     s    II
vv B"BB FF	
vv B"BB FF	
IE#BTBTUA
vvHH)*
vvHH)*Hr9   c                 ^  ^  T R                   nT R                  nSnSnT R                  b  Ub   S5       eT R                  nSnT R                  b  Ub   S5       eT R                  nSnT R                  c  [
        R                  " XX4SS9$ Ub/  [        R                  " UT R                  -  5      nU(       a  US-   nUbF  UT R                  :  d   S5       e[        R                  " UT R                  -  5      nU(       a  US-
  n[
        R                  " X5      R                  U 4S j5      $ )	NFr   Tr   )exclude_minexclude_maxrN   r   z:Cannot build model with max value smaller than multiple ofc                 "   > U TR                   -  $ r4   multiple_ofrS   ri   s    r   rT   "resolve_confloat.<locals>.<lambda>6      1s;Nr9   )r   r   r   r   r   rA   r_   mathceilfloorrc   map)ri   r/   r0   r   r   s   `    r   resolve_confloatr     s   IIKK
vv B"BB FF	
vv B"BB FF	
yy;kpqqIIi#//9:	!AICOO+i-ii+JJy3??:;	!AI;;y,001NOOr9   c                 d  ^  T R                   nT R                  nT R                  b  Ub   S5       eT R                  S-   nT R                  b  Ub   S5       eT R                  S-
  nT R                  b  T R                  S:X  a  [
        R                  " X5      $ Ub5  [        R                  " [        U5      [        T R                  5      -  5      nUb5  [        R                  " [        U5      [        T R                  5      -  5      n[
        R                  " X5      R                  U 4S j5      $ )Nr   r   r   c                 "   > U TR                   -  $ r4   r   r   s    r   rT    resolve_conint.<locals>.<lambda>M  r   r9   )r   r   r   r   r   rA   rc   r   r   r   r   r   ri   r/   r0   s   `  r   resolve_conintr   9  s    II
vv B"BB FFQJ	
vv B"BB FFQJ	
#//Q"6{{900 IIhy1HS__4MMN	JJx	2Xcoo5NNO	;;y,001NOOr9   c                 
   U R                   b!  U R                  b   S5       eU R                   nOIU R                  b"  U R                  [        R                  " SS9-   nO[        R                  R
                  nU R                  b!  U R                  b   S5       eU R                  nOIU R                  b"  U R                  [        R                  " SS9-
  nO[        R                  R                  n[        R                  " X5      $ )Nr   r   r-   r   )r   r   datetime	timedeltadateminr   r   maxrA   datesr   s      r   resolve_condater   P  s    
vvvv~???~FF			FFX//Q77	MM%%	
vvvv~???~FF			FFX//Q77	MM%%	88I))r9   c                   ^^ U R                   =(       d    SmU R                  mU R                  c&  U R                  (       d  [        R
                  " TTS9$ U R                  bD  [        R                  " U R                  5      nU R                  (       a  UR                  S 5      nOU R                  (       a  SR                  TS:  a  TS-
  OST=(       d    SS:  a  TS-
  OS5      nTS:  a  [        R                  " SU S35      nOCTS	:X  a  [        R                  " S
U S35      nO"TS:X  d   e[        R                  " SU S35      nTS:X  a  Tc  W$ Tc  WR                  U4S j5      $ WR                  UU4S j5      $ )Nr   rm   c                 &    X R                  5       :H  $ r4   )stripr   s    r   rT    resolve_constr.<locals>.<lambda>n  s    ggir9   rp   rq   rr   rs   rt   r   ru   rv   rw   rx   c                     > T[        U 5      :*  $ r4   len)r   rn   s    r   rT   r     s    SV);r9   c                 @   > T[        U 5      s=:*  =(       a    T:*  $ s  $ r4   r   )r   ro   rn   s    r   rT   r     s    XQ%C%C8%Cr9   )	ry   rz   regexr{   rA   rR   r~   r   r}   )ri   strategyr   ro   rn   s      @@r   resolve_constrr   c  sF   ~~"H~~H
yy!5!5ww8<<
yy==+'?@H			$$$qLHqLa%]a/HqLR
 q=}}G9B%78H]}}WIT%:;Hq= =}}gYf%=>H1})		;<<??CDDr9   )w__doc__r    r   	ipaddressrg   r   	fractionsr   typingr   r   r   r   r   r	   hypothesis.strategies
strategiesrA   r#   pydantic.colorpydantic.typespydantic.v1.utilsr
   r   strboolr   rB   EmailStremailsr   	NameEmailre   r}   r~   ImportErrorPyObjectsampled_fromsortedvars
startswithjoincolorr_hex_short
r_hex_longr_rgbr_rgbar_hslr_hslareplace_r_sl_r_alpha_r_255_color_regexesColorra   COLORS_BY_NAMEtuplesrc   r]   r_   r   r(   card_patternsr$   UUID1uuidsUUID3UUID4UUID5SecretBytesr|   	SecretStrrR   IPvAnyAddressip_addressesIPvAnyInterfacer^   IPv4InterfaceIPv6InterfaceIPvAnyNetworkIPv4NetworkIPv6Network
StrictBoolrb   	StrictStr
FutureDater   r   todayr   PastDater1   typeSearchStrategy__annotations__r<   Tr7   ConstrainedNumberMetarK   JsonWrapperrk   ConstrainedBytesr   ConstrainedDecimalr   ConstrainedFloatr   ConstrainedIntr   ConstrainedDater   ConstrainedStrr   listr=   r2   Json)names   0r   <module>r     s  0       > > "    0
# $  h//1C1CN1ST
		MM>$OIIK~.	
   OO=CDJ=Ol=OTWfWfgjWk	0h5	0=Ol HHNN&&NN%%NN  NN!!NN  NN!!	
	 WX^^!!#IJWX^^$$&TUWX^^""$ij     NNII
x~~<<=>
		KK3KK3KK3GGI		!Q'"))As*;*?*?*MM		
 	n5	$( ( (   MM#((=)T:>>~N   (.."((1*= >   (.."((1*= >   (.."((1*= >   (.."((1*= >   (..		@T@T0U V   (,,bggimmH<N<N.O P   (00"//2C D   LL(()BLL9P9P,QQ   LL&&'",,y7L7L*MM   (--r{{} =   (,,bggi 8   (--rxx(--BUBUBWZbZlZlrsZtBt/u v   (++RXX@S@S@UX`XjXjpqXr@r-s t >@	4hvr'8'8899: ? 
	T(..**+ 	X^^5E5E0F 	 
	 
	X^^99 	hnn>b>b 	 
	S	tHNN$$%x~~'K'KK	LS
4  !8>>#G#GGHS	tX^^999	:xR.../0(3@Q@Q;Q2RRS 
(

  & 
(
#
#$; %;( 
(
%
%& '" 
(
#
#$P %P> 
(
!
!"P #P, 
(
"
"#* $*$ 
(
!
!"E #E@ --.C /(    (-- 6c
  		: 	ms   d (dddd