Ë
    iKêj¼  ã                   ó  — U d Z ddlZddlZddlZddlZddlmZmZmZ ddl	m
Z
mZmZ ddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddl m!Z! ddl"m#Z# erddl$m%Z% dgZ& ed«      Z'g d¢Z(e)e*   e+d<   ee G d„ de
«      «       «       Z,dddddœZ- e)e-«      e,D � cg c]  } | j\                  ‘Œ c} k(  sJ ‚e G d„ de
«      «       Z/ G d„ de«      Z0e G d„ de
e0¬«      «       Z1 G d „ d!ejd                  «      Z3ddd"dd"d"d"dd"dddd#œZ4d$e5fd%„Z6 e#ed      d«      Z7d&e*d'e'd(ee8   d$e'fd)„Z9d*ed'e8d&e*d$efd+„Z:d,e;d$e;fd-„Z<d.ed/   d$ed/   fd0„Z=d1ee/   d$e>e/d2f   fd3„Z?d4e;d$e;fd5„Z@d6e8d$e>e1d2f   fd7„ZAd8e;eBz  ejd                  z  dz  d$e3dz  fd9„ZCd:e*d$e*fd;„ZD G d<„ d=eE«      ZF G d>„ deF¬«      ZGej�                  d?eGd$eeGddf   fd@„«       ZI eGdAdBee,j”                   e>e/«      dCdDdE e3dF¬G«      dBdH¬«      ZKeGj™                  dIeK«       eGj›                  dI«       eGj–                  €J ‚ eGdDdddDe1jœ                  g¬J«      ZOeGj™                  dKeO«        e6«       reGj›                  dK«       eGj–                  €J ‚ ePe(«       ej¢                  eGj¤                  «      j¦                  j©                  «       D �ch c]1  }|jª                  ej¬                  j®                  k(  r|j\                  ’Œ3 c}k(  sJ ‚yc c} w c c}w )Lz¥The settings module configures runtime options for Hypothesis.

Either an explicit settings object can be used or the default object on
this module can be modified.
é    N)Ú
CollectionÚ	GeneratorÚSequence)ÚEnumÚEnumMetaÚunique)Útotal_ordering)ÚTYPE_CHECKINGÚAnyÚClassVarÚOptionalÚTypeVar©ÚInvalidArgument)ÚAVAILABLE_PROVIDERS)Úget_pretty_function_description)Ú
check_typeÚtry_convert)Únot_set)Únote_deprecation)ÚDynamicVariable©ÚExampleDatabaseÚsettingsÚT©Úmax_examplesÚderandomizeÚdatabaseÚ	verbosityÚphasesÚstateful_step_countÚreport_multiple_bugsÚsuppress_health_checkÚdeadlineÚ
print_blobÚbackendÚall_settingsc                   óš   ‡ — e Zd ZdZdZ	 dZ	 dZ	 dZ	 ed„ «       Z	de
fd„Zed	d defd
„«       Zdedefˆ fd„Zdedefd„Zdedefd„Zˆ xZS )Ú	Verbosityz=Options for the |settings.verbosity| argument to |@settings|.ÚquietÚnormalÚverboseÚdebugc                 ó¢   — t        |t        «      r?t        |t        «      s/dddddœ}||v r$t        d|› d||   › d�d	d
d¬«        | ||   «      S y )Nr+   r,   r-   r.   )r   é   é   é   zPassing Verbosity(zn) as an integer is deprecated. Hypothesis now treats Verbosity values as strings, not integers. Use Verbosity.ú	 instead.ú
2025-11-05Fr1   ©ÚsinceÚhas_codemodÚ
stacklevel©Ú
isinstanceÚintÚboolr   ©ÚclsÚvalueÚint_to_names      úY/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/_settings.pyÚ	_missing_zVerbosity._missing_a   st   € ô �eœSÔ!¬*°U¼DÔ*AØ%¨(°yÀWÑMˆKØ˜Ñ#Ü Ø(¨¨ð 0%à%0°Ñ%7Ð$8¸	ðCð 'Ø %Ø õñ ˜; uÑ-Ó.Ð.Øó    Úreturnc                 ó    — d| j                   › �S )Nz
Verbosity.©Úname©Úselfs    rA   Ú__repr__zVerbosity.__repr__r   s   € Ø˜DŸI™I˜;Ð'Ð'rC   r?   c                 ó(   — t         | j                     S ©N)Ú_VERBOSITY_INT_VALUESrG   )r?   s    rA   Ú
_int_valuezVerbosity._int_valueu   s   € ä$ U§Z¡ZÑ0Ð0rC   Úotherc                 ór   •— t        |t        «      rt        ‰| �  |«      S t        j	                  | «      |k(  S rL   )r:   r*   ÚsuperÚ__eq__rN   )rI   rO   Ú	__class__s     €rA   rR   zVerbosity.__eq__y   s2   ø€ Ü�eœYÔ'Ü‘7‘> %Ó(Ð(Ü×#Ñ# DÓ)¨UÑ2Ð2rC   c                 ó„   — t         j                  | «      }t        |t         «      rt         j                  |«      n|}||kD  S rL   ©r*   rN   r:   ©rI   rO   Úvalue1Úvalue2s       rA   Ú__gt__zVerbosity.__gt__~   s8   € Ü×%Ñ% dÓ+ˆÜ0:¸5Ä)Ô0L”×%Ñ% eÔ,ÐRWˆØ˜‰ÐrC   c                 ó„   — t         j                  | «      }t        |t         «      rt         j                  |«      n|}||k\  S rL   rU   rV   s       rA   Ú__ge__zVerbosity.__ge__ƒ   s9   € Ü×%Ñ% dÓ+ˆÜ0:¸5Ä)Ô0L”×%Ñ% eÔ,ÐRWˆØ˜ÑÐrC   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r+   r,   r-   r.   ÚclassmethodrB   ÚstrrJ   Ústaticmethodr;   rN   r   r<   rR   rY   r[   Ú__classcell__©rS   s   @rA   r*   r*   ?   s²   ø„ ñ Hà€Eðð €Fðð
 €Gð	ð €Eðð
 ñó ðð (˜#ó (ð ð1˜+ð 1¨#ò 1ó ð1ð3˜Cð 3 Dõ 3ð
˜Cð  Dó ð
 ˜Cð   D÷  rC   r*   r0   r1   r2   )r+   r,   r-   r.   c                   óP   — e Zd ZdZdZ	 dZ	 dZ	 dZ	 dZ	 dZ		 e
