o
    l¨ÊhÍ™  ã                
   @   s0  d 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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ZddlmZmZmZmZ ddlmZmZ ddlmZmZmZ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#m%Z% ddl&m'Z'm(Z(m)Z)m*Z*m+Z+ g Z,dZ-e, .e-¡ e/Z0e, .e0¡ e1dƒZ2e, .e2¡ e3dƒZ4e, .e4¡ ze5dƒZ6e, .e6¡ W n	 e7yÀ   Y nw e8dƒZ9e, .e9¡ e:dƒZ;e, .e;¡ e<dƒZ=e, .e=¡ ze>dƒZ?e, .e?¡ W n	 e7yð   Y nw dZ@e, .e@¡ g ZAe, .eA¡ i ZBe, .eB¡ z	eCZDe, .eD¡ W n
 e7�y   Y nw z	eEZFe, .eF¡ W n
 e7�y-   Y nw eGZHe, .eH¡ dd„ ZIG dd„ dƒZJG dd„ deKƒZLe, .eI¡ e, .eJ¡ e, .eL¡ eJƒ ZMe, .eM¡ eLƒ ZNe, .eN¡ edddgƒede,ƒdd„ ƒƒZOdd„ ZPedddeQƒ gƒdd„ ƒZReedg d ¢ƒd!d"„ ƒƒZSed#d$„ ƒZTed%d&„ ƒZUed'd(„ ƒZVed)d*„ ƒZWed+d,„ ƒZXeed-g d.¢ƒd/d0„ ƒƒZYeeedd1d2gƒd3d4„ ƒƒƒZZed5d6„ ƒZ[d7d8„ Z\ed9d:„ ƒZ]ed;d<d=gƒd>d?„ ƒZ^ed@dAdBdC _dD¡fdEdF _dD¡fgƒdGdH„ ƒZ`edIdJdKgƒdLdM„ ƒZaeedg dN¢ƒedOe'ƒdPdQ„ ƒƒƒZbdRdS„ ZcdTdU„ ZdedVdWedfdXecfgƒdYdZ„ ƒZeed[g d\¢ƒd]d^„ ƒZfed_d`„ ƒZgedadb„ ƒZhedcdd„ ƒZiededf„ ƒZjedgdh„ ƒZkedidjdkdl _e lddm¡dm ¡ mdn¡ gdodpgdq�edrg ds¢ƒdtdu„ ƒƒZnedvdddwdxdi gƒdydz„ ƒZoed{g d|¢ƒd}d~„ ƒZpedddi gƒd€d�„ ƒZqedu�rÀG d‚dƒ„ dƒejrƒZsd„d…„ ZtG d†d‡„ d‡ƒZuedˆd‰„ ƒZvdŠd‹„ ZwedŒd�„ ƒZxedŽd�„ ƒZyed�d‘„ ƒZzed’d“„ ƒZ{d”d•„ Z|ed–ddi gƒd—d˜„ ƒZ}d™dš„ Z~G d›dœ„ dœe)ƒZG d�dž„ dže)ƒZ€dŸd „ Z�ed¡d¢„ ƒZ‚ed£d¤„ ƒZƒdS )¥z@Test the numpy pickler as a replacement of the standard pickler.é    N)Úclosing)ÚnpÚ
with_numpyÚwith_lz4Úwithout_lz4)Úwith_memory_profilerÚmemory_used)ÚparametrizeÚraisesÚSkipTestÚwarns)Únumpy_pickleÚregister_compressor)Údata)ÚPY3_OR_LATER)Ú_IO_BUFFER_SIZE)Ú_detect_compressor)Ú_COMPRESSORSÚ_LZ4_PREFIXÚCompressorWrapperÚLZ4_NOT_INSTALLED_ERRORÚBinaryZlibFileé   © c                 c   s   � | V  d S ©Nr   )Úxr   r   úO/var/www/html/env/lib/python3.10/site-packages/joblib/test/test_numpy_pickle.pyÚ	_functionX   s   €
r   c                   @   ó   e Zd Zdd„ ZdS )Ú_classc                 C   ó   d S r   r   ©Úselfr   r   r   Ú_method]   ó   z_class._methodN©Ú__name__Ú
__module__Ú__qualname__r#   r   r   r   r   r   \   ó    r   c                   @   r   )Ú	_newclassc                 C   r    r   r   r!   r   r   r   r#   b   r$   z_newclass._methodNr%   r   r   r   r   r*   a   r)   r*   ÚcompressÚmemberc                 C   sH   |   d¡j}tj|||d� t |¡}|t |¡kr ||ks"J ‚d S d S )Nútest.pkl©r+   )ÚjoinÚstrpathr   ÚdumpÚloadÚcopyÚdeepcopy)Útmpdirr+   r,   ÚfilenameÚ_memberr   r   r   Útest_standard_typesr   s   
ÿr8   c                   C   s<   t tƒ� t dtƒ ¡ W d   ƒ d S 1 sw   Y  d S )NÚfoo)r
   Ú
