
    -iY                        S SK r S SK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
  S SKJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S SKrS SKrS S	KJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%  S S
K&J'r'J(r(J)r)J*r*J+r+  S SK,J-r-  S SK.J/r/  S SK0J1r1   " S S5      r2S r3\Rh                  " SS9S 5       r5\Rh                  " SS9S 5       r6\Rh                  S 5       r7\Rh                  S 5       r8\Rr                  Ru                  SS\\2/5      S 5       r;S r<S r=S r>S r?\Rr                  Ru                  SS/SS/45      S  5       r@\Rr                  Ru                  S!S"S#S$/ S%Q4S&S'S(/ S)Q4S*S+S,S-S./4/5      S/ 5       rAS0 rB\Rr                  Ru                  S1S20 S3S4/4S50 S3/4S6S7S80S9S:/4/5      S; 5       rCS< rDS= rES> rFS? rG\Rr                  Ru                  S@\SASBSCSDSE/4\%SFSGSHSD/ 4\!SISJSHSDSE/4\"SKSKSHSDSLSM/4\SNSOSSD/ 4\SPSQS4SD/ 4\" \SRSS9STSUS4SD/ 4/5      SV 5       rH\Rr                  Ru                  SW\\R                  \J4\\R                  \R                  4\\R                  \J4\!\R                  \J4\"\R                  \R                  4\%\R                  \J4/5      SX 5       rKSY rLSZ rMS[ rNS\ rOS] rPS^ rQS_ rRS` rSSa rTSb rUg)c    N)partial)	resources)Path)dumpsloadsMock)	HTTPError)urlparse)clear_data_home
fetch_fileget_data_homeload_breast_cancerload_diabetesload_digits
load_files	load_irisload_linnerudload_sample_imageload_sample_images	load_wine)RemoteFileMetadata$_derive_folder_and_filename_from_url_fetch_remoteload_csv_dataload_gzip_compressed_csv_datacheck_as_frame)scale)Bunchc                   $    \ rS rSrSrS rS rSrg)
_DummyPath-   z8Minimal class that implements the os.PathLike interface.c                     Xl         g Npath)selfr'   s     S/var/www/html/venv/lib/python3.13/site-packages/sklearn/datasets/tests/test_base.py__init___DummyPath.__init__0   s    	    c                     U R                   $ r%   r&   )r(   s    r)   
__fspath___DummyPath.__fspath__3   s    yyr,   r&   N)__name__
__module____qualname____firstlineno____doc__r*   r.   __static_attributes__ r,   r)   r"   r"   -   s    Br,   r"   c                 z    [         R                  R                  U 5      (       a  [        R                  " U 5        g g r%   )osr'   isdirshutilrmtreer&   s    r)   _remove_dirr<   7   s&    	ww}}Td r,   module)scopec              #   ^   #    [        U R                  S5      5      nUv   [        U5        g 7f)Nscikit_learn_data_home_teststrmktempr<   tmpdir_factorytmp_files     r)   	data_homerG   <   s(     >(()FGHH
N   +-c              #   ^   #    [        U R                  S5      5      nUv   [        U5        g 7f)Nscikit_learn_load_files_testrA   rD   s     r)   load_files_rootrK   C   s(     >(()GHIH
NrH   c              #      #    [         R                  " U S9n[         R                  " USS9nUR                  S5        UR	                  5         [        U5      v   [        U5        g 7f)NdirF)rN   delete   Hello World!
)tempfilemkdtempNamedTemporaryFilewritecloserB   r<   )rK   test_category_dir1sample_files      r)   test_category_dir_1rX   J   sY     !))o>--2DUSK'(
 
!!"#s   A$A&c              #   d   #    [         R                  " U S9n[        U5      v   [        U5        g 7f)NrM   )rQ   rR   rB   r<   )rK   test_category_dir2s     r)   test_category_dir_2r[   T   s+     !))o>
 