d„ «       Zd	efd
„Zy)ÚPhasez:Options for the |settings.phases| argument to |@settings|.ÚexplicitÚreuseÚgenerateÚtargetÚshrinkÚexplainc                 ó¦   — t        |t        «      rAt        |t        «      s1dddddddœ}||v r$t        d|› d	||   › d
�ddd¬«        | ||   «      S y )Nrg   rh   ri   rj   rk   rl   )r   r0   r1   r2   é   é   zPassing Phase(zf) as an integer is deprecated. Hypothesis now treats Phase values as strings, not integers. Use Phase.r3   r4   Fr1   r5   r9   r=   s      rA   rB   zPhase._missing_´   s€   € ô �eœSÔ!¬*°U¼DÔ*AàØØØØØñˆKð ˜Ñ#Ü Ø$ U Gð ,!à!,¨UÑ!3Ð 4°Ið?ð 'Ø %Ø õñ ˜; uÑ-Ó.Ð.ØrC   rD   c                 ó    — d| j                   › �S )NzPhase.rF   rH   s    rA   rJ   zPhase.__repr__Ì   s   € Ø˜Ÿ	™	�{Ð#Ð#rC   N)r\   r]   r^   r_   rg   rh   ri   rj   rk   rl   r`   rB   ra   rJ   © rC   rA   rf   rf   �   sk   „ áDà€Hðð €Eðð €Hðð €Fðð €Fðð €Gðð ñó ðð.$˜#ô $rC   rf   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚHealthCheckMetac                 ó†   •‡— t         j                  t         j                  fŠt        ˆfd„t        ‰| �  «       D «       «      S )Nc              3   ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wrL   rq   )Ú.0ÚxÚ
deprecateds     €rA   ú	<genexpr>z+HealthCheckMeta.__iter__.<locals>.<genexpr>Ó   s   øè ø€ ÒI˜!°Q¸jÒ5H”AÑIùó   ƒ	�)ÚHealthCheckÚreturn_valueÚnot_a_test_methodÚiterrQ   Ú__iter__)rI   rx   rS   s    @€rA   r   zHealthCheckMeta.__iter__Ñ   s2   ù€ Ü!×.Ñ.´×0MÑ0MÐNˆ
ÜÓIœu™wÑ/Ó1ÔIÓIÐIrC   )r\   r]   r^   r   rc   rd   s   @rA   rs   rs   Ð   s   ø„ ÷Jð JrC   rs   c                   ó|   — e Zd ZdZed„ «       Zdefd„Zeded    fd„«       Z	dZ
	 dZ	 dZ	 d	Z	 d
Z	 dZ	 dZ	 dZ	 dZy)r{   a|  
    A |HealthCheck| is proactively raised by Hypothesis when Hypothesis detects
    that your test has performance problems, which may result in less rigorous
    testing than you expect. For example, if your test takes a long time to generate
    inputs, or filters away too many  inputs using |assume| or |filter|, Hypothesis
    will raise a corresponding health check.

    A health check is a proactive warning, not an error. We encourage suppressing
    health checks where you have evaluated they will not pose a problem, or where
    you have evaluated that fixing the underlying issue is not worthwhile.

    With the exception of |HealthCheck.function_scoped_fixture| and
    |HealthCheck.differing_executors|, all health checks warn about performance
    problems, not correctness errors.

    Disabling health checks
    -----------------------

    Health checks can be disabled by |settings.suppress_health_check|. To suppress
    all health checks, you can pass ``suppress_health_check=list(HealthCheck)``.

    .. seealso::

        See also the :doc:`/how-to/suppress-healthchecks` how-to.

    Correctness health checks
    -------------------------

    Some health checks report potential correctness errors, rather than performance
    problems.

    * |HealthCheck.function_scoped_fixture| indicates that a function-scoped
      pytest fixture is used by an |@given| test. Many Hypothesis users expect
      function-scoped fixtures to reset once per input, but they actually reset once
      per test. We proactively raise |HealthCheck.function_scoped_fixture| to
      ensure you have considered this case.
    * |HealthCheck.differing_executors| indicates that the same |@given| test has
      been executed multiple times with multiple distinct executors.

    We recommend treating these particular health checks with more care, as
    suppressing them may result in an unsound test.
    c           
      ó¬   — t        |t        «      rDt        |t        «      s4ddddddddd	d
œ	}||v r$t        d|› d||   › d�ddd¬«        | ||   «      S y )NÚdata_too_largeÚfilter_too_muchÚtoo_slowr|   Úlarge_base_exampler}   Úfunction_scoped_fixtureÚdiffering_executorsÚnested_given)	r0   r1   r2   ro   é   é   é	   é
   é   zPassing HealthCheck(zr) as an integer is deprecated. Hypothesis now treats HealthCheck values as strings, not integers. Use HealthCheck.r3   r4   Fr1   r5   r9   r=   s      rA   rB   zHealthCheck._missing_  sŠ   € ô �eœSÔ!¬*°U¼DÔ*Aà#Ø$ØØ!Ø'Ø&Ø,Ø)Ø"ñ