ValueErrorr   r1   Údictr   r   r   r   Útest_value_error   s   
"ÿr<   Úwrong_compresséÿÿÿÿé
   c                 C   sP   d  | ¡}ttƒ�}tjdd| d� W d   ƒ n1 sw   Y  | |¡ d S )Nz%Non valid compress level given: "{0}"Údummyr9   r.   )Úformatr
   r:   r   r1   Úmatch)r=   Úexception_msgÚexcinfor   r   r   Útest_compress_level_error…   s   ÿ
ÿrE   )FTr   é   Úzlibc                 C   sÚ  |   d¡j}tj d¡}| d¡}t|f|jf||f|||gfƒD ]E\}}tj	|||d�}t
|ƒdks5J ‚|d |ks=J ‚tj |d ¡sGJ ‚t |¡}|D ]
}	t|	tjƒsXJ ‚qNtj t |¡t |¡¡ q!t t d¡¡tj|d dd	tjd
�fD ]3}tj	|||d�}t
|ƒdks�J ‚t |¡}t|ƒtjur§t|dƒr§t|t|ƒƒs§J ‚tj ||¡ q{tƒ }tj	|||d�}t
|ƒdksÂJ ‚t |¡}
t|
t|ƒƒsÐJ ‚tj |
j|j¡ tj |
j|j¡ tj |
j|j¡ d S )Nr-   r   ©r?   é   r.   r   r?   Úmmapúw+é   )ÚmodeÚshapeÚdtypeÚ__array_prepare__)r/   r0   r   ÚrandomÚRandomStateÚrandom_sampleÚ	enumerateÚTr   r1   ÚlenÚosÚpathÚexistsr2   Ú
isinstanceÚndarrayÚtestingÚassert_array_equalÚarrayÚmatrixÚzerosÚmemmapÚfloatÚtypeÚhasattrÚComplexTestObjectÚarray_floatÚ	array_intÚ	array_obj)r5   r+   r6   ÚrndÚaÚindexÚobjÚ	filenamesÚobj_ÚitemÚ
obj_loadedr   r   r   Útest_numpy_persistence�   sB   
(

ÿÿ
ÿ
rq   c                 C   sL   t jtd t jd�}|  d¡j}tj||dd� t |¡}t j	 
||¡ d S )Néd   ©rO   r-   Tr.   )r   Úonesr   Úuint8r/   r0   r   r1   r2   r\   r]   )r5   Ú	big_arrayr6   Úarr_reloadedr   r   r   Ú2test_numpy_persistence_bufferred_array_compressionÅ   s
   
rx   c                 C   sØ  t j d¡}| d¡}|  d¡j}t ||¡ tj|dd�}t	|t j
ƒs&J ‚|  d¡j}tƒ }t ||¡ tj|dd�}t	|t|ƒƒsEJ ‚t	|jt j
ƒsNJ ‚|jjjrUJ ‚t	|jt j
ƒs^J ‚|jjjreJ ‚t	|jt j
ƒrnJ ‚t j |j|j¡ t j |j|j¡ t j |j|j¡ tj|dd�}|jjjs—J ‚d|jdd…< |jjjs¥J ‚d|jdd…< tj|dd�}t j |j|j¡ t j |j|j¡ tj|d	d� |jjjsÓJ ‚|jjdksÛJ ‚|jjjsâJ ‚|jjdksêJ ‚d S )
Nr   r?   z	test1.pklÚr©Ú	mmap_modez	test2.pklúr+g      $@rK   )r   rQ   rR   rS   r/   r0   r   r1   r2   rZ   ra   re   rc   rf   ÚflagsÚ	writeablerg   rh   r\   r]   rM   )r5   ri   rj   r6   Úbrl   rp   Úobj_reloadedr   r   r   Útest_memmap_persistenceÏ   sT   