!!"#s   .0path_containerc                 X   U b  U " U5      n[        US9nX:X  d   e[        R                  R                  U5      (       d   eU b  U " U5      n[	        US9  [        R                  R                  U5      (       a   e[        US9n[        R                  R                  U5      (       d   eg )N)rG   )r   r8   r'   existsr   )r\   rG   s     r)   test_data_homer_   [   s     !"9-		2I!!!77>>)$$$$ !"9-	i(ww~~i(((( 	2I77>>)$$$$r,   c                     [        U 5      n[        UR                  5      S:X  d   e[        UR                  5      S:X  d   eUR                  b   eg )Nr   )r   len	filenamestarget_namesDESCR)rK   ress     r)   test_default_empty_load_filesrf   o   sL    
_
%Cs}}"""s A%%%99r,   c                     [        U5      n[        UR                  5      S:X  d   e[        UR                  5      S:X  d   eUR                  b   eUR
                  S/:X  d   eg )N      rP   )r   ra   rb   rc   rd   datarX   r[   rK   re   s       r)   test_default_load_filesrl   v   sb    
_
%Cs}}"""s A%%%9988)****r,   c                 h   [         R                  R                  U 5      R                  [         R                  5      R                  5       n[        USU/SS9n[        UR                  5      S:X  d   e[        UR                  5      S:X  d   eUR                  S:X  d   eUR                  S/:X  d   eg )Ntestutf-8)description
categoriesencodingrh   zHello World!
)r8   r'   abspathsplitseppopr   ra   rb   rc   rd   rj   )rX   r[   rK   categoryre   s        r)   .test_load_files_w_categories_desc_and_encodingrx   ~   s     ww2399"&&AEEGH
V
WC s}}"""s A%%%9988())))r,   c                     [        USS9n[        UR                  5      S:X  d   e[        UR                  5      S:X  d   eUR                  b   eUR                  S5      b   eg )NF)load_contentrh   ri   rj   )r   ra   rb   rc   rd   getrk   s       r)   test_load_files_wo_load_contentr|      sd     _5
9Cs}}"""s A%%%99776?"""r,   allowed_extensionsz.txtz.jsonc                 R   U S-  nUR                  5         SnU Vs/ s H  oBU-  PM	     nnU H  nUR                  S5        M     [        XS9n[        U Vs/ s H  ofR                  U;   d  M  [        U5      PM!     sn5      [        UR                  5      :X  d   egs  snf s  snf )z;Check the behaviour of `allowed_extension` in `load_files`.sub)z	file1.txtz
file2.jsonz
file3.jsonzfile4.mds   hello)r}   N)mkdirwrite_bytesr   setsuffixrB   rb   )tmp_pathr}   dfilesfpathspre   s           r)   "test_load_files_allowed_extensionsr      s     	5AGGIAE!"EqUEE"	h 
X
ECH15G)GAHISN   	 # Is   BB$/B$zHfilename, expected_n_samples, expected_n_features, expected_target_nameszwine_data.csv      )class_0class_1class_2iris.csv      )setosa
versicolor	virginicazbreast_cancer.csv9     	malignantbenignc                     [        U 5      u  pEnUR                  S   U:X  d   eUR                  S   U:X  d   eUR                  S   U:X  d   e[        R                  R	                  Xc5        g )Nr   rh   )r   shapenptestingassert_array_equal)filenameexpected_n_samplesexpected_n_featuresexpected_target_namesactual_dataactual_targetactual_target_namess          r)   test_load_csv_datar      sv     7DH6M3K 3Q#5555Q#6666q!%7777JJ!!"5Mr,   c                     Sn Sn[        U S9n[        XS9n[        U5      S:X  d   e[        U5      S:X  d   e[        R                  R	                  US   US   5        [        R                  R	                  US   US   5        [        R                  R	                  US	   US	   5        US
   R                  S5      (       d   eg )Nr   ziris.rstdata_file_namer   descr_file_namer      r   rh   ri   z.. _iris_dataset:)r   ra   r   r   r   
startswith)r   r   res_without_descrres_with_descrs       r)   test_load_csv_data_with_descrr      s    N O%^D"%N ~!### !Q&&&JJ!!."35Fq5IJJJ!!."35Fq5IJJJ!!."35Fq5IJ"(()<====r,   z filename, kwargs, expected_shapezdiabetes_data_raw.csv.gz  
   diabetes_target.csv.gzzdigits.csv.gz	delimiter,  A   c                 R    [        U 40 UD6nUR                  [        U5      :X  d   eg r%   )r   r   tuple)r   kwargsexpected_shaper   s       r)   "test_load_gzip_compressed_csv_datar      s,     0CFCKn 5555r,   c                      Sn Sn[        U S9n[        U US9u  p4[        R                  R                  X25        UR	                  S5      (       d   eg )Nr   zdiabetes.rstr   r   z.. _diabetes_dataset:)r   r   r   r   r   )r   r   expected_datar   descrs        r)   -test_load_gzip_compressed_csv_data_with_descrr      sU    -N$O1PM6%'K
 JJ!!+=34444r,   c                  H    [        5       n [        U R                  5      S:X  d   e[        U R                  5      S:X  d   eU R                  n[        R
                  " US   SSS S 24   [        R                  " / SQ[        R                  S9:H  5      (       d   e[        R
                  " US   SSS S 24   [        R                  " / SQ[        R                  S9:H  5      (       d   eU R                  (       d   eg ! [         a    [        R                  " S5         g f = f)Nri   r   )         )dtyperh   )ri      r   3Could not load sample images, PIL is not available.)r   ra   imagesrb   r   allarrayuint8rd   ImportErrorwarningswarn)re   r   s     r)   test_load_sample_imagesr      s    M "3::!###3==!Q&&& vvfQi1a(BHH_BHH,UUVVVVvvfQi1a(BHH[,QQRRRRyyy MKLMs   C;C> > D! D!c                       [        S5      n U R                  S:X  d   eU R                  S:X  d   eg ! [         a    [        R
                  " S5         g f = f)Nz	china.jpgr   )i  i  r   r   )r   r   r   r   r   r   )chinas    r)   test_load_sample_imager      sT    M!+.{{g%%%{{m+++ MKLMs   /2  AAc                  t   [        SS9n U R                  R                  S:X  d   eU R                  R                  S:X  d   e[        U R                  5      S:X  d   eU R                  (       d   e[        5       n[        R                  R                  [        U R                  5      S-  UR                  SS9  g	)
z{Test to check that we load a scaled version by default but that we can
get an unscaled version when setting `scaled=False`.F)scaledr   r   r   r   gT5@g-C6?)atolN)r   rj   r   targetsizera   feature_namesrd   r   r   assert_allcloser   )diabetes_rawdiabetes_defaults     r)   test_load_diabetes_rawr      s     !.L""i///##s***|))*b000$JJl H-/?/D/D5  r,   zEloader_func, data_shape, target_shape, n_target, has_descr, filenames)r   r   )r   ri   Tr   )r   r   )r   r   )r   r   )r   )   r   data_filenametarget_filenamer   )r   )r   @   )r   	   )n_class)Q  r   )r   c           	      X   U " 5       n[        U[        5      (       d   eUR                  R                  U:X  d   eUR                  R                  U:X  d   e[        US5      (       a  [        UR                  5      US   :X  d   eUb  [        UR                  5      U:X  d   eU(       a  UR                  (       d   eU(       aa  SU;   d   e[        U Vs/ s H:  nXv;   =(       a,    [        R                  " US   5      Xg   -  R                  5       PM<     sn5      (       d   eg g s  snf )Nr   rh   data_module)
isinstancer    rj   r   r   hasattrra   r   rc   rd   r   r   r   is_file)loader_func
data_shapetarget_shapen_target	has_descrrb   bunchr   s           r)   test_loaderr     s&   ( MEeU####::z)))<<---uo&&5&&':a=8885%%&(222{{{%%% # #A 
 Q__U=%9:UXENNPQ"
 
 	
 
 s   AD'z%loader_func, data_dtype, target_dtypec                 *    U " 5       n[        UU UUS9  g )N)expected_data_dtypeexpected_target_dtyper   )r   
data_dtypetarget_dtypedefault_results       r)   test_toy_dataset_frame_dtyper   7  s     !]N&*	r,   c                  v    [        SS9n [        [        U 5      5      nSUl        US   UR                  :X  d   eg )Nx)r   y)r    r   r   r   r   bunch_from_pkls     r)   test_loads_dumps_bunchr   L  s:    CLE5<(NN#."2"2222r,   c                      [        SS9n SU R                  S'   [        [        U 5      5      nUR                  S:X  d   eUS   S:X  d   eSUl        UR                  S:X  d   eUS   S:X  d   eg )Noriginal)keyzset from __dict__r  changed)r    __dict__r   r   r  r   s     r)   8test_bunch_pickle_generated_with_0_16_and_read_with_0_17r  S  s    j!E 0ENN55<(N+++% J... #N***% I---r,   c                  :    [        5       n S[        U 5      ;   d   eg )Nrj   )r   rN   )rj   s    r)   test_bunch_dirr  h  s    ;DSYr,   c                      Sn [         R                  " [        U S9   SSKJn  SSS5        Sn [         R                  " [        U S9   SSKJn  SSS5        g! , (       d  f       N9= f! , (       d  f       g= f)zLCheck that we raise the ethical warning when trying to import `load_boston`.z8The Boston housing prices dataset has an ethical problemmatchr   )load_bostonNzBcannot import name 'non_existing_function' from 'sklearn.datasets')non_existing_function)pytestraisesr   sklearn.datasetsr
  r  )msgr
  r  s      r)   test_load_boston_errorr  n  sP    
DC	{#	.0 
/ OC	{#	.: 
/	. 
/	.
 
/	.s   AA'
A$'
A5c           
         Sn[        SUS5      n[        [        USSS[        R                  " 5       S9S9nU R                  SU5        [        R                  " [        S	S
9 n[        R                  " [        SS
9   [        USSS9  SSS5        UR                  S:X  d   eU H!  n[        UR                  5      SU 3:X  a  M!   e   [        U5      S:X  d   e SSS5        g! , (       d  f       Nb= f! , (       d  f       g= f)z'Check retry mechanism in _fetch_remote.z8https://scikit-learn.org/this_file_does_not_exist.tar.gzinvalid_fileN  	Not Found)urlcoder  hdrsfpside_effect"sklearn.datasets._base.urlretrievezRetry downloadingr  zHTTP Error 404r   r   )	n_retriesdelayr   zRetry downloading from url: )r   r	   r
   ioBytesIOsetattrr  warnsUserWarningr  r   
call_countrB   messagera   )monkeypatchr  invalid_remote_fileurlretrieve_mockrecordrs         r)   1test_fetch_remote_raise_warnings_with_invalid_urlr*  z  s     EC,^S$G#;Tbjjl

 <>NO	k)<	=]]9,<=-!D >  **a///Aqyy>'CC5%IIII 6{a 
>	=== 
>	=s*   "C5<C$9C5C5$
C2	.C55
Dc                  8   [        S5      u  pU S:X  d   eUS:X  d   e[        S5      u  pU S:X  d   eUS:X  d   e[        S5      u  pU S:X  d   eUS:X  d   e[        S5      u  pU S:X  d   eUS	:X  d   e[        S
5      u  pU S:X  d   eUS	:X  d   e[        S5      u  pU S:X  d   eUS:X  d   e[        S5      u  pU S:X  d   eUS:X  d   e[        S5      u  pU S:X  d   eUS:X  d   e[        S5      u  pU S:X  d   eUS:X  d   e[        S5      u  pU S:X  d   eUS:X  d   e[        S5      u  pU S:X  d   eUS:X  d   e[        S5      u  pU S:X  d   eUS	:X  d   e[        R                  " [        SS9   [        S5        S S S 5        g ! , (       d  f       g = f)Nzhttps://example.com/file.tar.gzexample.comzfile.tar.gzu2   https://example.com/نمونه نماینده.datau   نمونه-نماینده.dataz)https://example.com/path/to-/.file.tar.gzzexample.com/path_tozhttps://example.com/downloaded_filezhttps://example.comz2https://example.com/path/@to/data.json?param=valuez	data.jsonz4https://example.com/path/@@to._/-_.data.json.#anchorz"https://example.com//some_file.txtzsome_file.txtzhttp://example/../some_file.txtexamplez'https://example.com/!.'.,/some_file.txtz+https://example.com/a/!.'.,/b/some_file.txtzexample.com/a_bzhttps://example.com/!.'.,zInvalid URLr  z
https:/../)r   r  r  
ValueError)folderr   s     r)   (test_derive_folder_and_filename_from_urlr1    sH   ;)F ]"""}$$$;<F ]"""7777;3F ****}$$$;<RSF]"""((((;<QRF]"""((((;<F ****{""";>F ****{""";,F ]"""&&&;)F Y&&&;1F ]"""&&&;5F &&&&&&&;<WXF]"""((((	z	7,\: 
8	7	7s   6F
Fc                 "   ^  U 4S jn[        US9$ )Nc                    > [        T5      n[        U 5      R                  R                  S5      nX#-  R	                  5       (       d  [        U SSS S 5      e[        R                  " X#-  U5        g )N/r  r  )r   r   r'   stripr^   r
   r:   copy)r  
local_pathserver_root	file_pathserver_sides       r)   _urlretrieve_mock,_mock_urlretrieve.<locals>._urlretrieve_mock  s]    ;'SM&&,,S1	'//11Ck4>>K+Z8r,   r  r   )r:  r;  s   ` r)   _mock_urlretriever=    s    9 -..r,   c                    [        U5      nUS-  nUR                  5         US-  nSnUR                  USS9  US-  nUR                  5         US-  nUR                  SSS9  US	-  nUR                  5         [        U5      nU R	                  S
U5        U R	                  S[        US95        [        S5      n	XS-  S-  :X  d   eU	R                  SS9U:X  d   e[        S5      n	XS-  S-  S-  :X  d   eU	R                  SS9UR                  S5      :X  d   e[        R                  " S5      n
[        R                  " [        5         [        R                  " U
S9   [        SSS9  S S S 5        S S S 5        US-  S-  n[        UR                  5       5      US-  /:X  d   eg ! , (       d  f       NB= f! , (       d  f       NK= f)Nr:  
data.jsonl{"a": 1, "b": 2}
ro   rr   	subfolderzother_file.txtzSome important text data.rG   r  z$sklearn.datasets._base.get_data_home)return_valuehttps://example.com/data.jsonlr,  z,https://example.com/subfolder/other_file.txtzERetry downloading from url: https://example.com/subfolder/invalid.txtr  z)https://example.com/subfolder/invalid.txtr   )r  )r   r   
write_textr=  r   r	   r   	read_textreescaper  r  r
   r!  sortediterdir)r%  tmpdirr:  	data_fileserver_dataserver_subfolderother_data_filerG   r'  fetched_file_pathexpected_warning_msglocal_subfolders               r)   test_fetch_file_using_data_homerS    s   &\F=(Kl*I&Kw7"[0&)99O:WM$IOO(5<>NO.)0L #( M 9L HHHH&&&8KGGG"6 	6DGWWWW&&&8O<U<U=    99O 
y	!\\ 45; 6 
"  -/+=O/))+,CS1S0TTTT 65 
"	!s$   	F6F%)F6%
F3	/F66
Gc                 D   UR                  S5      n[        US-  5      nSnUR                  USS9  UR                  S5      n[        U5      nU R	                  SU5        [        SUS	9nXuS-  :X  d   eUR                  SS9U:X  d   eUR                  S
:X  d   e[        SUS	9nXuS-  :X  d   eUR                  SS9U:X  d   eUR                  S
:X  d   eUR                  5         [        SUS	9nXuS-  :X  d   eUR                  SS9U:X  d   eUR                  S:X  d   eg )Nr:  r?  r@  ro   rA  client_sider  rD  r0  rh   ri   )	r   r   rE  r=  r   r   rF  r#  unlink)r%  rK  r:  rL  rM  rU  r'  rP  s           r)   test_fetch_file_without_sha256rX    sp   ,,}-K[</0I&Kw7,,}-K(5<>NO #( l ::::&&&8KGGG&&!+++ #( l ::::&&&8KGGG&&!+++ "( l ::::&&&8KGGG&&!+++r,   c                    UR                  S5      n[        US-  5      nSnUR                  USS9  [        R                  " UR                  5       5      R                  5       nUR                  S5      n[        U5      nU R                  SU5        [        SXeS	9nXS-  :X  d   eUR                  SS9U:X  d   eUR                  S
:X  d   e[        SXeS	9nXS-  :X  d   eUR                  SS9U:X  d   eUR                  S
:X  d   eUR                  SSS9  SU S3n	[        R                  " U	S9   [        SXeS	9nXS-  :X  d   eUR                  SS9U:X  d   eUR                  S:X  d   e S S S 5        [        SXeS	9nXS-  :X  d   eUR                  SS9U:X  d   eUR                  S:X  d   eUR                  5         [        SXeS	9nXS-  :X  d   eUR                  SS9U:X  d   eUR                  S:X  d   e[        SUS9nXS-  :X  d   eUR                  SS9U:X  d   eUR                  S:X  d   eSn
Sn[        R                   " SU SU
 S35      n[        R"                  " [$        US9   [        R                  " US9   [        SUU
S	9  S S S 5        S S S 5        g ! , (       d  f       GN<= f! , (       d  f       N)= f! , (       d  f       g = f)Nr:  r?  r@  ro   rA  rU  r  rD  )r0  sha256rh   zcorrupted contentszQSHA256 checksum of existing local file data.jsonl \(.*\) differs from expected \(z9\): re-downloading from https://example.com/data.jsonl \.r  ri   r   rV  deadbabecafebeefzdiffers from expectedz#The SHA256 checksum of data.jsonl (z) differs from expected (z).)r   r   rE  hashlibrZ  
read_bytes	hexdigestr=  r   r   rF  r#  r  r!  rW  rG  rH  r  OSError)r%  rK  r:  rL  rM  expected_sha256rU  r'  rP  expected_msgnon_matching_sha256rQ  expected_error_msgs                r)   test_fetch_file_with_sha256rd  ?  s`   ,,}-K[</0I&Kw7nnY%9%9%;<FFHO,,}-K(5<>NO #( l ::::&&&8KGGG&&!+++ #( l ::::&&&8KGGG&&!+++   !5 H	++:*; <A	A 
 
L	)&,[
 !,$>>>> **G*<KKK**a/// 
* #( l ::::&&&8KGGG&&!+++ "( l ::::&&&8KGGG&&!+++ #( l ::::&&&8KGGG&&!+++ -2
-o-> ?()	- 
w&8	9\\ 450"* 6 
:	9S 
*	)T 65 
:	9s0   2<J$2KJ6K$
J36
K	 K
K)Vr\  r  r8   rG  r:   rQ   r   	functoolsr   	importlibr   pathlibr   pickler   r   unittest.mockr	   urllib.errorr
   urllib.parser   numpyr   r  r  r   r   r   r   r   r   r   r   r   r   r   r   sklearn.datasets._baser   r   r   r   r   "sklearn.datasets.tests.test_commonr   sklearn.preprocessingr   sklearn.utilsr    r"   r<   fixturerG   rK   rX   r[   markparametrizer_   rf   rl   rx   r|   r   r   r   r   r   r   r   r   r   float64intr   r   r  r  r  r*  r1  r=  rS  rX  rd  r6   r,   r)   <module>rv     s    	 	 	         " !       > '  
 h   h   $ $ $ $ )D$
+CD% E%&+*# -67:K/LM N N	#r#DE	S!BC	c2X'>?NN>$ &	#R#r3	!2u-	;,tRj966
5M M  K	Y4*F	Ivq$3	Hfa
|</0	
 
	64r:	j'2tR8	a	(*gr4L&
'&
. +	RZZ-	

BJJ/	bjj#&	BJJ$	

BJJ/	BJJ$

3.*	; .D;N/1Uh%,PSr,   