ˆKð ˜Ñ#Ü Ø*¨5¨'ð 2'à'2°5Ñ'9Ð&:¸)ðEð 'Ø %Ø õñ ˜; uÑ-Ó.Ð.ØrC   rD   c                 óL   — | j                   j                  › d| j                  › �S )Nú.)rS   r\   rG   rH   s    rA   rJ   zHealthCheck.__repr__  s"   € Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I¨;Ð7Ð7rC   c                 ó>   — t        dddd¬«       t        t        «      S )NzC`HealthCheck.all()` is deprecated; use `list(HealthCheck)` instead.z
2023-04-16Tr0   r5   )r   Úlistr{   ©r>   s    rA   ÚallzHealthCheck.all!  s%   € ô 	ØQØØØõ		
ô ”KÓ Ð rC   r‚   rƒ   r„   r|   r…   r}   r†   r‡   rˆ   N)r\   r]   r^   r_   r`   rB   ra   rJ   r‘   r“   r‚   rƒ   r„   r|   r…   r}   r†   r‡   rˆ   rq   rC   rA   r{   r{   Ö   s¶   „ ñ)ðV ñó ðð48˜#ó 8ð ð!�D˜Ñ'ò !ó ð!ð &€Nðð (€Oðð €Hðð "€LØIà-Ððð ,ÐðSð 8ÐðJð" 0Ðð	%ð "€LðrC   r{   )Ú	metaclassc                   ó   — e Zd ZdZdefd„Zy)Údurationz2A timedelta specifically measured in milliseconds.rD   c                 ól   — | j                  «       dz  }d|t        |«      k(  rt        |«      ›d�S |›d�S )Niè  ztimedelta(milliseconds=ú))Útotal_secondsr;   )rI   Úmss     rA   rJ   zduration.__repr__ƒ  s@   € Ø×ÑÓ! DÑ(ˆØ(°B¼#¸b»'²M¬¨R«Ð(LÈAÐNÐNÀrÐ(LÈAÐNÐNrC   N)r\   r]   r^   r_   ra   rJ   rq   rC   rA   r–   r–   €  s   „ Ù<ðO˜#ô OrC   r–   Útrue)ÚCIÚ&__TOX_ENVIRONMENT_VARIABLE_ORIGINAL_CIÚTF_BUILDzbamboo.buildKeyÚ	BUILDKITEÚCIRCLECIÚ	CIRRUS_CIÚCODEBUILD_BUILD_IDÚGITHUB_ACTIONSÚ	GITLAB_CIÚHEROKU_TEST_RUN_IDÚTEAMCITY_VERSIONrD   c                  óJ   — t        d„ t        j                  «       D «       «      S )Nc              3   ó‚   K  — | ]7  \  }}|t         j                  v xr |d u xs t         j                  |   |k(  –— Œ9 y ­wrL   )ÚosÚenviron)rv   Úkeyr?   s      rA   ry   zis_in_ci.<locals>.<genexpr>œ  sC   è ø€ ò áˆC�ð 	Œr�z‰zÐÒI˜u¨˜}ÒH´·
±
¸3±À5Ñ0HÓIñùs   ‚=?)ÚanyÚ_CI_VARSÚitemsrq   rC   rA   Úis_in_cir¯   ›  s#   € Üñ ä"Ÿ.™.Ó*ôó ð rC   rG   r?   Úchoicesc                ó:   — ||vrd| › d|›d|›�}t        |«      ‚|S )NzInvalid ú, z. Valid choices: r   )rG   r?   r°   Úmsgs       rA   Ú_validate_choicesr´   ¥  s3   € Ø�GÑØ˜˜˜b  	Ð):¸7¸+ÐFˆÜ˜cÓ"Ð"Ø€LrC   r>   c                ó‚   — 	  | |«      S # t         $ r+ t        |› d|› ddj                  d„ | D «       «      › �«      d ‚w xY w)Nú=z( is not a valid value. The options are: r²   c              3   óF   K  — | ]  }t        |j                  «      –— Œ y ­wrL   )ÚreprrG   )rv   Úms     rA   ry   z'_validate_enum_value.<locals>.<genexpr>²  s   è ø€ Ò8¨qœd 1§6¡6ŸlÑ8ùs   ‚!)Ú
ValueErrorr   Újoin)r>   r?   rG   s      rA   Ú_validate_enum_valuer¼   ¬  s\   € ðÙ�5‹zÐøÜò ÜØˆf�A�e�Wð Ø—I‘IÑ8°CÔ8Ó8Ð9ð;ó
ð ð	ðús   ‚
 Š4>r   c                 óR   — t        t        | d¬«       | dk  rt        d| ›d�«      ‚| S )Nr   rF   r0   zmax_examples=zg must be at least one. If you want to disable generation entirely, use phases=[Phase.explicit] instead.©r   r;   r   )r   s    rA   Ú_validate_max_examplesr¿   ¶  s?   € ÜŒs�L ~Õ6Ø�aÒÜØ˜LÐ+ð ,Sð Só
ð 	
ð ÐrC   r   r   c                 óD   — ddl m} | �t        | |«      r| S t        d«      ‚)Nr   r   zˆArguments to the database setting must be None or an instance of ExampleDatabase. Use one of the database classes in hypothesis.database)Úhypothesis.databaser   r:   r   )r   r   s     rA   Ú_validate_databaserÂ   À  s-   € õ 4àÐœ: h°Ô@ØˆÜ
ð	óð rC   r!   .c                 óŒ   ‡ — t        t        ‰ d«      Š t        d„ ‰ D «       «      Š t        ˆ fd„t        t        «      D «       «      S )Nr!   c              3   ó@   K  — | ]  }t        t        |d ¬«      –— Œ y­w)r!   rF   N)r¼   rf   )rv   Úphases     rA   ry   z#_validate_phases.<locals>.<genexpr>Ð  s"   è ø€ ò Ø>CÔœU E°×9Ð9ñùó   ‚c              3   ó,   •K  — | ]  }|‰v sŒ|–— Œ y ­wrL   rq   )rv   rÅ   r!   s     €rA   ry   z#_validate_phases.<locals>.<genexpr>Ô  s   øè ø€ ÒC˜5°5¸F²?”ÑCùrz   )r   Útupler‘   rf   )r!   s   `rA   Ú_validate_phasesrÉ   Î  s?   ø€ Üœ ¨Ó1€FÜñ ØGMôó €Fô ÓC¤D¬£KÔCÓCÐCrC   r"   c                 óR   — t        t        | d¬«       | dk  rt        d| ›d�«      ‚| S )Nr"   rF   r0   zstateful_step_count=z must be at least one.r¾   )r"   s    rA   Ú_validate_stateful_step_countrË   ×  s<   € ÜŒsÐ'Ð.CÕDØ˜QÒÜØ"Ð#6Ð"9Ð9OÐPó
ð 	
ð ÐrC   Úsuppressionsc                 óÖ   — t        t        | d«      }|D ]B  }|t        j                  t        j                  fv sŒ&t        d|j                  › d�ddd¬«       ŒD t        d„ |D «       «      S )	Nr$   zThe z= health check is deprecated, because this is always an error.z
2023-03-15Fr1   r5   c              3   ó@   K  — | ]  }t        t        |d ¬«      –— Œ y­w)r$   rF   N)r¼   r{   )rv   Úhealth_checks     rA   ry   z2_validate_suppress_health_check.<locals>.<genexpr>ê  s%   è ø€ ò àô 	œ[¨,Ð=T×UÐUñùrÆ   )r   rÈ   r{   r|   r}   r   rG   )rÌ   Ú	convertedrÏ   s      rA   Ú_validate_suppress_health_checkrÑ   à  sz   € ÜœE <Ð1HÓI€IØ!ò ˆØœK×4Ñ4´k×6SÑ6SÐTÒTÜØ�|×(Ñ(Ð)Ð)fÐgØ"Ø!Øö	ðô ñ à%ôó ð rC   r%   c                 ó²  — | €| S t        d| ›dt        | «      j                  › d�«      }t        | t        t
        f«      rt        | t        «      r|‚	 t        | ¬«      } t        | t        j                  «      rA| t        j                  d«      k  rt        d| ›d�«      ‚t        | j                  «       ¬«      S |‚# t        $ r t        d| ›d�«      d ‚w xY w)	Nz	deadline=z (type zx) must be a timedelta object, an integer or float number of milliseconds, or None to disable the per-test-case deadline.©Úmillisecondszi is invalid, because it is too large to represent as a timedelta. Use deadline=None to disable deadlines.r   zf is invalid, because it is impossible to meet a deadline <= 0. Use deadline=None to disable deadlines.)Úseconds)r   Útyper\   r:   r;   Úfloatr<   r–   ÚOverflowErrorÚdatetimeÚ	timedeltar™   )r%   Úinvalid_deadline_errors     rA   Ú_validate_deadlinerÜ   ð  s  € ð ÐØˆÜ,Ø