ÿ
ÿ
ÿ
ÿ
ÿr�   c                 C   s~   t j d¡}| d¡}t jddgtd�}||f}|  d¡j}t 	||¡ tj
|dd�\}}t|t jƒs5J ‚t|t jƒr=J ‚d S )	Nr   r?   r   r   rs   r-   ry   rz   )r   rQ   rR   rS   r^   Úobjectr/   r0   r   r1   r2   rZ   ra   )r5   ri   rj   r   Ú	constructr6   Úa_cloneÚb_cloner   r   r   Ú$test_memmap_persistence_mixed_dtypes  s   
r†   c                 C   s`   t j d¡}| d¡}t j |d¡}|  d¡j}t 	||¡ tj
|dd�}t|t jjƒs.J ‚d S )Nr   r?   g      à?r-   ry   rz   )r   rQ   rR   rS   ÚmaÚmasked_greaterr/   r0   r   r1   r2   rZ   Úmasked_array)r5   ri   rj   r6   r   r   r   r   Útest_masked_array_persistence  s   
rŠ   c                 C   sœ   t j d¡}| d¡}|  d¡j}tj||dd� tt	ƒ�}tj
|dd� W d   ƒ n1 s/w   Y  t|ƒdks<J ‚t|d jƒd|dd	œ ksLJ ‚d S )
Nr   r?   r-   r   r.   r|   rz   ztmmap_mode "%(mmap_mode)s" is not compatible with compressed file %(filename)s. "%(mmap_mode)s" flag will be ignored.)r6   r{   )r   rQ   rR   rS   r/   r0   r   r1   r   ÚUserWarningr2   rV   ÚstrÚmessage)r5   ri   rj   Úthis_filenameÚwarninfor   r   r   Útest_compress_mmap_mode_warning!  s   

ÿþÿr�   Ú
cache_size)Nr   r?   c                 C   s¸   |   d¡j}tj d¡}| d¡}t d¡ td ƒ�}t	j
|||d� W d   ƒ n1 s-w   Y  |d ur8dnd}t|ƒ|ksBJ ‚|D ]}|jtksMJ ‚t|jƒd |¡ksYJ ‚qDd S )Nr-   r   rH   Úalways)r‘   r   zzPlease do not set 'cache_size' in joblib.dump, this parameter has no effect and will be removed. You used 'cache_size={0}')r/   r0   r   rQ   rR   rS   ÚwarningsÚsimplefilterr   r   r1   rV   ÚcategoryÚDeprecationWarningrŒ   r�   rA   )r5   r‘   r6   ri   rj   r�   Úexpected_nb_warningsÚwr   r   r   Útest_cache_size_warning1  s    


ÿ
ýþr™   TFc                 C   sÂ   |   d¡j}t d¡}tjdtdƒ tjd�}t |¡}t |¡}||||fD ]7}|jd }|ttj	 
dd¡ƒ }	ttj||	|d�}
td	 }|
|ksLJ ‚ttj|	ƒ}
d
t }|
|| k s^J ‚q'd S )Nr-   ©r?   r?   rr   g    €„.A©rN   rO   r   éè  r.   g�íµ ÷Æ0@é    )r/   r0   r   rt   Úintru   r_   ÚnbytesrŒ   rQ   Úrandintr   r   r1   r   r2   )r5   r+   r6   Úsmall_arrayrv   Úsmall_matrixÚ
big_matrixrl   ÚsizeÚobj_filenameÚmem_usedÚwrite_buf_sizeÚread_buf_sizer   r   r   Útest_memory_usageF  s"   



ÿñr©   c                 C   s*  t jdt  d¡d�t jdt  d¡d�t jdt  d¡d�t jdt  d¡d�t jdddd	d
œgdd�t jdt jd� ¡ t jg d¢t  d¡d�t jg d¢t  d¡d�dg	}|  d¡j}t	j
||dd�}t|ƒdkshJ ‚t	 |¡}t||ƒD ] \}}t|t jƒrŒ|j|jks„J ‚t j ||¡ qr||ks’J ‚qrd S )Né   ú<i8rs   z>i8ú<f8z>f8r   ÚabcrI   ©rj   r   ÚOé   ©r   r   rI   õ   C'est l'Ã©tÃ© !ztemp.pkl.gzr.   )r   ÚarangerO   r^   ru   Útostringr_   r/   r0   r   r1   rV   r2   ÚziprZ   r[   r\   Úassert_equal)r5   Úexpected_listÚfnameÚdumped_filenamesÚresult_listÚresultÚexpectedr   r   r   Ú$test_compressed_pickle_dump_and_loadc  s(   ò
ûr½   c              
   C   sü  t sO|  d¡s|  d¡r(ttƒ� t | ¡ W d  ƒ dS 1 s!w   Y  dS |  d¡rMttƒ�}t | ¡ W d  ƒ n1 sAw   Y  | d¡sMJ ‚dS t d| ¡}t	| 
d¡ƒ}tjd }d	d
dœ}| |d¡}| |d¡}||k�rQz�tdƒ�}	t d¡ tjdddd� t | ¡}
W d  ƒ n1 s™w   Y  tj | ¡}d|v s¬d|v r®dnd}t|	ƒ|ks¸J ‚|	D ]}|jtksÃJ ‚t|jƒd | ¡ksÏJ ‚qºt|
|ƒD ] \}}t|tjƒrï|j|jksçJ ‚tj  !||¡ qÕ||ksõJ ‚qÕW dS  t"�yP } zK|d
k�r|d	k�rt|tƒ�sJ ‚d}|t|ƒv �sJ ‚n|  d¡�r=t#j$d �r=t|tƒ�s3J ‚t%t|ƒv �s<J ‚n‚ W Y d}~dS W Y d}~dS d}~ww z	t | ¡ t&dƒ‚ t�y} } zd |¡}|t|j$ƒv �srJ ‚W Y d}~dS d}~ww )z�Helper function to test joblib pickle content.

    Note: currently only pickles containing an iterable are supported
    by this function.
    ú.xzú.lzmaNú.lz4ú/lz4 compression is only available with python3+z.+py(\d)(\d).+r   r   rI   rF   )rI   rF   rL   r’   ÚignoreÚnumpyz"The compiler package is deprecated)Úmoduler�   z_0.9z_0.8.4zkThe file '{0}' has been generated with a joblib version less than 0.10. Please regenerate this pickle file.zPYou may be trying to read with python 3 a joblib pickle generated with python 2.z>Numpy pickle loading should have raised a ValueError exceptionz unsupported pickle protocol: {0})'r   Úendswithr
   ÚNotImplementedErrorr   r2   r:   rB   Úrerž   ÚgroupÚsysÚversion_infoÚgetr   r“   r”   ÚfilterwarningsrW   rX   ÚbasenamerV   r•   r–   rŒ   r�   rA   rµ   rZ   r   r[   rO   r\   r¶   Ú	Exceptionr   Úargsr   ÚAssertionError)r6   r·   rD   Úversion_matchÚpy_version_used_for_writingÚpy_version_used_for_readingÚ%py_version_to_default_pickle_protocolÚpickle_reading_protocolÚpickle_writing_protocolr�   rº   Úfilename_baser—   r˜   r»   r¼   Úexcr�   Úer   r   r   Ú_check_pickle‚  sš   

ÿø
ú
ÿ

ÿÿ


þûÿÿ
ýû

û€õ
ÿ"€ýrÚ   c               	      s¶   t jdt  d¡d�t jdt  d¡d�t jdddddœgd	d�t jd
t jd� ¡ t jg d¢t  d¡d�dg} tj 	tj 
tj¡¡‰d‰ ‡ ‡fdd„t ˆ¡D ƒ}|D ]}t|| ƒ qQd S )Nrª   r«   rs   r¬   r   r­   rI   r®   r¯   r°   r±   r²   )ú.pklú.gzz.gzipú.bz2r¾   r¿   Úlz4c                    s0   g | ]‰ t ‡ fd d„ˆD ƒƒrtj ˆˆ ¡‘qS )c                 3   s   � | ]}ˆ   |¡V  qd S r   )rÅ   )Ú.0Úext©Úfnr   r   Ú	<genexpr>í  s   € zGtest_joblib_pickle_across_python_versions.<locals>.<listcomp>.<genexpr>)ÚanyrW   rX   r/   )rß   ©Úpickle_extensionsÚtest_data_dirrá   r   Ú
<listcomp>ë  s    þz=test_joblib_pickle_across_python_versions.<locals>.<listcomp>)r   r³   rO   r^   ru   r´   r_   rW   rX   ÚdirnameÚabspathr   Ú__file__ÚlistdirrÚ   )r·   Úpickle_filenamesr¸   r   rå   r   Ú)test_joblib_pickle_across_python_versionsÑ  s   õÿÿrî   Úcompress_tuple)rG   rF   ©ÚgziprF   c                 C   s`   |   d¡j}tjd||d� t|dƒ�}t|ƒ|d ksJ ‚W d   ƒ d S 1 s)w   Y  d S )Nr-   r@   r.   Úrbr   ©r/   r0   r   r1   Úopenr   )r5   rï   r6   Úfr   r   r   Útest_compress_tuple_argumentó  s   ÿ"ÿrö   zcompress_tuple,message))rG   rF   Úextraz9Compress argument tuple should contain exactly 2 elements)ÚwrongrF   z(Non valid compression method given: "{}"rø   )rG   rø   z$Non valid compress level given: "{}"c                 C   sR   |   d¡j}ttƒ�}tjd||d� W d   ƒ n1 sw   Y  | |¡ d S )Nr-   r@   r.   )r/   r0   r
   r:   r   r1   rB   )r5   rï   r�   r6   rD   r   r   r   Ú&test_compress_tuple_argument_exceptionþ  s
   
