§
    qŠtj	Z  ã                   óŒ  — d dl Z d dlZd dlZd dl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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mZmZ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'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1  G d„ d¦  «        Z2d„ Z3 ej4        d¬¦  «        d„ ¦   «         Z5 ej4        d¬¦  «        d„ ¦   «         Z6ej4        d„ ¦   «         Z7ej4        d„ ¦   «         Z8ej9        j:        ej9         ;                    ddee2g¦  «        d„ ¦   «         ¦   «         Z<d„ Z=d„ Z>d„ Z?d„ Z@ej9         ;                    ddgddgf¦  «        d „ ¦   «         ZAej9         ;                    d!d"d#d$g d%¢fd&d'd(g d)¢fd*d+d,d-d.gfg¦  «        d/„ ¦   «         ZBd0„ ZCej9         ;                    d1d2i d3d4gfd5i d3gfd6d7d8id9d:gfg¦  «        d;„ ¦   «         ZDd<„ ZEd=„ ZFd>„ ZGd?„ ZHej9         ;                    d@edAdBdCdDdEgfe%dFdGdHdDg fe!dIdJdHdDdEgfe"dKdKdHdDdLdMgfedNdOddDg fedPdQd4dDg f eedR¬S¦  «        dTdUd4dDg fg¦  «        dV„ ¦   «         ZIej9         ;                    dWeejJ        eKfeejJ        ejJ        feejJ        eKfe!ejJ        eKfe"ejJ        ejJ        fe%ejJ        eKfg¦  «        dX„ ¦   «         ZLdY„ ZMdZ„ ZNd[„ ZOd\„ ZPd]„ ZQd^„ ZRd_„ ZSd`„ ZTda„ ZUdb„ ZVdS )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                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú
_DummyPathz8Minimal class that implements the os.PathLike interface.c                 ó   — || _         d S ©N©Úpath)Úselfr&   s     ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/datasets/tests/test_base.pyÚ__init__z_DummyPath.__init__0   s   € ØˆŒ	ˆ	ˆ	ó    c                 ó   — | j         S r$   r%   )r'   s    r(   Ú
__fspath__z_DummyPath.__fspath__3   s
   € ØŒyÐr*   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r)   r,   © r*   r(   r"   r"   -   s8   € € € € € ØBÐBðð ð ðð ð ð ð r*   r"   c                 óp   — t           j                             | ¦  «        rt          j        | ¦  «         d S d S r$   )Úosr&   ÚisdirÚshutilÚrmtreer%   s    r(   Ú_remove_dirr7   7   s8   € Ý	„w‡}‚}�TÑÔð ÝŒ�dÑÔÐÐÐðð r*   Úmodule)Úscopec              #   ót   K  — t          |                      d¦  «        ¦  «        }|V — t          |¦  «         d S )NÚscikit_learn_data_home_test©ÚstrÚmktempr7   ©Útmpdir_factoryÚtmp_files     r(   Ú	data_homerB   <   s?   è è € å�>×(Ò(Ð)FÑGÔGÑHÔH€HØ
€N€N€NÝ�ÑÔÐÐÐr*   c              #   ót   K  — t          |                      d¦  «        ¦  «        }|V — t          |¦  «         d S )NÚscikit_learn_load_files_testr<   r?   s     r(   Úload_files_rootrE   C   s?   è è € å�>×(Ò(Ð)GÑHÔHÑIÔI€HØ
€N€N€NÝ�ÑÔÐÐÐr*   c              #   óò   K  — t          j        | ¬¦  «        }t          j        |d¬¦  «        }|                     d¦  «         |                     ¦   «          t          |¦  «        V — t          |¦  «         d S )N©ÚdirF)rH   Údeleteó   Hello World!
)ÚtempfileÚmkdtempÚNamedTemporaryFileÚwriteÚcloser=   r7   )rE   Útest_category_dir1Úsample_files      r(   Útest_category_dir_1rR   J   s�   è è € å!Ô)¨oÐ>Ñ>Ô>ÐÝÔ-Ð2DÈUÐSÑSÔS€KØ×ÒÐ'Ñ(Ô(Ð(Ø×ÒÑÔÐÝ
Ð Ñ
!Ô
!Ð!Ð!Ð!ÝÐ"Ñ#Ô#Ð#Ð#Ð#r*   c              #   ót   K  — t          j        | ¬¦  «        }t          |¦  «        V — t          |¦  «         d S )NrG   )rK   rL   r=   r7   )rE   Útest_category_dir2s     r(   Útest_category_dir_2rU   T   sD   è è € å!Ô)¨oÐ>Ñ>Ô>ÐÝ
Ð Ñ
!Ô
!Ð!Ð!Ð!ÝÐ"Ñ#Ô#Ð#Ð#Ð#r*   Úpath_containerc                 óp  — | � | |¦  «        }t          |¬¦  «        }||k    sJ ‚t          j                             |¦  «        sJ ‚| � | |¦  «        }t	          |¬¦  «         t          j                             |¦  «        rJ ‚t          |¬¦  «        }t          j                             |¦  «        sJ ‚d S )N)rB   )r   r3   r&   Úexistsr   )rV   rB   s     r(   Útest_data_homerY   [   sÈ   € ð Ð!Ø"�N 9Ñ-Ô-ˆ	Ý¨	Ð2Ñ2Ô2€IØ˜	Ò!Ð!Ð!Ð!ÝŒ7�>Š>˜)Ñ$Ô$Ð$Ð$Ð$ð Ð!Ø"�N 9Ñ-Ô-ˆ	Ý˜iÐ(Ñ(Ô(Ð(ÝŒw�~Š~˜iÑ(Ô(Ð(Ð(Ð(õ ¨	Ð2Ñ2Ô2€IÝŒ7�>Š>˜)Ñ$Ô$Ð$Ð$Ð$Ð$Ð$r*   c                 óž   — t          | ¦  «        }t          |j        ¦  «        dk    sJ ‚t          |j        ¦  «        dk    sJ ‚|j        �J ‚d S )Nr   )r   ÚlenÚ	filenamesÚtarget_namesÚDESCR)rE   Úress     r(   Útest_default_empty_load_filesr`   p   sZ   € Ý
�_Ñ
%Ô
%€CÝˆsŒ}ÑÔ Ò"Ð"Ð"Ð"ÝˆsÔÑ Ô  AÒ%Ð%Ð%Ð%ØŒ9ÐÐÐÐÐr*   c                 óº   — t          |¦  «        }t          |j        ¦  «        dk    sJ ‚t          |j        ¦  «        dk    sJ ‚|j        �J ‚|j        dgk    sJ ‚d S )Né   é   rJ   )r   r[   r\   r]   r^   Údata©rR   rU   rE   r_   s       r(   Útest_default_load_filesrf   w   sq   € Ý
�_Ñ
%Ô
%€CÝˆsŒ}ÑÔ Ò"Ð"Ð"Ð"ÝˆsÔÑ Ô  AÒ%Ð%Ð%Ð%ØŒ9ÐÐÐØŒ8Ð)Ð*Ò*Ð*Ð*Ð*Ð*Ð*r*   c                 óh  — t           j                             | ¦  «                             t           j        ¦  «                             ¦   «         }t          |d|gd¬¦  «        }t          |j        ¦  «        dk    sJ ‚t          |j	        ¦  «        dk    sJ ‚|j
        dk    sJ ‚|j        dgk    sJ ‚d S )NÚtestúutf-8)ÚdescriptionÚ