�H�<˜w¤t¨H£~×'>Ñ'>Ð&?ð @"ð 	"óÐô
 �(œS¤%˜LÔ)Ü�h¤Ô%Ø(Ð(ð	Ü¨XÔ6ˆHô �(œH×.Ñ.Ô/Ø”x×)Ñ)¨!Ó,Ò,Ü!Ø˜H˜<ð (Ið Ióð ô  × 6Ñ 6Ó 8Ô9Ð9Ø
 Ð øô ò 	Ü!Ø˜H˜<ð (Jð Jóð ðð	ús   ÁB< Â<Cr'   c                 ó‚   — | t         vr6| dk(  rd}t        d| ›d|› �«      ‚t        d| ›dt        t         «      ›�«      ‚| S )NÚ	crosshairz4`pip install "hypothesis[crosshair]"` and try again.zbackend=z is not available.  zP is not available - maybe you need to install a plugin?
    Installed backends: )r   r   Úsorted)r'   Úinstalls     rA   Ú_validate_backendrá     sc   € ØÔ)Ñ)Ø�kÒ!ØLˆGÜ! H¨W¨KÐ7KÈGÈ9Ð"UÓVÐVÜØ�w�kð ")Ü)/Ô0CÓ)DÐ(GðIó
ð 	
ð €NrC   c                   óX   ‡ — e Zd Zˆ fd„Zeded   fd„«       Zdededdfˆ fd„Z	d	„ Z
ˆ xZS )
ÚsettingsMetac                 ó$   •— t        ‰| �  |i |¤Ž y rL   )rQ   Ú__init__)r>   ÚargsÚkwargsrS   s      €rA   rå   zsettingsMeta.__init__  s   ø€ Ü‰Ñ˜$Ð) &Ó)rC   rD   r   c                 óú   — t         j                  }|�|S t        t        dd «      �Gt        j                  €J ‚t        j                  t        j                  «       t         j                  €J ‚t         j                  S )NÚ_current_profile)Údefault_variabler?   Úgetattrr   ré   Úload_profile)r>   Úvs     rA   ÚdefaultzsettingsMeta.default  sk   € ä×"Ñ"ˆØˆ=ØˆHÜ”8Ð/°Ó6ÐBÜ×,Ñ,Ð8Ð8Ð8Ü×!Ñ!¤(×";Ñ";Ô<Ü#×)Ñ)Ð5Ð5Ð5Ü×%Ñ%Ð%rC   rG   r?   Nc                 óŒ   •— |dk(  rt        d«      ‚|j                  d«      st        d|› d|›d�«      ‚t        ‰| �  ||«       y )Nrî   z^Cannot assign to the property settings.default - consider using settings.load_profile instead.Ú_z"Cannot assign hypothesis.settings.r¶   z  - the settings class is immutable.  You can change the global default settings with settings.load_profile, or use @settings(...) to decorate your test instead.)ÚAttributeErrorÚ
startswithrQ   Ú__setattr__)r>   rG   r?   rS   s      €rA   ró   zsettingsMeta.__setattr__)  sb   ø€ Ø�9ÒÜ ð@óð ð —‘ Ô%Ü Ø4°T°F¸!¸E¸9ð E1ð 1óð ô 	‰Ñ˜D %Õ(rC   c                  ó   — y)Nzhypothesis.settingsrq   r’   s    rA   rJ   zsettingsMeta.__repr__8  s   € Ø$rC   )r\   r]   r^   rå   Úpropertyr   rî   ra   Úobjectró   rJ   rc   rd   s   @rA   rã   rã     sG   ø„ ô*ð ð&˜ Ñ,ò &ó ð&ð)˜sð )¨6ð )°dõ )ö%rC   rã   c                   ó´  ‡ — e Zd ZU dZi Zeeed f      ed<   dZ	eedz     ed<   	 d/e
e
e
e
e
e
e
e
e
e
e
dœded    deded	ed
   ddded   dededed   deez  ej"                  z  dz  dededdfd„Zedefd„«       Zedefd„«       Zed0d„«       Zedefd„«       Zedee   fd„«       Zedefd„«       Zedefd„«       Zedee   fd„«       Zedej"                  dz  fd „«       Zedefd!„«       Z edefd"„«       Z!d#e"de"fd$„Z#d%ed&e$ddfˆ fd'„Z%defd(„Z&defd)„Z'e(	 d/d%eded    d*e)ddfd+„«       Z*e(d%edd fd,„«       Z+e(d%eddfd-„«       Z,e(defd.„«       Z-ˆ xZ.S )1r   a  
    A settings object controls the following aspects of test behavior:
    |~settings.max_examples|, |~settings.derandomize|, |~settings.database|,
    |~settings.verbosity|, |~settings.phases|, |~settings.stateful_step_count|,
    |~settings.report_multiple_bugs|, |~settings.suppress_health_check|,
    |~settings.deadline|, |~settings.print_blob|, and |~settings.backend|.

    A settings object can be applied as a decorator to a test function, in which
    case that test function will use those settings. A test may only have one
    settings object applied to it. A settings object can also be passed to
    |settings.register_profile| or as a parent to another |settings|.

    Attribute inheritance
    ---------------------

    Settings objects are immutable once created. When a settings object is created,
    it uses the value specified for each attribute. Any attribute which is
    not specified will inherit from its value in the ``parent`` settings object.
    If ``parent`` is not passed, any attributes which are not specified will inherit
    from the current settings profile instead.

    For instance, ``settings(max_examples=10)`` will have a ``max_examples`` of ``10``,
    and the value of all other attributes will be equal to its value in the
    current settings profile.

    Changes made from activating a new settings profile with |settings.load_profile|
    will be reflected in settings objects created after the profile was loaded,
    but not in existing settings objects.

    .. _builtin-profiles:

    Built-in profiles
    -----------------

    While you can register additional profiles with |settings.register_profile|,
    Hypothesis comes with two built-in profiles: ``default`` and ``ci``.

    By default, the ``default`` profile is active. If the ``CI`` environment
    variable is set to any value, the ``ci`` profile is active by default. Hypothesis
    also automatically detects various vendor-specific CI environment variables.

    The attributes of the currently active settings profile can be retrieved with
    ``settings()`` (so ``settings().max_examples`` is the currently active default
    for |settings.max_examples|).

    The settings attributes for the built-in profiles are as follows:

    .. code-block:: python

        default = settings.register_profile(
            "default",
            max_examples=100,
            derandomize=False,
            database=not_set,  # see settings.database for default behavior
            verbosity=Verbosity.normal,
            phases=tuple(Phase),
            stateful_step_count=50,
            report_multiple_bugs=True,
            suppress_health_check=(),
            deadline=duration(milliseconds=200),
            print_blob=False,
            backend="hypothesis",
        )

        ci = settings.register_profile(
            "ci",
            parent=default,
            derandomize=True,
            deadline=None,
            database=None,
            print_blob=True,
            suppress_health_check=[HealthCheck.too_slow],
        )

    You can replace either of the built-in profiles with |settings.register_profile|:

    .. code-block:: python

        # run more examples in CI
        settings.register_profile(
            "ci",
            settings.get_profile("ci"),
            max_examples=1000,
        )
    Ú	_profilesNré   r   Úparentr   r   r   r   r    r*   r!   rf   r"   r#   r$   r{   r%   r&   r'   rD   c                óÈ  — d| _         |�t        t        |d«       |t        dfvr|t        d fvrt	        d|›d�«      ‚d }|xs t        j
                  | _        |t        u r| j                  j                  n