ÿrù   Úcompress_stringrG   rñ   c                 C   s\   |   d¡j}tjd||d� t|dƒ�}t|ƒ|ksJ ‚W d   ƒ d S 1 s'w   Y  d S )Nr-   r@   r.   rò   ró   )r5   rú   r6   rõ   r   r   r   Útest_compress_string_argument  s   ÿ"ÿrû   )r   rF   é   Úcmethodc              	   C   sh  |   d¡j}tjddd�tdƒdddœg d	i d
df}|d | }|D ]�}ts[|dv r[d |¡}t}|dkr7t}t	|ƒ�}	t
j||||fd� W d   ƒ n1 sPw   Y  |	 |¡ q"|dkrhtjd
 rhtdƒ‚t
j||||fd� t|dƒ�}
t|
ƒ|ks€J ‚W d   ƒ n1 sŠw   Y  t
 |¡}t|t|ƒƒs�J ‚t|tjƒr«tj ||¡ q"||ks±J ‚q"d S )Nr-   )rr   rr   Úf8r›   r?   r   r   )rj   rI   r   r   g      ð?Ú.)ÚlzmaÚxzrÞ   ú {} compression is only availablerÞ   r.   zlz4 is not installed.rò   )r/   r0   r   rt   Úranger   rA   rÆ   r:   r
   r   r1   rB   r   rÏ   r   rô   r   r2   rZ   rc   r[   r\   r]   )r5   r+   rý   r6   ÚobjectsÚdump_filenamerl   ÚmsgÚerrorrD   rõ   r€   r   r   r   Útest_joblib_compression_formats  s@   þ

