
    0Ph1                        d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZmZmZmZm Z m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(  e'ej)                   e'e          k     r e*dej)         de d          e( e'd          k    Z+d Z,eeeeeeeee e!d
Z-e+re,e-d<   ej.        /                     ej0        dd          dk    d          Z1 ej2         ej3        ej4        e1          ej5        g          d             Z6d Z7 e7e          Z8 e7e          Z9 e7e          Z: e7e          Z; e7e          Z< e7e          Z= e7e          Z> e7e          Z? e7e           Z@ e7e!          ZA ej2        e,          ZBd ZC ej2        d          d              ZDd! ZEd" ZFej2        d#             ZGej2        d$             ZHdS )%    N)suppress)wraps)environ)SkipTest)DoctestItem)threadpool_limits
set_config)PYTEST_MIN_VERSION)
fetch_20newsgroupsfetch_20newsgroups_vectorizedfetch_california_housingfetch_covtypefetch_kddcup99fetch_lfw_pairsfetch_lfw_peoplefetch_olivetti_faces
fetch_rcv1fetch_species_distributions)get_pytest_filterwarning_lines)	_IS_32BITnp_base_versionparse_version
sp_versionz/Your version of pytest is too old. Got version z, you should have pytest >= z installed.z1.10c                      t           rTt          j        dd          dk    } | st          d          	 dd l}n# t
          $ r t          d          w xY wddlm} nddlm}  |d	          S )
NSKLEARN_SKIP_NETWORK_TESTS101test is enabled when SKLEARN_SKIP_NETWORK_TESTS=0r   z#test requires pooch to be installed)faceT)gray)	scipy_datasets_require_networkr   getr   poochImportErrorscipy.datasetsr    
scipy.misc)run_network_testsr$   r    s      P/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/conftest.pyraccoon_face_or_skipr*   1   s    % $#K(DcJJcQ  	PNOOO	BLLLL 	B 	B 	B@AAA	B 	(''''''######4T???s	   8 A)
fetch_20newsgroups_fxt!fetch_20newsgroups_vectorized_fxtfetch_california_housing_fxtfetch_covtype_fxtfetch_kddcup99_fxtfetch_lfw_pairs_fxtfetch_lfw_people_fxtfetch_olivetti_faces_fxtfetch_rcv1_fxtfetch_species_distributions_fxtraccoon_face_fxtSKLEARN_RUN_FLOAT32_TESTSr   r   z:Set SKLEARN_RUN_FLOAT32_TESTS=1 to run float32 dtype testsreason)marks)paramsc              #      K   | j         V  d S N)param)requests    r)   global_dtyper?   [   s      
-    c                      t          j        dd          dk    t                      fd            t          j        fd          S )zAFetch dataset (download if missing and requested by environment).r   r   r   c                      |d<   	  | i |S # t           $ r3}t          |          dk    r t          j        d           Y d }~d S d }~ww xY w)Ndownload_if_missingz1Data not found and `download_if_missing` is Falser   )OSErrorstrpytestskip)argskwargserC   fs      r)   wrappedz_fetch_fixture.<locals>.wrappedd   s    (;$%	M1d%f%%% 	M 	M 	M1vvLLLKKLLLLLLLLL	Ms    
A(AAc                       S r<    )rL   s   r)   <lambda>z _fetch_fixture.<locals>.<lambda>n   s    ' r@   )r   r#   r   rF   fixture)rK   rC   rL   s   `@@r)   _fetch_fixturerQ   `   si    !+&BCHHCO
1XXM M M M M XM >////***r@   c                 n   t          j        dd          dk    }t          j                            d          }t          t                    }t                      }|D ]}t          |t                    rBd|j	        v r9|j	        
                    d          d         }| d	}t          |g          |z  }	n*t          |d
          sjt          |j                  }
|
|z  }	|	s|r||	z  }|                    |           t          j        dd          }|dk    rG|rE|D ]B}t          t                    5  t          |                      ddd           n# 1 swxY w Y   C|D ]h}|j	                            d          rLt#          j                    dk    r5t          j                            d          }|                    |           id}	 ddl}n# t*          $ r d}d}Y nw xY wt,          rd}d}n#t.          j                            d          rd}d}t2          t5          d          k     rd}d}t6          t5          d          k     rd}d}|D ]#}t          |t                    ri |j        _        $|rZt          j                            |          }|D ]7}t          |t                    r |j	        dk    r|                    |           8	 ddl}d}n# t*          $ r d}Y nw xY w|sCt          j                            d          }|D ]"}|j	        dv r|                    |           !dS dS )zCalled after collect is completed.

    Parameters
    ----------
    config : pytest config
    items : list of collected items
    r   r   r   r   r7   fetch_._fxtfixturenamesPYTEST_XDIST_WORKERgw0NGradientBoostingClassifieraarch64zKknow failure. See https://github.com/scikit-learn/scikit-learn/issues/17797Fr   Tz*matplotlib is required to run the doctestsz;doctest are only run when the default numpy int is 64 bits.win32z\doctests are not run for Windows because numpy arrays repr is inconsistent across platforms.2z6Due to NEP 51 numpy scalar repr has changed in numpy 2z1.14z2Scipy sparse matrix repr has changed in scipy 1.14zsklearn._config.config_contextzpillow (or PIL) not installed!)z/sklearn.feature_extraction.image.PatchExtractorz3sklearn.feature_extraction.image.extract_patches_2d)r   r#   rF   markrG   setdataset_fetchers