t        |«      | _	        |t        u r| j                  j                  nt        d|ddg¬«      | _        |t        urt        |«      }|| _        d | _        |t        u r| j                  j                   nt#        t$        |d¬	«      | _        |t        u r| j                  j(                  n
t+        |«      | _        |t        u r| j                  j.                  n
t1        |«      | _        |t        u r| j                  j4                  nt        d
|ddg¬«      | _        |	t        u r| j                  j8                  n
t;        |	«      | _        |
t        u r| j                  j>                  n
tA        |
«      | _!        |t        u r| j                  jD                  nt        d|ddg¬«      | _#        |t        u r| j                  jH                  n
tK        |«      | _&        d| _         y )NTrù   Fz<derandomize=True implies database=None, so passing database=z too is invalid.r   )r°   r    rF   r#   r&   )'Ú_in_definitionr   r   r   r   rî   Ú	_fallbackr   r¿   Ú_max_examplesr   r´   Ú_derandomizerÂ   Ú	_databaseÚ_cached_databaser    r¼   r*   Ú
_verbosityr!   rÉ   Ú_phasesr"   rË   Ú_stateful_step_countr#   Ú_report_multiple_bugsr$   rÑ   Ú_suppress_health_checkr%   rÜ   Ú	_deadliner&   Ú_print_blobr'   rá   Ú_backend)rI   rù   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   s                rA   rå   zsettings.__init__–  sV  € ð( #ˆÔàÐÜ”x ¨Ô2Øœw¨Ð.Ñ.Ø¤¨˜Ñ.Ü%ð!Ø�kÐ!1ð3óð ð ˆHð  Ò3¤8×#3Ñ#3ˆŒð œwÑ&ð �N‰N×'Ò'ä'¨Ó5ð 	Ôð œgÑ%ð �N‰N×&Ò&ä" =°+ÈÈeÀ}ÔUð 	Ôð
 œ7Ñ"Ü)¨(Ó3ˆHØ&ˆŒØ8<ˆÔð œGÑ#ð �N‰N×$Ò$ä%¤i°ÀÔMð 	Œð œÑ ð �N‰N×!Ò!ä! &Ó)ð 	Œð #¤gÑ-ð �N‰N×.Ò.ä.Ð/BÓCð 	Ô!ð $¤wÑ.ð �N‰N×/Ò/ä"Ø&Ð(<ÀtÈUÀmôð 	Ô"ð %¬Ñ/ð �N‰N×0Ò0ä0Ð1FÓGð 	Ô#ð œ7Ñ"ð �N‰N×#Ò#ä# HÓ-ð 	Œð œWÑ$ð �N‰N×%Ò%ä" <°ÀdÈEÀ]ÔSð 	Ôð œ'Ñ!ð �N‰N×"Ò"ä" 7Ó+ð 	Œð $ˆÕrC   c                 ó   — | j                   S )aj  
        Once this many satisfying |test cases| have been considered without finding
        any failing test case, Hypothesis will stop looking.

        .. note::

            Historically, Hypothesis referred to test cases as "examples", including in
            this setting name. We now refer to them as test cases throughout our
            documentation and codebase.

            This setting is an exception: to avoid ecosystem churn, this setting will
            continue to be called ``max_examples``. Conceptually, it is better thought of
            as "max test cases".

        Note that we might call your test function fewer times if we find a bug early
        or can tell that we've exhausted the search space; or more if we discard some
        test cases due to use of .filter(), assume(), or a few other things that can
        prevent the test case from completing successfully.

        The default value is chosen to suit a workflow where the test will be part of
        a suite that is regularly executed locally or on a CI server, balancing total
        running time against the chance of missing a bug.

        If you are writing one-off tests, running tens of thousands of test cases is
        quite reasonable as Hypothesis may miss uncommon bugs with default settings.
        For very complex code, we have observed Hypothesis finding novel bugs after
        *several million* test cases while testing :pypi:`SymPy <sympy>`.
        If you are running more than 100k test cases for a test, consider using our
        :ref:`integration for coverage-guided fuzzing <fuzz_one_input>` - it really
        shines when given minutes or hours to run.

        The default max examples is ``100``.

        .. note::

            See :doc:`../explanation/test-case-count` for details on how |max_examples|
            interacts with other parts of Hypothesis.
        )rý   rH   s    rA   r   zsettings.max_examplesô  s   € ðP ×!Ñ!Ð!rC   c                 ó   — | j                   S )ar  
        If True, seed Hypothesis' random number generator using a hash of the test
        function, so that every run will test the same set of test cases until you
        update Hypothesis, Python, or the test function.

        This allows you to `check for regressions and look for bugs
        <https://blog.nelhage.com/post/two-kinds-of-testing/>`__ using separate
        settings profiles - for example running
        quick deterministic tests on every commit, and a longer non-deterministic
        nightly testing run.

        The default is ``False``. If running on CI, the default is ``True`` instead.
        )rþ   rH   s    rA   r   zsettings.derandomize  s   € ð × Ñ Ð rC   c                 ó  — ddl m} | j                  € | j                  t        u sJ ‚ |t        «      S | j
                  €9| j                  t        u r| j                  j                  n| j                  | _        | j
                  S )a•  
        An instance of |ExampleDatabase| in which we will save failing |test cases|,
        and from which we will load previous failing test cases.

        If not set, a |DirectoryBasedExampleDatabase| is created in the current
        working directory under ``.hypothesis/examples``. If this location is
        unusable, e.g. due to the lack of read or write permissions, Hypothesis
        will emit a warning and fall back to an |InMemoryExampleDatabase|.

        If ``None``, no storage will be used.

        See the :ref:`database documentation <database>` for a list of database
        classes, and how to define custom database classes.
        r   )Ú_db_for_path)rÁ   r  rü   rÿ   r   r   r   )rI   r  s     rA   r   zsettings.database/  st   € õ  	5ð �>‰>Ð!ð —>‘>¤WÑ,Ð,Ð,Ù¤Ó(Ð(ð × Ñ Ð(à+/¯>©>¼WÑ+D�—‘×'Ò'È$Ï.É.ð Ô!ð ×$Ñ$Ð$rC   c                 ó   — | j                   S )a®  
        Control the verbosity level of Hypothesis messages.

        To see what's going on while Hypothesis runs your tests, you can turn
        up the verbosity setting.

        .. code-block:: pycon

            >>> from hypothesis import settings, Verbosity
            >>> from hypothesis.strategies import lists, integers
            >>> @given(lists(integers()))
            ... @settings(verbosity=Verbosity.verbose)
            ... def f(x):
            ...     assert not any(x)
            ... f()
            Test case: []
            Failing test case:  [-1198601713, -67, 116, -29578]
            Shrunk test case to [-1198601713]
            Shrunk test case to [-128]
            Shrunk test case to [32]
            Shrunk test case to [1]
            [1]

        The four levels are |Verbosity.quiet|, |Verbosity.normal|,
        |Verbosity.verbose|, and |Verbosity.debug|. |Verbosity.normal| is the
        default. For |Verbosity.quiet|, Hypothesis will not print anything out,
        not even the |minimal failing test case|. |Verbosity.debug| is basically
        |Verbosity.verbose| but a bit more so. You probably don't want it.

        Verbosity can be passed either as a |Verbosity| enum value, or as the
        corresponding string value, or as the corresponding integer value. For
        example:

        .. code-block:: python

            # these three are equivalent
            settings(verbosity=Verbosity.verbose)
            settings(verbosity="verbose")

        If you are using :pypi:`pytest`, you may also need to :doc:`disable
        output capturing for passing tests <pytest:how-to/capture-stdout-stderr>`
        to see verbose output as tests run.
        )r  rH   s    rA   r    zsettings.verbosityU  s   € ðZ �‰ÐrC   c                 ó   — | j                   S )a.
  
        Control which phases should be run.

        Hypothesis divides tests into logically distinct phases.

        - |Phase.explicit|: Running |explicit examples| from |@example|.
        - |Phase.reuse|: Running |test cases| from the database which previously failed.
        - |Phase.generate|: Generating new random test cases.
        - |Phase.target|: Mutating test cases for :ref:`targeted property-based
          testing <targeted>`. Requires |Phase.generate|.
        - |Phase.shrink|: Shrinking |failing test cases|.
        - |Phase.explain|: Attempting to explain why a failure occurred.
          Requires |Phase.shrink|.

        The phases argument accepts a collection with any subset of these. E.g.
        ``settings(phases=[Phase.generate, Phase.shrink])`` will generate new test cases
        and shrink them, but will not run explicit examples or reuse previous failures,
        while ``settings(phases=[Phase.explicit])`` will only run explicit examples
        from |@example|.

        Phases can be passed either as a |Phase| enum value, or as the corresponding
        string value. For example:

        .. code-block:: python

            # these two are equivalent
            settings(phases=[Phase.explicit])
            settings(phases=["explicit"])

        Following the first failure, Hypothesis will (usually, depending on
        which |Phase| is enabled) track which lines of code are always run on
        failing but never on passing inputs. On 3.12+, this uses
        :mod:`sys.monitoring`, while 3.11 and earlier uses :func:`python:sys.settrace`.
        For python 3.11 and earlier, we therefore automatically disable the explain
        phase on PyPy, or if you are using :pypi:`coverage` or a debugger. If
        there are no clearly suspicious lines of code, :pep:`we refuse the
        temptation to guess <20>`.

        After shrinking to a minimal failing test case, Hypothesis will try to find
        parts of the test case -- e.g. separate args to |@given|
        -- which can vary freely without changing the result
        of that minimal failing test case. If the automated experiments run without
        finding a passing variation, we leave a comment in the final report:

        .. code-block:: python

            test_x_divided_by_y(
                x=0,  # or any other generated value
                y=0,
            )

        Just remember that the *lack* of an explanation sometimes just means that
        Hypothesis couldn't efficiently find one, not that no explanation (or
        simpler failing test case) exists.
        )r  rH   s    rA   r!   zsettings.phases„  s   € ðt �|‰|ÐrC   c                 ó   — | j                   S )a|  
        The maximum number of times to call an additional |@rule| method in
        :ref:`stateful testing <stateful>` before we give up on finding a bug.

        Note that this setting is effectively multiplicative with max_examples,
        as each test case will run for a maximum of ``stateful_step_count`` steps.

        The default stateful step count is ``50``.
        )r  rH   s    rA   r"   zsettings.stateful_step_countÀ  s   € ð ×(Ñ(Ð(rC   c                 ó   — | j                   S )a�  
        Because Hypothesis runs the test many times, it can sometimes find multiple
        bugs in a single run.  Reporting all of them at once is usually very useful,
        but replacing the exceptions can occasionally clash with debuggers.
        If disabled, only the exception with the smallest
        |minimal failing test case| is raised.

        The default value is ``True``.
        )r  rH   s    rA   r#   zsettings.report_multiple_bugsÍ  s   € ð ×)Ñ)Ð)rC   c                 ó   — | j                   S )a¢  
        Suppress the given |HealthCheck| exceptions. Those health checks will not
        be raised by Hypothesis. To suppress all health checks, you can pass
        ``suppress_health_check=list(HealthCheck)``.

        Health checks can be passed either as a |HealthCheck| enum value, or as
        the corresponding string value. For example:

        .. code-block:: python

            # these two are equivalent
            settings(suppress_health_check=[HealthCheck.filter_too_much])
            settings(suppress_health_check=["filter_too_much"])

        Health checks are proactive warnings, not correctness errors, so we
        encourage suppressing health checks where you have evaluated they will
        not pose a problem, or where you have evaluated that fixing the underlying
        issue is not worthwhile.

        .. seealso::

            See also the :doc:`/how-to/suppress-healthchecks` how-to.
        )r  rH   s    rA   r$   zsettings.suppress_health_checkÚ  s   € ð2 ×*Ñ*Ð*rC   c                 ó   — | j                   S )a»  
        The maximum allowed duration of an individual |test case|, in milliseconds.
        You can pass an integer, float, or timedelta. If ``None``, the deadline
        is disabled entirely.

        We treat the deadline as a soft limit in some cases, where that would
        avoid flakiness due to timing variability.

        The default deadline is 200 milliseconds. If running on CI, the default is
        ``None`` instead.
        )r  rH   s    rA   r%   zsettings.deadlineõ  s   € ð �~‰~ÐrC   c                 ó   — | j                   S )a  
        If set to ``True``, Hypothesis will print code for |failing test cases| that
        can be used with |@reproduce_failure| to reproduce the failing test case.

        The default value is ``False``. If running on CI, the default is ``True`` instead.
        )r  rH   s    rA   r&   zsettings.print_blob  s   € ð ×ÑÐrC   c                 ó   — | j                   S )a"  
        .. warning::

            EXPERIMENTAL AND UNSTABLE - see :ref:`alternative-backends`.

        The importable name of a backend which Hypothesis should use to generate
        primitive types. We support heuristic-random, solver-based, and fuzzing-based
        backends.
        )r  rH   s    rA   r'   zsettings.backend  s   € ð �}‰}ÐrC   Útestc                 óš  — |}t        |«      st        d|›d�«      ‚t        j                  |«      rWddlm} t        ||«      r:d}t        ||d«      rt        d«      ‚t        ||d«       | |j                  _
        |S t        d	«      ‚t        |d«      r(t        |«      }t        |› d