categoriesÚencodingrb   zHello World!
)r3   r&   ÚabspathÚsplitÚsepÚpopr   r[   r\   r]   r^   rd   )rR   rU   rE   Úcategoryr_   s        r(   Ú.test_load_files_w_categories_desc_and_encodingrr      s¼   € õ Œw�ŠÐ2Ñ3Ô3×9Ò9½"¼&ÑAÔA×EÒEÑGÔG€HÝ
Ø V¸¸
ÈWðñ ô €Cõ ˆsŒ}ÑÔ Ò"Ð"Ð"Ð"ÝˆsÔÑ Ô  AÒ%Ð%Ð%Ð%ØŒ9˜ÒÐÐÐØŒ8Ð(Ð)Ò)Ð)Ð)Ð)Ð)Ð)r*   c                 óÐ   — t          |d¬¦  «        }t          |j        ¦  «        dk    sJ ‚t          |j        ¦  «        dk    sJ ‚|j        �J ‚|                     d¦  «        �J ‚d S )NF)Úload_contentrb   rc   rd   )r   r[   r\   r]   r^   Úgetre   s       r(   Útest_load_files_wo_load_contentrv   �   sw   € õ �_°5Ð
9Ñ
9Ô
9€CÝˆsŒ}ÑÔ Ò"Ð"Ð"Ð"ÝˆsÔÑ Ô  AÒ%Ð%Ð%Ð%ØŒ9ÐÐÐØ�7Š7�6‰?Œ?Ð"Ð"Ð"Ð"Ð"r*   Úallowed_extensionsz.txtz.jsonc                 ó  ‡‡— | dz  Š‰                      ¦   «          d}ˆfd„|D ¦   «         }|D ]}|                     d¦  «         Œt          | ‰¬¦  «        }t          ˆfd„|D ¦   «         ¦  «        t          |j        ¦  «        k    sJ ‚dS )z;Check the behaviour of `allowed_extension` in `load_files`.Úsub)z	file1.txtz
file2.jsonz
file3.jsonzfile4.mdc                 ó   •— g | ]}‰|z  ‘ŒS r1   r1   )Ú.0ÚfÚds     €r(   ú
<listcomp>z6test_load_files_allowed_extensions.<locals>.<listcomp>�   s   ø€ Ð"Ð"Ð"�qˆQ�‰UÐ"Ð"Ð"r*   s   hello)rw   c                 ó@   •— g | ]}|j         ‰v ¯t          |¦  «        ‘ŒS r1   )Úsuffixr=   )r{   Úprw   s     €r(   r~   z6test_load_files_allowed_extensions.<locals>.<listcomp>¡   s,   ø€ ÐHÐHÐH˜1¨¬Ð5GÐ)GÐ)G•�A‘”Ð)GÐ)GÐ)Gr*   N)ÚmkdirÚwrite_bytesr   Úsetr\   )Útmp_pathrw   ÚfilesÚpathsr�   r_   r}   s    `    @r(   Ú"test_load_files_allowed_extensionsrˆ   —   sÃ   øø€ ð 	�5Ñ€AØ‡G‚G�I„I€IØA€EØ"Ð"Ð"Ð"˜EÐ"Ñ"Ô"€EØð  ð  ˆØ	�Š�hÑÔÐÐÝ
�XÐ2DÐ
EÑ
EÔ
E€CÝÐHÐHÐHÐH ÐHÑHÔHÑIÔIÍSØŒñNô Nò ð ð ð ð ð r*   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.csvé9  é   Ú	malignantÚbenignc                 óÞ   — t          | ¦  «        \  }}}|j        d         |k    sJ ‚|j        d         |k    sJ ‚|j        d         |k    sJ ‚t          j                             ||¦  «         d S )Nr   rb   )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¤   ¦   sˆ   € õ 7DÀHÑ6MÔ6MÑ3€K�Ð 3ØÔ˜QÔÐ#5Ò5Ð5Ð5Ð5ØÔ˜QÔÐ#6Ò6Ð6Ð6Ð6ØÔ˜qÔ!Ð%7Ò7Ð7Ð7Ð7Ý„J×!Ò!Ð"5Ð7LÑMÔMÐMÐMÐMr*   c                  óæ  — d} d}t          | ¬¦  «        }t          | |¬¦  «        }t          |¦  «        dk    sJ ‚t          |¦  «        dk    sJ ‚t          j                             |d         |d         ¦  «         t          j                             |d         |d         ¦  «         t          j                             |d	         |d	         ¦  «         |d
                              d¦  «        sJ ‚d S )NrŽ   ziris.rst©Údata_file_name©r§   Údescr_file_namer�   é   r   rb   rc   éÿÿÿÿz.. _iris_dataset:)r   r[   rš   r›   rœ   Ú
startswith)r§   r©   Úres_without_descrÚres_with_descrs       r(   Útest_load_csv_data_with_descrr¯   ¸   sú   € Ø€NØ €Oå%°^ÐDÑDÔDÐÝ"Ø%°ðñ ô €Nõ ˆ~ÑÔ !Ò#Ð#Ð#Ð#ÝÐ Ñ!Ô! QÒ&Ð&Ð&Ð&å„J×!Ò! .°Ô"3Ð5FÀqÔ5IÑJÔJÐJÝ„J×!Ò! .°Ô"3Ð5FÀqÔ5IÑJÔJÐJÝ„J×!Ò! .°Ô"3Ð5FÀqÔ5IÑJÔJÐJà˜"Ô×(Ò(Ð)<Ñ=Ô=Ð=Ð=Ð=Ð=Ð=r*   z filename, kwargs, expected_shapezdiabetes_data_raw.csv.gzéº  é
   údiabetes_target.csv.gzzdigits.csv.gzÚ	delimiterú,é  éA   c                 óT   — t          | fi |¤Ž}|j        t          |¦  «        k    sJ ‚d S r$   )r   r™   Útuple)r�   ÚkwargsÚexpected_shaper¡   s       r(   Ú"test_load_gzip_compressed_csv_datar»   Ê   s;   € õ 0°ÐCÐC¸FÐCÐC€KØÔ¥ nÑ 5Ô 5Ò5Ð5Ð5Ð5Ð5Ð5r*   c                  óÄ   — d} d}t          | ¬¦  «        }t          | |¬¦  «        \  }}t          j                             ||¦  «         |                     d¦  «        sJ ‚d S )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¿   ×   sv   € Ø-€NØ$€Oå1ÀÐPÑPÔP€MÝ6Ø%Ø'ðñ ô Ñ€K�õ
 „J×!Ò! +¨}Ñ=Ô=Ð=Ø×ÒÐ3Ñ4Ô4Ð4Ð4Ð4Ð4Ð4r*   c                  ó"  — 	 t          ¦   «         } t          | j        ¦  «        dk    sJ ‚t          | j        ¦  «        dk    sJ ‚| j        }t	          j        |d         ddd d …f         t	          j        g d¢t          j        ¬¦  «        k    ¦  «        sJ ‚t	          j        |d         ddd d …f         t	          j        g d¢t          j        ¬¦  «        k    ¦  «        sJ ‚| j        sJ ‚d S # t          $ r t          j        d¦  «         Y d S w xY w)Nrc   r   )é®   éÉ   éç   )Údtyperb   )rc   é   rŠ   ú3Could not load sample images, PIL is not available.)r   r[   Úimagesr\   rš   ÚallÚarrayÚuint8r^   ÚImportErrorÚwarningsÚwarn)r_   rÇ   s     r(   Útest_load_sample_imagesrÎ   å   s"  € ðMÝ Ñ"Ô"ˆÝ�3”:‰Œ !Ò#Ð#Ð#Ð#Ý�3”=Ñ!Ô! QÒ&Ð&Ð&Ð&Ø”ˆõ Œv�f˜Q”i  1 a a a Ô(­B¬H°_°_°_ÍBÌHÐ,UÑ,UÔ,UÒUÑVÔVÐVÐVÐVåŒv�f˜Q”i  1 a a a Ô(­B¬H°[°[°[ÍÌÐ,QÑ,QÔ,QÒQÑRÔRÐRÐRÐRØŒyÐÐˆyÐÐøÝð Mð Mð MÝŒÐKÑLÔLÐLÐLÐLÐLðMøøøs   ‚C(C, Ã,DÄDc                  ó¤   — 	 t          d¦  «        } | j        dk    sJ ‚| j        dk    sJ ‚d S # t          $ r t	          j        d¦  «         Y d S w xY w)Nz	china.jpgrÊ   )i«  i€  rª   rÆ   )r   rÄ   r™   rË   rÌ   rÍ   )Úchinas    r(   Útest_load_sample_imagerÑ   õ   sz   € ðMÝ! +Ñ.Ô.ˆØŒ{˜gÒ%Ð%Ð%Ð%ØŒ{˜mÒ+Ð+Ð+Ð+Ð+Ð+øÝð Mð Mð MÝŒÐKÑLÔLÐLÐLÐLÐLðMøøøs   ‚)- ­AÁAc                  óH  — t          d¬¦  «        } | j        j        dk    sJ ‚| j        j        dk    sJ ‚t          | j        ¦  «        dk    sJ ‚| j        sJ ‚t          ¦   «         }t          j	         
                    t          | j        ¦  «        dz  |j        d¬¦  «         d	S )
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±   g»‘T5@g-Cëâ6?)ÚatolN)r   rd   r™   ÚtargetÚsizer[   Úfeature_namesr^   rš   r›   Úassert_allcloser   )Údiabetes_rawÚdiabetes_defaults     r(   Útest_load_diabetes_rawrÜ   þ   s»   € õ !¨Ð.Ñ.Ô.€LØÔÔ" iÒ/Ð/Ð/Ð/ØÔÔ# sÒ*Ð*Ð*Ð*Ýˆ|Ô)Ñ*Ô*¨bÒ0Ð0Ð0Ð0ØÔÐÐÐå$‘”Ðå„J×ÒÝˆlÔÑ Ô  HÑ-Ð/?Ô/DÈ5ð ñ ô ð ð ð r*   zEloader_func, data_shape, target_shape, n_target, has_descr, filenames)r”   r•   )r”   rc   Tr�   )r‰   rŠ   )r‰   rª   )r�   r�   )r�   )é   rª   Údata_filenameÚtarget_filenamerÔ   )r°   )rµ   é@   )rµ   é	   )Ún_class)éQ  rà   )rã   c                 óŽ  ‡—  | ¦   «         Št          ‰t          ¦  «        sJ ‚‰j        j        |k    sJ ‚‰j        j        |k    sJ ‚t          ‰d¦  «        r t          ‰j        ¦  «        |d         k    sJ ‚|�t          ‰j        ¦  «        |k    sJ ‚|r	‰j	        sJ ‚|r#d‰v sJ ‚t          ˆfd„|D ¦   «         ¦  «        sJ ‚d S d S )NrØ   rb   Údata_modulec                 ó‚   •— g | ];}|‰v o4t          j        ‰d          ¦  «        ‰|         z                       ¦   «         ‘Œ<S )rå   )r   r†   Úis_file)r{   r|   Úbunchs     €r(   r~   ztest_loader.<locals>.<listcomp>0  s\   ø€ ð ð ð ð ð �U�
ð QÝ”_ U¨=Ô%9Ñ:Ô:¸UÀ1¼XÑE×NÒNÑPÔPðð ð r*   )Ú
isinstancer    rd   r™   rÖ   Úhasattrr[   rØ   r]   r^   rÈ   )Úloader_funcÚ
data_shapeÚtarget_shapeÚn_targetÚ	has_descrr\   rè   s         @r(   Útest_loaderrð     s,  ø€ ð( ˆK‰MŒM€Eå�e�UÑ#Ô#Ð#Ð#Ð#ØŒ:Ô˜zÒ)Ð)Ð)Ð)ØŒ<Ô Ò-Ð-Ð-Ð-Ýˆu�oÑ&Ô&ð 9Ý�5Ô&Ñ'Ô'¨:°a¬=Ò8Ð8Ð8Ð8ØÐÝ�5Ô%Ñ&Ô&¨(Ò2Ð2Ð2Ð2Øð ØŒ{ÐÐˆ{Øð 
Ø Ð%Ð%Ð%Ð%Ýðð ð ð ð #ðñ ô ñ
ô 
ð 	
ð 	
ð 
ð
ð 
ð	
ð 	
r*   z%loader_func, data_dtype, target_dtypec                 ó@   —  | ¦   «         }t          || ||¬¦  «         d S )N)Úexpected_data_dtypeÚexpected_target_dtyper   )rë   Ú
data_dtypeÚtarget_dtypeÚdefault_results       r(   Útest_toy_dataset_frame_dtyper÷   8  s<   € ð !�[‘]”]€NÝØØØ&Ø*ð	ñ ô ð ð ð r*   c                  ó’   — t          d¬¦  «        } t          t          | ¦  «        ¦  «        }d|_        |d         |j        k    sJ ‚d S )NÚx)rù   Úy)r    r   r   rù   ©rè   Úbunch_from_pkls     r(   Útest_loads_dumps_bunchrý   M  sI   € Ý�CˆL‰LŒL€EÝ�5 ™<œ<Ñ(Ô(€NØ€NÔØ˜#Ô .Ô"2Ò2Ð2Ð2Ð2Ð2Ð2r*   c                  óì   — t          d¬¦  «        } d| j        d<   t          t          | ¦  «        ¦  «        }|j        dk    sJ ‚|d         dk    sJ ‚d|_        |j        dk    sJ ‚|d         dk    sJ ‚d S )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  T  s—   € Ý�jÐ!Ñ!Ô!€Eð 0€E„N�5ÑÝ�5 ™<œ<Ñ(Ô(€NàÔ Ò+Ð+Ð+Ð+Ø˜%Ô  JÒ.Ð.Ð.Ð.ð #€NÔØÔ Ò*Ð*Ð*Ð*Ø˜%Ô  IÒ-Ð-Ð-Ð-Ð-Ð-r*   c                  óH   — t          ¦   «         } dt          | ¦  «        v sJ ‚d S )Nrd   )r   rH   )rd   s    r(   Útest_bunch_dirr  i  s(   € å‰;Œ;€DØ•S˜‘Y”YÐÐÐÐÐÐr*   c                  óô   — d} t          j        t          | ¬¦  «        5  ddlm} ddd¦  «         n# 1 swxY w Y   d} t          j        t          | ¬¦  «        5  ddlm} ddd¦  «         dS # 1 swxY w Y   dS )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  o  s  € à
D€CÝ	Œ•{¨#Ð	.Ñ	.Ô	.ð 1ð 1Ø0Ð0Ð0Ð0Ð0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð O€CÝ	Œ•{¨#Ð	.Ñ	.Ô	.ð ;ð ;Ø:Ð:Ð:Ð:Ð:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s   ž1±5¸5ÁA-Á-A1Á4A1c           
      ó:  — d}t          d|d¦  «        }t          t          |dddt          j        ¦   «         ¬¦  «        ¬¦  «        }|                      d|¦  «         t          j        t          d	¬
¦  «        5 }t          j	        t          d¬
¦  «        5  t          |dd¬¦  «         ddd¦  «         n# 1 swxY w Y   |j        dk    sJ ‚|D ]}t          |j        ¦  «        d|› �k    sJ ‚Œ t          |¦  «        dk    sJ ‚	 ddd¦  «         dS # 1 swxY w Y   dS )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_countr=   Úmessager[   )Úmonkeypatchr  Úinvalid_remote_fileÚurlretrieve_mockÚrecordÚrs         r(   Ú1test_fetch_remote_raise_warnings_with_invalid_urlr)  {  sÝ  € ð E€CÝ,¨^¸SÀ$ÑGÔGÐÝÝØ˜# ;°T½b¼j¹l¼lð
ñ 
ô 
ðñ ô Ðð
 ×ÒÐ<Ð>NÑOÔOÐOå	Œ•kÐ)<Ð	=Ñ	=Ô	=ð  ÀÝŒ]�9Ð,<Ð=Ñ=Ô=ð 	Eð 	EÝÐ-¸À!ÐDÑDÔDÐDð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð  Ô*¨aÒ/Ð/Ð/Ð/àð 	Jð 	JˆAÝ�q”y‘>”>Ð%IÀCÐ%IÐ%IÒIÐIÐIÐIÐIÝ�6‰{Œ{˜aÒÐÐÐÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s7   Á8DÂB3Â'DÂ3B7	Â7DÂ:B7	Â;ADÄDÄDc                  ó¼  — t          d¦  «        \  } }| dk    sJ ‚|dk    sJ ‚t          d¦  «        \  } }| dk    sJ ‚|dk    sJ ‚t          d¦  «        \  } }| dk    sJ ‚|dk    sJ ‚t          d¦  «        \  } }| dk    sJ ‚|d	k    sJ ‚t          d
¦  «        \  } }| dk    sJ ‚|d	k    sJ ‚t          d¦  «        \  } }| dk    sJ ‚|dk    sJ ‚t          d¦  «        \  } }| dk    sJ ‚|dk    sJ ‚t          d¦  «        \  } }| dk    sJ ‚|dk    sJ ‚t          d¦  «        \  } }| dk    sJ ‚|dk    sJ ‚t          d¦  «        \  } }| dk    sJ ‚|dk    sJ ‚t          d¦  «        \  } }| dk    sJ ‚|dk    sJ ‚t          d¦  «        \  } }| dk    sJ ‚|d	k    sJ ‚t          j        t          d¬¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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_urlr0  ’  sC  € Ý;Ø)ñô Ñ€FˆHð �]Ò"Ð"Ð"Ð"Ø�}Ò$Ð$Ð$Ð$å;Ø<ñô Ñ€FˆHð �]Ò"Ð"Ð"Ð"ØÐ7Ò7Ð7Ð7Ð7å;Ø3ñô Ñ€FˆHð Ð*Ò*Ð*Ð*Ð*Ø�}Ò$Ð$Ð$Ð$å;Ð<RÑSÔSÑ€FˆHØ�]Ò"Ð"Ð"Ð"ØÐ(Ò(Ð(Ð(Ð(å;Ð<QÑRÔRÑ€FˆHØ�]Ò"Ð"Ð"Ð"ØÐ(Ò(Ð(Ð(Ð(å;Ø<ñô Ñ€FˆHð Ð*Ò*Ð*Ð*Ð*Ø�{Ò"Ð"Ð"Ð"å;Ø>ñô Ñ€FˆHð Ð*Ò*Ð*Ð*Ð*Ø�{Ò"Ð"Ð"Ð"å;Ø,ñô Ñ€FˆHð �]Ò"Ð"Ð"Ð"Ø�Ò&Ð&Ð&Ð&å;Ø)ñô Ñ€FˆHð �YÒÐÐÐØ�Ò&Ð&Ð&Ð&å;Ø1ñô Ñ€FˆHð �]Ò"Ð"Ð"Ð"Ø�Ò&Ð&Ð&Ð&å;Ø5ñô Ñ€FˆHð Ð&Ò&Ð&Ð&Ð&Ø�Ò&Ð&Ð&Ð&å;Ð<WÑXÔXÑ€FˆHØ�]Ò"Ð"Ð"Ð"ØÐ(Ò(Ð(Ð(Ð(å	Œ•z¨Ð	7Ñ	7Ô	7ð ;ð ;Ý,¨\Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s   Æ4GÇGÇGc                 ó.   ‡ — ˆ fd„}t          |¬¦  «        S )Nc                 óø   •— t          ‰¦  «        }t          | ¦  «        j                             d¦  «        }||z                       ¦   «         st          | ddd d ¦  «        ‚t          j        ||z  |¦  «         d S )Nú/r  r  )r   r   r&   ÚstriprX   r
   r5   Úcopy)r  Ú
local_pathÚserver_rootÚ	file_pathÚserver_sides       €r(   Ú_urlretrieve_mockz,_mock_urlretrieve.<locals>._urlretrieve_mockÚ  sx   ø€ Ý˜;Ñ'Ô'ˆÝ˜S‘M”MÔ&×,Ò,¨SÑ1Ô1ˆ	Ø˜iÑ'×/Ò/Ñ1Ô1ð 	?Ý˜C  k°4¸Ñ>Ô>Ð>ÝŒ�K )Ñ+¨ZÑ8Ô8Ð8Ð8Ð8r*   r  r   )r9  r:  s   ` r(   Ú_mock_urlretriever;  Ù  s0   ø€ ð9ð 9ð 9ð 9ð 9õ Ð-Ð.Ñ.Ô.Ð.r*   c                 ó<  — t          |¦  «        }|dz  }|                     ¦   «          |dz  }d}|                     |d¬¦  «         |dz  }|                     ¦   «          |dz  }|                     dd¬¦  «         |d	z  }|                     ¦   «          t          |¦  «        }|                      d
|¦  «         |                      dt          |¬¦  «        ¦  «         t          d¦  «        }	|	|dz  dz  k    sJ ‚|	                     d¬¦  «        |k    sJ ‚t          d¦  «        }	|	|dz  dz  dz  k    sJ ‚|	                     d¬¦  «        |                     d¦  «        k    sJ ‚t          j	        d¦  «        }
t          j        t          ¦  «        5  t          j        |
¬¦  «        5  t          dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |dz  dz  }t          |                     ¦   «         ¦  «        |dz  gk    sJ ‚d S )Nr9  ú
data.jsonlú{"a": 1, "b": 2}
ri   ©rl   Ú	subfolderzother_file.txtzSome important text data.rB   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$  Útmpdirr9  Ú	data_fileÚserver_dataÚserver_subfolderÚother_data_filerB   r&  Úfetched_file_pathÚexpected_warning_msgÚlocal_subfolders               r(   Útest_fetch_file_using_data_homerQ  ä  s  € Ý�&‰\Œ\€FØ˜=Ñ(€KØ×ÒÑÔÐØ˜lÑ*€IØ&€KØ×Ò˜¨wÐÑ7Ô7Ð7à" [Ñ0ÐØ×ÒÑÔÐØ&Ð)9Ñ9€OØ×ÒÐ:ÀWÐÑMÔMÐMà˜Ñ$€IØ‡O‚OÑÔÐå(¨Ñ5Ô5ÐØ×ÒÐ<Ð>NÑOÔOÐOà×ÒØ.µÀ)Ð0LÑ0LÔ0Lñô ð õ #Ø(ñô Ðð  	¨MÑ 9¸LÑ HÒHÐHÐHÐHØ×&Ò&°Ð&Ñ8Ô8¸KÒGÐGÐGÐGå"Ø6ñô Ðð 	˜Y¨Ñ6¸ÑDÐGWÑWÒWÐWÐWÐWà×&Ò&°Ð&Ñ8Ô8¸O×<UÒ<UØñ=ô =ò ð ð ð õ œ9ØOñô Ðõ 
Œ•yÑ	!Ô	!ð ð ÝŒ\Ð 4Ð5Ñ5Ô5ð 	ð 	ÝØ;Øðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð   -Ñ/°+Ñ=€OÝ�/×)Ò)Ñ+Ô+Ñ,Ô,°ÐCSÑ1SÐ0TÒTÐTÐTÐTÐTÐTs6   ÆGÆ)GÆ;GÇG	ÇGÇG	ÇGÇG"Ç%G"c                 óÀ  — |                      d¦  «        }t          |dz  ¦  «        }d}|                     |d¬¦  «         |                      d¦  «        }t          |¦  «        }|                      d|¦  «         t          d|¬	¦  «        }||dz  k    sJ ‚|                     d¬¦  «        |k    sJ ‚|j        d
k    sJ ‚t          d|¬	¦  «        }||dz  k    sJ ‚|                     d¬¦  «        |k    sJ ‚|j        d
k    sJ ‚|                     ¦   «          t          d|¬	¦  «        }||dz  k    sJ ‚|                     d¬¦  «        |k    sJ ‚|j        dk    sJ ‚d S )Nr9  r=  r>  ri   r?  Úclient_sider  rB  ©r/  rb   rc   )	r‚   r   rC  r;  r  r   rD  r"  Úunlink)r$  rI  r9  rJ  rK  rS  r&  rN  s           r(   Útest_fetch_file_without_sha256rV    sÓ  € Ø—,’,˜}Ñ-Ô-€KÝ�[ <Ñ/Ñ0Ô0€IØ&€KØ×Ò˜¨wÐÑ7Ô7Ð7à—,’,˜}Ñ-Ô-€Kå(¨Ñ5Ô5ÐØ×ÒÐ<Ð>NÑOÔOÐOõ #Ø(Øðñ ô Ðð  ¨lÑ :Ò:Ð:Ð:Ð:Ø×&Ò&°Ð&Ñ8Ô8¸KÒGÐGÐGÐGØÔ&¨!Ò+Ð+Ð+Ð+õ #Ø(Øðñ ô Ðð  ¨lÑ :Ò:Ð:Ð:Ð:Ø×&Ò&°Ð&Ñ8Ô8¸KÒGÐGÐGÐGØÔ&¨!Ò+Ð+Ð+Ð+ð ×ÒÑÔÐÝ"Ø(Øðñ ô Ðð  ¨lÑ :Ò:Ð:Ð:Ð:Ø×&Ò&°Ð&Ñ8Ô8¸KÒGÐGÐGÐGØÔ&¨!Ò+Ð+Ð+Ð+Ð+Ð+r*   c                 ó’  — |                      d¦  «        }t          |dz  ¦  «        }d}|                     |d¬¦  «         t          j        |                     ¦   «         ¦  «                             ¦   «         }|                      d¦  «        }t          |¦  «        }|                      d|¦  «         t          d||¬	¦  «        }||dz  k    sJ ‚| 
                    d¬¦  «        |k    sJ ‚|j        d