isinstancer   namesplithasattrrW   
add_markerr   r   endswithplatformmachinexfail
matplotlibr%   r   sys
startswithr   r   r   dtestglobsPIL)configitemsr(   skip_networkdataset_features_setdatasets_to_downloaditemfetcher_function_namedataset_fetchers_keydataset_to_fetchitem_fixtures	worker_idrb   markerskip_doctestsrj   r8   skip_markerro   pillow_installeds                       r)   pytest_collection_modifyitemsr      sO     $@#FF#M;##B $  L /0055 * *dK(( 	DX-B-B$(IOOC$8$8$<!&;#A#A#A "$8#9::=QQ~.. 	D 122M,/CC 	 	* $44   OOL))))
 1599IE/( 	) 	)D(## ) ) &((() ) ) ) ) ) ) ) ) ) ) ) ) ) )  $ $ I;<<
	$ ""i//[&&P '  F OOF###M> > > >=>  N		 	 	)	) 5 	 s++++ JM&))))E
  " "dK(( 	"!DJ 
1k&&f&55 	1 	1D$,, 1
 9 @@@OOK000!


 ! ! ! !  -k&&.N&OO 	- 	-Dy    ,,,- -	- 	-s6   7EE	E	G G('G(K K+*K+function)scopec               #      K   t          j        d          } |                     d           | V  |                     d           dS )a/  Setup and teardown fixture for matplotlib.

    This fixture checks if we can import matplotlib. If not, the tests will be
    skipped. Otherwise, we close the figures before and after running the
    functions.

    Returns
    -------
    pyplot : module
        The ``matplotlib.pyplot`` module.
    zmatplotlib.pyplotallN)rF   importorskipclose)pyplots    r)   r   r      sL        !455F
LL
LLL
LLr@   c                    t          t          d                    }t          j        d          }dg}||}n|dk    r|}nd|v rS|                    d          \  }}t          t          t          |          t          |          dz                       }nt          |          g}t          |          dk     st          |          d	k    rt          d
|           d| j	        v r| 
                    d|           dS dS )a  Parametrization of global_random_seed fixture

    based on the SKLEARN_TESTS_GLOBAL_RANDOM_SEED environment variable.

    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 instructions on how to use this fixture.

    https://scikit-learn.org/dev/computing/parallelism.html#sklearn-tests-global-random-seed

    d    SKLEARN_TESTS_GLOBAL_RANDOM_SEED*   Nr   -   r   c   zxThe value(s) of the environment variable SKLEARN_TESTS_GLOBAL_RANDOM_SEED must be in the range [0, 99] (or 'all'), got: global_random_seed)listranger   r#   rc   intminmax
ValueErrorrW   parametrize)metafuncRANDOM_SEED_RANGErandom_seed_vardefault_random_seedsrandom_seedsstartstops          r)   pytest_generate_testsr     s(   $ U3ZZ((k"DEEO4+	E	!	!(/!!)//44KE4c%jj#d))a- @ @AALL001L|q  C$5$5$:$:6$36 6   x4441<@@@@@ 54r@   c                    	 dd l }|                    d           n# t          $ r Y nw xY wt          j        d          }t          j        d          }| t          |t          |          z  d          }t          |           t          j        dd          dk    r't                      D ]}|                     d	|           d S d S )
Nr   aggT)only_physical_coresPYTEST_XDIST_WORKER_COUNTr   SKLEARN_WARNINGS_AS_ERRORSr   filterwarnings)rj   user%   joblib	cpu_countr   r#   r   r   r   r   addinivalue_line)rp   rj   allowed_parallelismxdist_worker_countlines        r)   pytest_configurer   ;  s   u    !*tDDD %@AA% ""5=O9P9P"PRSTT)***{/55<< 344 	< 	<D##$4d;;;; =<	< 	<s    
))c                 b    t           j        fd}|                     t           d|           dS )z!Pretend pandas was not installed.c                 D    | dk    rt                       | g|R i |S )Npandas)r%   )rb   rH   rI   import_origs      r)   mocked_importz,hide_available_pandas.<locals>.mocked_importY  s8    8--{41$111&111r@   
__import__N)builtinsr   setattr)monkeypatchr   r   s     @r)   hide_available_pandasr   T  sF     %K2 2 2 2 2
 ,>>>>>r@   c               #   R   K   t          d           dV  t          d           dS )z?Set `print_changed_only` to False for the duration of the test.F)print_changed_onlyNTr	   rN   r@   r)   print_changed_only_falser   a  s9       %((((	EEE$''''''r@   )Ir   rg   rk   
contextlibr   	functoolsr   osr   unittestr   r   numpynprF   _pytest.doctestr   threadpoolctlr   sklearnr
   sklearn._min_dependenciesr   sklearn.datasetsr   r   r   r   r   r   r   r   r   r   sklearn.utils._testingr   sklearn.utils.fixesr   r   r   r   __version__r%   r"   r*   r`   r^   skipifr#   _SKIP32_MARKrP   r=   float32float64r?   rQ   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r   r   r   r   r   r   rN   r@   r)   <module>r      sQ     



                               ' ' ' ' ' ' + + + + + +       8 8 8 8 8 8                        B A A A A A            =#$$}}5G'H'HHH
+	B&:L 	B 	B"4	B 	B 	B  
 ",}}V/D/D!D   ( 1)F$<&(*, 4 'B   " @+?'({!!GK+S11S8G "   RZ|DDDbjQRRR  SR+ + +$ ((:;; $2N3P$Q$Q !-~.FGG "N=11 #^N33 $n_55 %~&677 )>*>?? 
++"0.1L"M"M !6>"677 y- y- y-x j!!!  "!$*A *A *AZ< < <2 	? 	? 	? ( ( ( ( (r@   