|j                  ›d| ›�«      ‚| |_        d|_        |S )z”Make the settings object (self) an attribute of the test.

        The settings are later discovered by looking them up on the test itself.
        zNsettings objects can be called as a decorator with @given, but decorated test=z is not callable.r   )ÚRuleBasedStateMachineÚ%_hypothesis_internal_settings_appliedFzhApplying the @settings decorator twice would overwrite the first version; merge their arguments instead.Tzg@settings(...) can only be used as a decorator on functions, or on subclasses of RuleBasedStateMachine.zC has already been decorated with a settings object.
    Previous:  z
    This:  )Úcallabler   ÚinspectÚisclassÚhypothesis.statefulr  Ú
issubclassrë   ÚsetattrÚTestCaser   Úhasattrr   Ú!_hypothesis_internal_use_settingsr  )rI   r  Ú_testr  Ú	attr_nameÚdescrs         rA   Ú__call__zsettings.__call__  s  € ð ˆä˜Œ~Ü!ð'Ø!% Ð'8ð:óð ô �?‰?˜4Ô ÝAä˜%Ð!6Ô7ØC�	Ü˜4 ¨EÔ2Ü)ð#óð ô
 ˜˜i¨Ô.Ø*.�—‘Ô'Ø�ä%ðLóð ô �5ÐAÔBô 4°DÓ9ˆEÜ!Ø�'ð "Ø"'×"IÑ"IÐ!Lð MØ"˜Xð'óð ð 37ˆÔ/Ø6:ˆÔ3ØˆrC   rG   r?   c                 ót   •— |j                  d«      s| j                  st        d«      ‚t        ‰| �  ||«      S )Nrð   zsettings objects are immutable)rò   rû   rñ   rQ   ró   )rI   rG   r?   rS   s      €rA   ró   zsettings.__setattr__J  s5   ø€ Ø�‰˜sÔ#¨D×,?Ò,?Ü Ð!AÓBÐBÜ‰wÑ" 4¨Ó/Ð/rC   c                 ót   ‡ — t        ˆ fd„t        D «       «      }dj                  dj                  |«      «      S )Nc              3   ón   •K  — | ],  }|d k7  st        t        «      dkD  r|› dt        ‰|«      ›�–— Œ. y­w)r'   r0   r¶   N)Úlenr   rë   )rv   rG   rI   s     €rA   ry   z$settings.__repr__.<locals>.<genexpr>P  sA   øè ø€ ò 
