§
    §éUgð  ã                   óP   — d Z ddlmZ ddlmZ ddlZ G d„ d¦  «        Zd„ Zd„ ZdS )	az  global_random_seed fixture

The goal of this fixture is to prevent tests that use it to be sensitive
to a specific seed value while still being deterministic by default.

See the documentation for the SKLEARN_TESTS_GLOBAL_RANDOM_SEED
variable for insrtuctions on how to use this fixture.

https://scikit-learn.org/dev/computing/parallelism.html#sklearn-tests-global-random-seed
é    )Úenviron)ÚRandomNc                   ó   — e Zd Zdd„ZdS )Ú
XDistHooksÚreturnNc                 óN   — |j                              d¦  «        }||j        d<   d S )NÚrandom_seeds)ÚconfigÚ	getoptionÚworkerinput)ÚselfÚnoder	   s      úX/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/tests/random_seed.pyÚpytest_configure_nodez XDistHooks.pytest_configure_node   s*   € Ø”{×,Ò,¨^Ñ<Ô<ˆØ+7ˆÔ˜Ñ(Ð(Ð(ó    )r   N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s(   € € € € € ð8ð 8ð 8ð 8ð 8ð 8r   r   c                 ó^  ‡— | j                              d¦  «        r&| j                              t          ¦   «         ¦  «         t	          t          d¦  «        ¦  «        }t          j        d¦  «        }t          | d¦  «        rd| j	        v r| j	        d         Šn×|€dgŠnÑ|dk    r#t          ¦   «                              |¦  «        gŠn¨|dk    r|ŠnŸd	|v rS|                     d	¦  «        \  }}t	          t          t          |¦  «        t          |¦  «        d
z   ¦  «        ¦  «        Šnt          |¦  «        gŠt          ‰¦  «        dk     st          ‰¦  «        dk    rt!          d|› �¦  «        ‚‰| j        _         G ˆfd„d¦  «        }| j                               |¦   «         ¦  «         d S )NÚxdistéd   Ú SKLEARN_TESTS_GLOBAL_RANDOM_SEEDr   r	   é*   ÚanyÚallú-é   r   éc   z�The value(s) of the environment variable SKLEARN_TESTS_GLOBAL_RANDOM_SEED must be in the range [0, 99] (or 'any' or 'all'), got: c                   óD   •— e Zd Z ej        ” ¬¦  «        d„ ¦   «         ZdS )ú0pytest_configure.<locals>.GlobalRandomSeedPlugin)Úparamsc              3   ó   K  — |j         V — dS )aÙ  Fixture to ask for a random yet controllable random seed.

            All tests that use this fixture accept the contract that they should
            deterministically pass for any seed value from 0 to 99 included.

            See the documentation for the SKLEARN_TESTS_GLOBAL_RANDOM_SEED
            variable for insrtuctions on how to use this fixture.

            https://scikit-learn.org/dev/computing/parallelism.html#sklearn-tests-global-random-seed
            N)Úparam)r   Úrequests     r   Úglobal_random_seedzCpytest_configure.<locals>.GlobalRandomSeedPlugin.global_random_seed:   s   è è € ð ”-ÐÐÐÐÐr   N)r   r   r   ÚpytestÚfixturer&   )r	   s   €r   ÚGlobalRandomSeedPluginr!   9   s>   ø€ € € € € Ø	ˆŒ˜|Ð	,Ñ	,Ô	,ð	 ð 	 ñ 
-Ô	,ð	 ð 	 ð 	 r   r)   )ÚpluginmanagerÚ	haspluginÚregisterr   ÚlistÚranger   ÚgetÚhasattrr   r   ÚchoiceÚsplitÚintÚminÚmaxÚ
ValueErrorÚoptionr	   )r
   ÚRANDOM_SEED_RANGEÚrandom_seed_varÚstartÚstopr)   r	   s         @r   Úpytest_configurer<      sÛ  ø€ ØÔ×%Ò% gÑ.Ô.ð 4ØÔ×%Ò%¥j¡l¤lÑ3Ô3Ð3å�U 3™ZœZÑ(Ô(ÐÝ”kÐ"DÑEÔE€OÝˆv�}Ñ%Ô%ð ¨.¸FÔ<NÐ*NÐ*NàÔ)¨.Ô9ˆˆØ	Ð	 à�tˆˆØ	˜EÒ	!Ð	!å™œŸšÐ(9Ñ:Ô:Ð;ˆˆØ	˜EÒ	!Ð	!Ø(ˆˆà�/Ð!Ð!Ø)×/Ò/°Ñ4Ô4‰KˆE�4Ý¥¥c¨%¡j¤jµ#°d±)´)¸a±-Ñ @Ô @ÑAÔAˆLˆLå Ñ0Ô0Ð1ˆLåˆ|ÑÔ˜qÒ Ð ¥C¨Ñ$5Ô$5¸Ò$:Ð$:Ýð?à-<ð?ð ?ñô ð ð
 ".€F„MÔð ð  ð  ð  ð  ð  ð  ñ  ô  ð  ð Ô×!Ò!Ð"8Ð"8Ñ":Ô":Ñ;Ô;Ð;Ð;Ð;r   c                 ól   — t          j        d¦  «        }|dk    rdd| j        j        d         › d�dgS d S )Nr   r   zCTo reproduce this test run, set the following environment variable:z&    SKLEARN_TESTS_GLOBAL_RANDOM_SEED="r   ú"z]See: https://scikit-learn.org/dev/computing/parallelism.html#sklearn-tests-global-random-seed)r   r/   r7   r	   )r
   r9   s     r   Úpytest_report_headerr?   K   sP   € Ý”kÐ"DÑEÔE€OØ˜%ÒÐàQØU°V´]Ô5OÐPQÔ5RÐUÐUÐUð4ð	
ð 	
ð  Ðr   )	Ú__doc__Úosr   Úrandomr   r'   r   r<   r?   r   r   r   ú<module>rC      s�   ðð	ð 	ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€ð8ð 8ð 8ð 8ð 8ñ 8ô 8ð 8ð/<ð /<ð /<ðd

ð 

ð 

ð 

ð 

r   