ÿÿÿÿ
år  c                 C   sr   t t | d¡ƒ�}| ¡ }W d  ƒ n1 sw   Y  t|dƒ�}| |¡ W d  ƒ dS 1 s2w   Y  dS )zDecompress a gzip file.rò   NÚwb)r   rñ   ÚGzipFileÚreadrô   Úwrite©Úsource_filenameÚtarget_filenameÚfoÚbufr   r   r   Ú_gzip_file_decompress@  s   
ÿ"ÿr  c                 C   sr   t | dƒ�}t | ¡ ¡}W d  ƒ n1 sw   Y  t |dƒ�}| |¡ W d  ƒ dS 1 s2w   Y  dS )zDecompress a zlib file.rò   Nr	  )rô   rG   Ú
decompressr  r  r  r   r   r   Ú_zlib_file_decompressI  s   ÿ"ÿr  zextension,decompressú.zrÜ   c                 C   sH   d}|   d¡j}|| }t ||¡ |||ƒ t |¡}||ks"J ‚d S )Nza string to persistr-   )r/   r0   r   r1   r2   )r5   Ú	extensionr  rl   Úfilename_rawÚfilename_compressedr€   r   r   r   Ú'test_load_externally_decompressed_filesR  s   

r  zextension,cmethod))r  rG   )rÜ   rñ   )rÝ   Úbz2)r¿   r   )r¾   r  )rÛ   únot-compressed)Ú r  c           
      C   sâ   |   d¡j}d}|| }ts8|dv r8d |¡}ttƒ�}t ||¡ W d   ƒ n1 s,w   Y  | |¡ d S t ||¡ t	|dƒ�}t
|ƒ|ksLJ ‚W d   ƒ n1 sVw   Y  t |¡}	t|	t|ƒƒsiJ ‚|	|ksoJ ‚d S )Nr-   zobject to dump)r  r   r  rò   )r/   r0   r   rA   r
   rÆ   r   r1   rB   rô   r   r2   rZ   rc   )
r5   r  rý   r6   rl   Ú
dump_fnamer  rD   rõ   r€   r   r   r   Ú%test_compression_using_file_extensiong  s    

ÿÿ
r  c           
   
   C   sD  t j d¡dt  g d¢¡g}tjtjg}tr dd l}||j	g7 }|  
d¡j}|D ]w}|D ]r}||dƒ�}t ||¡ W d   ƒ n1 sDw   Y  ||dƒ�}t |¡}W d   ƒ n1 s^w   Y  t|dƒ�}t |¡}	W d   ƒ n1 sxw   Y  t|t jƒr’t j ||¡ t j |	|¡ q,||ks˜J ‚|	|ksžJ ‚q,q(d S )Nrš   ú	some datar±   r   r-   r	  rò   )r   rQ   r_   r  ÚBZ2Filerñ   r
  r   r   ÚLZMAFiler/   r0   r   r1   r2   rô   rZ   r[   r\   r]   )
r5   ÚobjsÚfobjsr   r6   rl   Úfobjrõ   r€   Úobj_reloaded_2r   r   r   Útest_file_handle_persistenceˆ  s6   
þÿÿÿíÿr&  c                  C   sp   t j d¡dt  g d¢¡g} | D ]%}t ¡ }t ||¡ t |¡}t|t j	ƒr/t j
 ||¡ q||ks5J ‚qd S )Nrš   r  r±   )r   rQ   r_   ÚioÚBytesIOr   r1   r2   rZ   r[   r\   r]   )r"  rl   rõ   r€   r   r   r   Útest_in_memory_persistenceª  s   
þ
ùr)  c                 C   s˜   t j d¡}|  d¡j}t|dƒ�}t ||¡ W d   ƒ n1 s"w   Y  t|dƒ�}tj|dd�}W d   ƒ n1 s>w   Y  t j 	||¡ d S )Nrš   r-   r	  rò   r|   rz   )
r   rQ   r/   r0   rô   r   r1   r2   r\   r]   )r5   rl   r6   rõ   r€   r   r   r   Ú!test_file_handle_persistence_mmap¹  s   ÿÿr*  c              	   C   sî   t j d¡}|  d¡j}t|dƒ�}tj||dd� W d   ƒ n1 s$w   Y  tt 	|d¡ƒ�<}t
tƒ�}tj|dd� W d   ƒ n1 sHw   Y  t|ƒd	ksUJ ‚t|d
 jƒd|ddœ kseJ ‚W d   ƒ d S 1 spw   Y  d S )Nrš   r-   r	  rð   r.   rò   r|   rz   r   r   zP"%(fileobj)r" is not a raw file, mmap_mode "%(mmap_mode)s" flag will be ignored.)Úfileobjr{   )r   rQ   r/   r0   rô   r   r1   r   rñ   r
  r   r‹   r2   rV   rŒ   r�   )r5   rl   r6   rõ   r�   r   r   r   Ú,test_file_handle_persistence_compressed_mmapÇ  s    ÿ