àØ˜	Ò!¤SÔ)<Ó%=ÀÒ%Að ˆf�A”g˜d DÓ)Ð,Ô-ñ
ùs   ƒ25zsettings({})r²   )rß   r(   Úformatr»   )rI   Úbitss   ` rA   rJ   zsettings.__repr__O  s5   ø€ Üó 
ä$ô
ó 
ˆð
 ×$Ñ$ T§Y¡Y¨t£_Ó5Ð5rC   c                 óÈ   — g }t         D ]8  }t        | |«      }|t        t        |«      k7  sŒ#|j                  |› d|›�«       Œ: dj	                  t        |t        ¬«      «      S )Nr¶   r²   )r«   )r(   rë   rî   Úappendr»   rß   r)  )rI   r+  rG   r?   s       rA   Úshow_changedzsettings.show_changedW  s`   € ØˆÜ ò 	1ˆDÜ˜D $Ó'ˆEØœ¤¨Ó.Ó.Ø—‘˜t˜f A e YÐ/Õ0ð	1ð �y‰yœ ¬#Ô.Ó/Ð/rC   rç   c                 ó€  — t        t        | d«       t        j                  rPt        j
                  r@t        j                  t        j                  t        j
                     k7  rt        ddd¬«       |�|s|nt	        dd|i|¤Žt        j                  | <   t        j
                  | k(  rt        j                  | «       yy)	aP  
        Register a settings object as a settings profile, under the name ``name``.
        The ``parent`` and ``kwargs`` arguments to this method are as for
        |settings|.

        If a settings profile already exists under ``name``, it will be overwritten.
        Registering a profile with the same name as the currently active profile
        will cause those changes to take effect in the active profile immediately,
        and do not require reloading the profile.

        Registered settings profiles can be retrieved later by name with
        |settings.get_profile|.
        rG   z°Cannot register a settings profile when the current settings differ from the current profile (usually due to an @settings decorator). Register profiles at module level instead.z