k    sJ ‚t          d||¬	¦  «        }||dz  k    sJ ‚| 
                    d¬¦  «        |k    sJ ‚|j        d
k    sJ ‚|                     dd¬¦  «         d|› d�}	t          j        |	¬¦  «        5  t          d||¬	¦  «        }||dz  k    sJ ‚| 
                    d¬¦  «        |k    sJ ‚|j        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          d||¬	¦  «        }||dz  k    sJ ‚| 
                    d¬¦  «        |k    sJ ‚|j        dk    sJ ‚|                     ¦   «          t          d||¬	¦  «        }||dz  k    sJ ‚| 
                    d¬¦  «        |k    sJ ‚|j        dk    sJ ‚t          d|¬¦  «        }||dz  k    sJ ‚| 
                    d¬¦  «        |k    sJ ‚|j        dk    sJ ‚d}
d}t          j        d|› d|
› d�¦  «        }t          j        t$          |¬¦  «        5  t          j        |¬¦  «        5  t          d||
¬	¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr9  r=  r>  ri   r?  rS  r  rB  )r/  Úsha256rb   zcorrupted contentszQSHA256 checksum of existing local file data.jsonl \(.*\) differs from expected \(z9\): re-downloading from https://example.com/data.jsonl \.r  rc   rª   rT  Údeadbabecafebeefzdiffers from expectedz#The SHA256 checksum of data.jsonl (z) differs from expected (z).)r‚   r   rC  ÚhashlibrX  Ú
read_bytesÚ	hexdigestr;  r  r   rD  r"  r  r   rU  rE  rF  r  ÚOSError)r$  rI  r9  rJ  rK  Úexpected_sha256rS  r&  rN  Úexpected_msgÚnon_matching_sha256rO  Úexpected_error_msgs                r(   Útest_fetch_file_with_sha256rb  @  s)  € Ø—,’,˜}Ñ-Ô-€KÝ�[ <Ñ/Ñ0Ô0€IØ&€KØ×Ò˜¨wÐÑ7Ô7Ð7Ý”n Y×%9Ò%9Ñ%;Ô%;Ñ<Ô<×FÒFÑHÔH€Oà—,’,˜}Ñ-Ô-€Kå(¨Ñ5Ô5ÐØ×ÒÐ<Ð>NÑOÔOÐOõ #Ø(°À_ðñ ô Ðð  ¨lÑ :Ò:Ð:Ð:Ð:Ø×&Ò&°Ð&Ñ8Ô8¸KÒGÐGÐGÐGØÔ&¨!Ò+Ð+Ð+Ð+õ #Ø(°À_ðñ ô Ðð  ¨lÑ :Ò:Ð:Ð:Ð:Ø×&Ò&°Ð&Ñ8Ô8¸KÒGÐGÐGÐGØÔ&¨!Ò+Ð+Ð+Ð+ð × Ò Ð!5ÀÐ ÑHÔHÐHð	AØ+:ð	Að 	Að 	Að õ
 