ÿÿ
ÿ"ür,  c                  C   sˆ   t j d¡} t ¡ }t | |¡ ttƒ�}tj|dd� W d   ƒ n1 s&w   Y  t	|ƒdks3J ‚t
|d jƒdddi ksBJ ‚d S )Nrš   r|   rz   r   r   zuIn memory persistence is not compatible with mmap_mode "%(mmap_mode)s" flag passed. mmap_mode option will be ignored.r{   )r   rQ   r'  r(  r   r1   r   r‹   r2   rV   rŒ   r�   )rl   r  r�   r   r   r   Ú+test_file_handle_persistence_in_memory_mmapØ  s   
ÿþÿr-  r   s   a little data as bytes.i'  z{}rœ   zlatin-1za little data as bytes.za large data as bytes.)ÚidsÚcompress_level)r   rF   é	   c              
   C   s  |   d¡j}t|dƒ�ƒ}t|d|d��O}| ¡ sJ ‚| |¡ | ¡ | ¡ ks)J ‚ttj	ƒ� | 
¡  W d   ƒ n1 s=w   Y  ttj	ƒ� | ¡  W d   ƒ n1 sVw   Y  W d   ƒ n1 sew   Y  |jsoJ ‚ttƒ� | ¡  W d   ƒ n1 s‚w   Y  W d   ƒ n1 s‘w   Y  t|dƒ�p}t|ƒ�V}| ¡ s§J ‚tr¯| ¡ s¯J ‚| ¡ | ¡ ks¹J ‚| ¡ |ksÁJ ‚ttj	ƒ� | ¡  W d   ƒ n1 sÕw   Y  trï| ¡ sâJ ‚| d¡ | ¡ dksïJ ‚W d   ƒ n1 sùw   Y  |j�sJ ‚W d   ƒ n	1 �sw   Y  t|d|d��}| ¡ �s#J ‚| |¡ W d   ƒ n	1 �s3w   Y  t|dƒ�}| ¡ |k�sGJ ‚| ¡ �sNJ ‚W d   ƒ n	1 �sYw   Y  t|d|d�}| ¡ �slJ ‚| |¡ | ¡  t|dƒ}| ¡ |k�sƒJ ‚| ¡  d S )Nr-   r	  ©Úcompresslevelrò   r   )r/   r0   rô   r   Úwritabler  Úfilenor
   r'  ÚUnsupportedOperationÚ_check_can_readÚ_check_can_seekÚclosedr:   Ú_check_not_closedÚreadabler   Úseekabler  Ú_check_can_writeÚseekÚtellÚclose)r5   r   r/  r6   rõ   Úfzr   r   r   Útest_binary_zlibfileè  sv   ÿ

ÿ
ÿ€ø



ÿ€ô

ÿ
€óñÿýþ

rA  Ú	bad_valueé   rj   c                 C   s`   |   d¡j}ttƒ�}t|d|d� W d   ƒ n1 sw   Y  t d |¡¡}| |¡ d S )Nr-   r	  r1  zS'compresslevel' must be an integer between 1 and 9. You provided 'compresslevel={}')	r/   r0   r
   r:   r   rÇ   ÚescaperA   rB   )r5   rB  r6   rD   Úpatternr   r   r   Ú+test_binary_zlibfile_bad_compression_levels&  s   
ÿÿrF  Úbad_mode)rj   r   ry   r˜   r   rI   c                 C   sL   |   d¡j}ttƒ�}t||ƒ W d   ƒ n1 sw   Y  | d¡ d S )Nr-   zInvalid mode)r/   r0   r
   r:   r   rB   )r5   rG  r6   rD   r   r   r   Ú"test_binary_zlibfile_invalid_modes0  s
   
ÿrH  Úbad_filec                 C   s@   t tƒ�}t| dƒ W d   ƒ n1 sw   Y  | d¡ d S )Nrò   z1filename must be a str or bytes object, or a file)r
   Ú	TypeErrorr   rB   )rI  rD   r   r   r   Ú*test_binary_zlibfile_invalid_filename_type8  s   
ÿrK  c                   @   r   )ÚSubArrayc                 C   s   t t | ¡ffS r   )Ú_load_sub_arrayr   Úasarrayr!   r   r   r   Ú
__reduce__E  s   zSubArray.__reduce__N)r&   r'   r(   rO  r   r   r   r   rL  C  ó    rL  c                 C   s   t | jƒ}| |d d …< |S r   )rL  rN   )ÚarrÚdr   r   r   rM  H  s   
rM  c                   @   s   e Zd ZdZdd„ ZdS )re   z7A complex object containing numpy arrays as attributes.c                 C   s8   t jddd�| _t jddd�| _t jg d¢dd�| _d S )Nrr   Úfloat64rs   Úint32)rj   r?   g      4@r‚   )r   r³   rf   rt   rg   r^   rh   r!   r   r   r   Ú__init__P  s   zComplexTestObject.__init__N)r&   r'   r(   Ú__doc__rU  r   r   r   r   re   M  s    re   c                 C   sJ   |   d¡j}tdƒ}t ||¡ t |¡}t|tƒsJ ‚tj 	||¡ d S )Nr-   )r?   )
r/   r0   rL  r   r1   r2   rZ   r   r\   r]   )r5   r6   rj   Úcr   r   r   Útest_numpy_subclassV  s   
rX  c                 C   s~   zddl m} W n
 ty   Y d S w |  d¡j}d}t |||ƒ¡ t |¡|ks,J ‚t ||¡ t ||ƒ¡|ks=J ‚d S )Nr   )ÚPathr-   é{   )ÚpathlibrY  ÚImportErrorr/   r0   r   r1   r2   )r5   rY  r6   Úvaluer   r   r   Útest_pathlib`  s   ÿr^  c                 C   s”   |   d¡j}t ddgddgg¡dd … tjddd�d d …d d…d d …f fD ] }|jjr/J ‚|jjr5J ‚t 	||¡ t 