2025-11-15F)r6   r7   Nrù   rq   )	r   ra   rê   r?   r   ré   rø   r   rì   )rG   rù   rç   s      rA   Úregister_profilezsettings.register_profile_  sª   € ô& 	”3˜˜fÔ%ô ×"Ò"Ü×)Ò)Ü ×&Ñ&¬(×*<Ñ*<¼X×=VÑ=VÑ*WÒWäð=ð #Ø!õð Ð!©&ñ äÑ2 Ð2¨6Ñ2ô 	×Ñ˜4Ñ ô
 ×$Ñ$¨Ò,Ü×!Ñ! $Õ'ð -rC   c                 ó†   — t        t        | d«       	 t        j                  |    S # t        $ r t        d| ›d�«      d‚w xY w)z 
        Returns the settings profile registered under ``name``. If no settings
        profile is registered under ``name``, raises |InvalidArgument|.
        rG   zProfile z is not registeredN)r   ra   r   rø   ÚKeyErrorr   rF   s    rA   Úget_profilezsettings.get_profile�  sO   € ô 	”3˜˜fÔ%ð	SÜ×%Ñ% dÑ+Ð+øÜò 	SÜ! H¨T¨HÐ4FÐ"GÓHÈdÐRð	Sús	   “& ¦A c                 óx   — t        t        | d«       | t        _        t        j	                  | «      t
        _        y)z²
        Makes the settings profile registered under ``name`` the active profile.

        If no settings profile is registered under ``name``, raises |InvalidArgument|.
        rG   N)r   ra   r   ré   r3  rê   r?   rF   s    rA   rì   zsettings.load_profile™  s,   € ô 	”3˜˜fÔ%Ø$(ŒÔ!Ü!)×!5Ñ!5°dÓ!;ÔÕrC   c                  óF   — t         j                  €J ‚t         j                  S )zè
        The name of the current settings profile. For example:

        .. code-block:: python

            >>> settings.load_profile("myprofile")
            >>> settings.get_current_profile_name()
            'myprofile'
        )r   ré   rq   rC   rA   Úget_current_profile_namez!settings.get_current_profile_name¤  s"   € ô ×(Ñ(Ð4Ð4Ð4Ü×(Ñ(Ð(rC   rL   )rD   zExampleDatabase | None)/r\   r]   r^   r_   rø   r   Údictra   Ú__annotations__ré   r   r   r;   r<   r   r×   rÙ   rÚ   rå   rõ   r   r   r   r*   r    rf   r!   r"   r#   r{   r$   r%   r&   r'   r   r%  rö   ró   rJ   r.  rb   r   r0  r3  rì   r6  rc   rd   s   @rA   r   r   <  sJ  ø… ñTðl 24€Iˆx˜˜S *˜_Ñ-Ñ.Ó3Ø-1Ð�h˜s T™zÑ*Ó1ð (,ð\$ð $Ø#Ø07Ø!(Ø&-Ø#*Ø%,Ø;BØ<CØ"Øò%\$à˜Ñ$ð\$ð ð\$ð ð\$ð Ð,Ñ-ð\$ð ð\$ð ˜7Ñ#ð\$ð !ð\$ð #ð\$ð  *¨-Ñ8ð\$ð  ˜‘+ × 2Ñ 2Ñ2°TÑ9ð!\$ð" ð#\$ð$ ð%\$ð& 
ó'\$ð| ð'"˜cò '"ó ð'"ðR ð!˜Tò !ó ð!ð  ò#%ó ð#%ðJ ð,˜9ò ,ó ð,ð\ ð9˜
 5Ñ)ò 9ó ð9ðv ð
) Sò 
)ó ð
)ð ð
* dò 
*ó ð
*ð ð+ z°+Ñ'>ò +ó ð+ð4 ð˜(×,Ñ,¨tÑ3ò ó ðð ð ˜Dò  ó ð ð ð
˜ò 
ó ð
ð-˜Qð - 1ó -ð^0 ð 0¨Fð 0°tõ 0ð
6˜#ó 6ð0˜có 0ð ð (,ñ+(Øð+(à˜Ñ$ð+(ð ð+(ð 
ò	+(ó ð+(ðZ ð	S˜#ð 	S *ò 	Só ð	Sð ð<˜3ð < 4ò <ó ð<ð ð) cò )ó ô)rC   Úsc              #   óh   K  — t         j                  | «      5  | –— d d d «       y # 1 sw Y   y xY w­wrL   )rê   Ú
with_value)r9  s    rA   Úlocal_settingsr<  ³  s-   è ø€ ä	×	$Ñ	$ QÓ	'ñ ØŠ÷÷ ñ üs   ‚2˜&�	2¦/«2éd   Fé2   Trq   éÈ   rÓ   Ú
hypothesisrî   )r   r%   r   r&   r$   Úci)Xr_   Ú
contextlibrÙ   r  r©   Úcollections.abcr   r   r   Úenumr   r   r   Ú	functoolsr	   Útypingr
   r   r   r   r   Úhypothesis.errorsr   Ú(hypothesis.internal.conjecture.providersr   Úhypothesis.internal.reflectionr   Úhypothesis.internal.validationr   r   Úhypothesis.utils.conventionsr   Úhypothesis.utils.deprecationr   Ú!hypothesis.utils.dynamicvariablesr   rÁ   r   Ú__all__r   r(   r‘   ra   r8  r*   rM   rG   rf   rs   r{   rÚ   r–   r­   r<   r¯   rê   rö   r´   r¼   r;   r¿   rÂ   rÈ   rÉ   rË   rÑ   r×   rÜ   rá   rÖ   rã   r   Úcontextmanagerr<  r,   rî   r0  rì   r„   rœ   ÚsetÚ	signaturerå   Ú
parametersÚvaluesÚkindÚ	ParameterÚKEYWORD_ONLY)r    Úps   00rA   ú<module>rX     s"  ðòó Û Û Û 	ß ;Ñ ;ß 'Ñ 'Ý $÷õ õõ IÝ Jß BÝ 0Ý 9Ý =áÝ3àˆ,€áˆCƒL€ò€ˆd�3‰ió ð ØôE �ó E ó ó ðE ðR #$¨q¸QÈÑKÐ áÐ!Ó"ÀyÖ&Q¸) y§~£~Ò&QÒQÐ QÐQð ô=$ˆDó =$ó ð=$ô@J�hô Jð ôf�$ /ô fó ðfôROˆx×!Ñ!ô Oð à.2ØØØØØØØØØØñ€ð"�$ó ð 9�? 8¨JÑ#7Ñ8¸Ó>Ð ð˜Cð ¨ð °xÀÑ7Gð ÈAó ð˜cð ¨&ð ¸3ð À3ó ð¨ð °ó ðØÐ(Ñ)ðàÐÑ óðD˜Z¨Ñ.ð D°5¸À¸Ñ3Dó Dð°sð ¸só ð°&ð ¸UÀ;ÐPSÐCSÑ=Tó ð !Ø�E‰k˜H×.Ñ.Ñ.°Ñ5ð!à��_ó!ð<	˜sð 	 só 	ô%�4ô %ôDt	)˜õ t	)ðn ×Ñð�hð  9¨X°t¸TÐ-AÑ#Bò ó ðñ
 ØØØØ×ÑÙ�‹<ØØØÙ 3Ô'ØØô€ð 	× Ñ ˜) WÔ -Ø × Ñ �iÔ  à×ÑÐ#Ð #Ð#áØØØØØ&×/Ñ/Ð0ô€ð 	× Ñ ˜$ Ô #ñ „:Ø×Ñ˜$Ôà×ÑÐ#Ð #Ð#ñ ˆ<ÓàˆW×Ñ˜x×0Ñ0Ó1×<Ñ<×CÑCÓEöà	Ø‡v�v�×"Ñ"×/Ñ/Ò/ð ‡FƒFòò ð ñ ùòg" 'Rùòf"s   Â.LË6L