Œ˜LÐ	)Ñ	)Ô	)ð 0ð 0Ý&Ø,°[Èð
ñ 
ô 
Ðð ! K°,Ñ$>Ò>Ð>Ð>Ð>Ø ×*Ò*°GÐ*Ñ<Ô<ÀÒKÐKÐKÐKØÔ*¨aÒ/Ð/Ð/Ð/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ #Ø(°À_ðñ ô Ðð  ¨lÑ :Ò:Ð:Ð:Ð:Ø×&Ò&°Ð&Ñ8Ô8¸KÒGÐGÐGÐGØÔ&¨!Ò+Ð+Ð+Ð+ð ×ÒÑÔÐÝ"Ø(°À_ðñ ô Ðð  ¨lÑ :Ò:Ð:Ð:Ð:Ø×&Ò&°Ð&Ñ8Ô8¸KÒGÐGÐGÐGØÔ&¨!Ò+Ð+Ð+Ð+õ #Ø(Øðñ ô Ðð  ¨lÑ :Ò:Ð:Ð:Ð:Ø×&Ò&°Ð&Ñ8Ô8¸KÒGÐGÐGÐGØÔ&¨!Ò+Ð+Ð+Ð+ð -ÐØ2ÐÝœð	-¨oð 	-ð 	-Ø(ð	-ð 	-ð 	-ñô Ðõ 
Œ•wÐ&8Ð	9Ñ	9Ô	9ð ð ÝŒ\Ð 4Ð5Ñ5Ô5ð 	ð 	ÝØ0Ø"Ø*ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sI   Å1AGÇG	ÇG	Ë/L<ÌL$ÌL<Ì$L(	Ì(L<Ì+L(	Ì,L<Ì<M ÍM )WrZ  r  r3   rE  r5   rK   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"   r7   ÚfixturerB   rE   rR   rU   ÚmarkÚthread_unsafeÚparametrizerY   r`   rf   rr   rv   rˆ   r¤   r¯   r»   r¿   rÎ   rÑ   rÜ   rð   Úfloat64Úintr÷   rý   r  r  r  r)  r0  r;  rQ  rV  rb  r1   r*   r(   ú<module>ru     s‘  ðØ €€€Ø 	€	€	€	Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð >Ð =Ð =Ð =Ð =Ð =Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð ðð ð ð ð ñ ô ð ðð ð ð
 €„�hÐÑÔðð ñ  Ôðð €„�hÐÑÔðð ñ  Ôðð „ð$ð $ñ „ð$ð „ð$ð $ñ „ð$ð „ÔØ„×ÒÐ)¨D°$¸
Ð+CÑDÔDð%ð %ñ EÔDñ Ôð%ð&ð ð ð+ð +ð +ð*ð *ð *ð#ð #ð #ð „×ÒÐ-°°¸6À7Ð:KÐ/LÑMÔMðð ñ NÔMðð „×ÒØNà	˜#˜rÐ#DÐ#DÐ#DÐEØ	�S˜!ÐBÐBÐBÐCØ	˜c 2¨°XÐ'>Ð?ðñô ðNð Nñô ðNð>ð >ð >ð$ „×ÒØ&à	# R¨#¨r¨Ð3Ø	! 2¨ uÐ-Ø	˜;¨Ð,¨t°R¨jÐ9ðñô ð6ð 6ñô ð6ð
5ð 5ð 5ðMð Mð Mð Mð Mð Mðð ð ð  „×ÒØKà	˜Y¨°°4¸*¸ÐFØ	�I˜v q¨$°Ð3Ø	�H˜f a¨°
¨|Ð<àØØØØØÐ/Ð0ð	
ð 
˜	 6¨4°°rÐ:Ø	�j '¨2¨t°RÐ8Ø	ˆ� aÐ	(Ñ	(Ô	(¨*°g¸rÀ4ÈÐLðñô ð&
ð 
ñ'ô ð&
ð. „×ÒØ+à	˜RœZ¨Ð-Ø	˜œ
 B¤JÐ/Ø	�b”j #Ð&Ø	�B”J Ð$Ø	˜œ
 B¤JÐ/Ø	�B”J Ð$ðñ
ô 
ðð ñ
ô 
ðð3ð 3ð 3ð.ð .ð .ð*ð ð ð	;ð 	;ð 	;ð ð  ð  ð.D;ð D;ð D;ðN/ð /ð /ð1Uð 1Uð 1Uðh%,ð %,ð %,ðPSð Sð Sð Sð Sr*   