|¡}tj ||¡ q'd S )	Nr-   r   rI   rF   rL   )r?   é2   é   ÚF)Úorder)r/   r0   r   Úasfortranarrayrt   r}   Úc_contiguousÚf_contiguousr   r1   r2   r\   r]   )r5   r6   r^   Úarray_reloadedr   r   r   Ú"test_non_contiguous_array_picklingn  s   "û
örg  c                 C   sD   |   d¡j}t d¡}tj||tjd� t |¡}tj	 
||¡ d S )Nr-   r?   )Úprotocol)r/   r0   r   r`   r   r1   ÚpickleÚHIGHEST_PROTOCOLr2   r\   r]   )r5   r6   Ú
test_arrayrf  r   r   r   Útest_pickle_highest_protocol  s
   

rl  c            	      C   sÐ   t stdƒ‚t d¡} d}t tjtj¡}| |¡ | d¡ t 	|¡}| 
¡ \}}| d¡�}t | |¡ W d   ƒ n1 s@w   Y  | d¡�}t |¡}W d   ƒ n1 sZw   Y  tj || ¡ d S )Nz*Cannot peek or seek in socket in python 2.r?   )Ú	localhosti90  r   r	  rò   )r   r   r   r³   ÚsocketÚAF_INETÚSOCK_STREAMÚbindÚlistenÚcreate_connectionÚacceptÚmakefiler   r1   r2   r\   r]   )	rk  Ú_ADDRÚlistenerÚclientÚserverÚclient_addrÚsfÚcfrf  r   r   r   Útest_pickle_in_socketŽ  s    



ÿÿr}  c                 C   s€   |   d¡j}tj}tj|dd�tj|dd�g}t ||¡ tj	|dd�}t
|d tjƒs.J ‚|d j|ks7J ‚tj ||¡ d S )Nz	test.mmapru   rs   ry   rz   r   )r/   r0   rJ   ÚALLOCATIONGRANULARITYr   r`   rt   r   r1   r2   rZ   ra   Úoffsetr\   r]   )r5   r¸   r¤   rl   Úmemmapsr   r   r   Ú test_load_memmap_with_big_offset¦  s   r�  c                    sn   d}d‰G dd„ dt jƒ‰ G ‡ ‡fdd„dtƒ}t||ƒ ƒ t| jˆ ks'J ‚t| jˆks0J ‚t |¡ d S )Nú	test-nameztest-prefixc                   @   ó   e Zd ZdS )z:test_register_compressor.<locals>.BinaryCompressorTestFileN©r&   r'   r(   r   r   r   r   ÚBinaryCompressorTestFile»  ó    r…  c                       s   e Zd Z‡ ‡fdd„ZdS )z=test_register_compressor.<locals>.BinaryCompressorTestWrapperc                    s   t j| ˆ ˆd� d S )N©rl   Úprefix©r   rU  r!   ©r…  Úcompressor_prefixr   r   rU  À  ó   
ÿzFtest_register_compressor.<locals>.BinaryCompressorTestWrapper.__init__N©r&   r'   r(   rU  r   rŠ  r   r   ÚBinaryCompressorTestWrapper¾  s    rŽ  )r'  ÚBufferedIOBaser   r   r   Úfileobj_factoryrˆ  Úpop)r5   Úcompressor_namerŽ  r   rŠ  r   Útest_register_compressor¶  s   ÿr“  Úinvalid_namec                 C   s@   t tƒ�}t| d ƒ W d   ƒ n1 sw   Y  | d¡ d S )Nz"Compressor name should be a string)r
   r:   r   rB   )r”  rD   r   r   r   Ú%test_register_compressor_invalid_nameÏ  s   
ÿr•  c                     sd   G dd„ dƒ‰ G ‡ fdd„dt ƒ} ttƒ�}td| ƒ ƒ W d   ƒ n1 s&w   Y  | d¡ d S )Nc                   @   rƒ  )zCtest_register_compressor_invalid_fileobj.<locals>.InvalidFileObjectNr„  r   r   r   r   ÚInvalidFileObjectÚ  r†  r–  c                       s   e Zd Z‡ fdd„ZdS )zJtest_register_compressor_invalid_fileobj.<locals>.InvalidFileObjectWrapperc                    s   t j| ˆ dd� d S ©Ns   prefixr‡  r‰  r!   ©r–  r   r   rU  Þ  rŒ  zStest_register_compressor_invalid_fileobj.<locals>.InvalidFileObjectWrapper.__init__Nr�  r   r˜  r   r   ÚInvalidFileObjectWrapperÝ  s    r™  ÚinvalidzQCompressor 'fileobj_factory' attribute should implement the file object interface)r   r
   r:   r   rB   )r™  rD   r   r˜  r   Ú(test_register_compressor_invalid_fileobj×  s   
ÿr›  c                   @   r   )ÚAnotherZlibCompressorWrapperc                 C   s   t j| tdd� d S r—  )r   rU  r   r!   r   r   r   rU  ë  s   z%AnotherZlibCompressorWrapper.__init__Nr�  r   r   r   r   rœ  é  rP  rœ  c                   @   r   )Ú StandardLibGzipCompressorWrapperc                 C   s   t j| tjdd� d S r—  )r   rU  rñ   r
  r!   r   r   r   rU  ñ  s   z)StandardLibGzipCompressorWrapper.__init__Nr�  r   r   r   r   r�  ï  rP  r�  c                  C   s’   d} t | tƒ ƒ ttƒ�}t | tƒ ƒ W d   ƒ n1 sw   Y  | d | ¡¡ t | tƒ dd� | tv s8J ‚t|  jt	j
ksBJ ‚t | ¡ d S )Nr‚  z#Compressor '{}' already registered.T)Úforce)r   rœ  r
   r:   r�  rB   rA   r   r�  rñ   r
  r‘  )r’  rD   r   r   r   Ú+test_register_compressor_already_registeredõ  s    
ÿÿÿÿrŸ  c                 C   s  dd l }d}|tv sJ ‚t| j|jjksJ ‚|  d¡j}d}tj|||d� t	|dƒ�}| 
ttƒ¡tks8J ‚W d   ƒ n1 sBw   Y  t |¡|ksPJ ‚t ||d ¡ t	|dƒ�}| 
ttƒ¡tksiJ ‚W d   ƒ n1 ssw   Y  t |¡|ks�J ‚d S )Nr   rÞ   r-   ú	test datar.   rò   rÀ   )Ú	lz4.framer   r�  ÚframeÚLZ4FrameFiler/   r0   r   r1   rô   r  rV   r   r2   )r5   rÞ   Ú
compressorr¸   r   rõ   r   r   r   Útest_lz4_compression  s    ÿÿr¥  c                 C   s¤   |   d¡j}d}t}tsd}ttƒ�}tj||dd� W d   ƒ n1 s%w   Y  | |¡ ttƒ�}t ||d ¡ W d   ƒ n1 sFw   Y  | |¡ d S )Nz
test.nolz4r   rÁ   rÞ   r.   rÀ   )	r/   r0   r   r   r
   r:   r   r1   rB   )r5   r¸   r   r  rD   r   r   r   Ú test_lz4_compression_without_lz4$  s   
ÿ

ÿr¦  )„rV  r3   rW   rQ   rÉ   rÇ   r'  r“   rñ   rG   r  ri  rn  Ú
contextlibr   rJ   Újoblib.test.commonr   r   r   r   r   r   Újoblib.testingr	   r
   r   r   Újoblibr   r   Újoblib.testr   Újoblib._compatr   Újoblib.numpy_pickle_utilsr   r   Újoblib.compressorr   r   r   r   r   ÚtypelistÚ_noneÚappendrc   Ú_typeÚboolÚ_boolrž   Ú_intÚlongÚ_longÚ	NameErrorrb   Ú_floatÚcomplexÚ_complexrŒ   Ú_stringÚunicodeÚ_unicodeÚ_tupleÚ_listÚ_dictÚfileÚ_fileÚbufferÚ_bufferrV   Ú_builtinr   r   r‚   r*   Ú	_instanceÚ_objectr8   r<   r;   rE   rq   rx   r�   r†   rŠ   r�   r™   r©   r½   rÚ   rî   rö   rA   rù   rû   r  r  r  r  r  r&  r)  r*  r,  r-  r    ÚencoderA  rF  rH  rK  r[   rL  rM  re   rX  r^  rg  rl  r}  r�  r“  r•  r›  rœ  r�  rŸ  r¥  r¦  r   r   r   r   Ú<module>   sˆ   



þ


þ


ÿþ






	4
	
1



O
!

ÿÿüÿ


%		ÿÿ
þ


!



ÿÿþü8
	


	
	





