
    3[g                     P
   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 	 ddl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 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) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/ g Z0dZ1e0je                  e1       e3Z4e0je                  e4        e5d      Z6e0je                  e6        e7d      Z8e0je                  e8        e9d      Z:e0je                  e:        e;d      Z<e0je                  e<        e=d      Z>e0je                  e>       dZ?e0je                  e?       g Z@e0je                  e@       i ZAe0je                  eA       eBZCe0je                  eC       d ZD G d d      ZE G d deF      ZGe0je                  eD       e0je                  eE       e0je                  eG        eE       ZHe0je                  eH        eG       ZIe0je                  eI        edddg       ede0      d               ZJd ZK eddd eL       g      d        ZMe edg d      d               ZNed         ZOed!        ZPed"        ZQed#        ZRed$        ZSe ed%g d&      d'               ZTee edd(d)g      d*                      ZUed+        ZVd~d,ZWed-        ZXed.        ZYed/        ZZ ed0d1d2g      d3        Z[ ed4d5d6d7j                  d8      fd9d:j                  d8      fg      d;        Z] ed<d=d>g      d?        Z^e edg d@       edAe+      dB                      Z_dC Z`dD Za edEdFeafdGe`fg      dH        Zb edIg dJ      dK        ZcedL        ZdedM        ZeedN        ZfedO        ZgedP        Zh edQdRdSdTj                   ej                  ddU      dUz        j                  dV      z  gdWdXgY       edZg d[      d\               Zk ed]ddd^d_di g      d`        Zl edag db      dc        Zm eddddi g      de        Zne" G df dgej                        Zpdh Zq G di dj      Zredk        Zsdl Ztedm        Zuedn        Zvedo        Zwedp        Zxdq Zy edrddi g      ds        Zzdt Z{ G du dve-      Z| G dw dxe-      Z}dy Z~edz        Zed{        Zej                  gZej                  ej                  k7  reje                  ej                         e ed|e      d}               Zy# e$ r dZY w xY w)z@Test the numpy pickler as a replacement of the standard pickler.    N)closing)Path)np
with_numpywith_lz4without_lz4)with_memory_profilermemory_used)parametrizeraiseswarns)numpy_pickleregister_compressor)data)_IO_BUFFER_SIZE)_detect_compressor)#_is_numpy_array_byte_order_mismatch)_ensure_native_byte_order)_COMPRESSORS_LZ4_PREFIXCompressorWrapperLZ4_NOT_INSTALLED_ERRORBinaryZlibFile    c              #      K   |  y wNr   )xs    X/var/www/html/bid-api/venv/lib/python3.12/site-packages/joblib/test/test_numpy_pickle.py	_functionr    K   s     
Gs   c                       e Zd Zd Zy)_classc                      y r   r   selfs    r   _methodz_class._methodP           N__name__
__module____qualname__r&   r   r(   r   r"   r"   O       r(   r"   c                       e Zd Zd Zy)	_newclassc                      y r   r   r$   s    r   r&   z_newclass._methodU   r'   r(   Nr)   r   r(   r   r/   r/   T   r-   r(   r/   compressmemberc                     | j                  d      j                  }t        j                  |||       t        j                  |      }|t        j                  |      k(  r||k(  sJ y y )Ntest.pklr1   )joinstrpathr   dumploadcopydeepcopy)tmpdirr1   r2   filename_members        r   test_standard_typesr?   e   s`     {{:&..Hfh:)G v&&    'r(   c                      t        t              5  t        j                  dt	                      d d d        y # 1 sw Y   y xY w)Nfoo)r   
ValueErrorr   r8   dictr   r(   r   test_value_errorrD   r   s(    	
	%( 
		s	   8Awrong_compress
   c                     dj                  |       }t        t              5 }t        j                  dd|        d d d        j                  |       y # 1 sw Y   xY w)Nz%Non valid compress level given: "{0}"dummyrA   r5   )formatr   rB   r   r8   match)rE   exception_msgexcinfos      r   test_compress_level_errorrN   x   sL    #VN3 	
	w'5>B 
MM-  
	s   AA)FTr      zlibc                    | j                  d      j                  }t        j                  j	                  d      }|j                  d      }t        |f|j                  f||f|||gf      D ]  \  }}t        j                  |||      }t        |      dk(  sJ |d   |k(  sJ t        j                  j                  |d         sJ t        j                  |      }|D ]  }	t        |	t        j                         rJ  t        j"                  j%                  t        j&                  |      t        j&                  |              t        j(                  |dz   ddt        j*                  	      }t        j                  |||      }t        |      dk(  sJ t        j                  |      }t-        |      t        j(                  ur#t/        |d
      rt        |t-        |            sJ t        j"                  j%                  ||       t1               }t        j                  |||      }t        |      dk(  sJ t        j                  |      }
t        |
t-        |            sJ t        j"                  j%                  |
j2                  |j2                         t        j"                  j%                  |
j4                  |j4                         t        j"                  j%                  |
j6                  |j6                         y )Nr4   r   rG      r5   r   mmapw+   )modeshapedtype__array_prepare__)r6   r7   r   randomRandomStaterandom_sample	enumerateTr   r8   lenospathexistsr9   
isinstancendarraytestingassert_array_equalarraymemmapfloat64typehasattrComplexTestObjectarray_float	array_int	array_obj)r<   r1   r=   rndaindexobj	filenamesobj_item
obj_loadeds              r   test_numpy_persistencery      s[    {{:&..H
))


"C'"A!v1v1ay AB
s %%c8hG	 9~"""|x'''ww~~il+++   *DdBJJ///  	

%%bhhsmRXXd^D! C& ))Hv%D
LC!!#x(CIy>QX&DS	"C,-$S	***JJ!!$, 
C!!#x(CIy>Q""8,Jj$s),,,JJ!!*"8"8#//JJJ!!*"6"6FJJ!!*"6"6Fr(   c                 ,   t        j                  t        dz   t         j                        }| j	                  d      j
                  }t        j                  ||d       t        j                  |      }t         j                  j                  ||       y )Nd   rY   r4   Tr5   )r   onesr   uint8r6   r7   r   r8   r9   rf   rg   )r<   	big_arrayr=   arr_reloadeds       r   2test_numpy_persistence_bufferred_array_compressionr      se    3.rxx@I{{:&..HiD9$$X.LJJ!!)\:r(   c                    t         j                  j                  d      }|j                  d      }| j	                  d      j
                  }t        j                  ||       t        j                  |d      }t        |t         j                        sJ | j	                  d      j
                  }t               }t        j                  ||       t        j                  |d      }t        |t        |            sJ t        |j                  t         j                        sJ |j                  j                  j                  rJ t        |j                   t         j                        sJ |j                   j                  j                  rJ t        |j"                  t         j                        rJ t         j$                  j'                  |j                  |j                         t         j$                  j'                  |j                   |j                          t         j$                  j'                  |j"                  |j"                         t        j                  |d      }|j                  j                  j                  sJ d|j                  dd |j                   j                  j                  sJ d|j                   dd t        j                  |d      }t         j$                  j'                  |j                  |j                         t         j$                  j'                  |j                   |j                          t        j                  |d	       |j                   j                  j                  sJ |j                   j(                  dk(  sJ |j                  j                  j                  sJ |j                  j(                  dk(  sJ y )
Nr   rG   z	test1.pklr	mmap_modez	test2.pklr+g      $@rU   )r   r[   r\   r]   r6   r7   r   r8   r9   rd   ri   rm   rk   rn   flags	writeablero   rp   rf   rg   rW   )r<   rq   rr   r=   brt   rx   obj_reloadeds           r   test_memmap_persistencer      s   
))


"C"A{{;'//Ha"(c2Aa### {{;'//H

Cc8$""8s;Jj$s),,,j,,bii888%%++5555j**BII666##))3333*..		:::JJ!!*"8"8"%//3JJ!!*"6"6"%--1JJ!!*"6"6"%--1 ""8t<J!!''1111#'J1R %%////!#J2$$X=LJJ!!,":":","8"8:JJ!!,"8"8","6"68 h$/%%////$$,,,!!''1111!!&&$...r(   c                    t         j                  j                  d      }|j                  d      }t        j                  ddgt
              }||f}| j                  d      j                  }t        j                  ||       t        j                  |d      \  }}t        |t         j                        sJ t        |t         j                        rJ y )	Nr   rG   r   r   r|   r4   r   r   )r   r[   r\   r]   rh   objectr6   r7   r   r8   r9   rd   ri   )r<   rq   rr   r   	constructr=   a_cloneb_clones           r   $test_memmap_persistence_mixed_dtypesr      s     ))


"C"A
!S(AAI{{:&..Hi*#((SAGW gryy))) '299----r(   c                    t         j                  j                  d      }|j                  d      }t         j                  j                  |d      }| j                  d      j                  }t        j                  ||       t        j                  |d      }t        |t         j                  j                        sJ y )Nr   rG   g      ?r4   r   r   )r   r[   r\   r]   mamasked_greaterr6   r7   r   r8   r9   rd   masked_array)r<   rq   rr   r=   r   s        r   test_masked_array_persistencer     s     ))


"C"A
Q$A{{:&..Ha"(c2Aa++,,,r(   c                 .   t         j                  j                  d      }|j                  d      }| j	                  d      j
                  }t        j                  ||d       t        t              5 }t        j                  |d       d d d        dj	                  D cg c]  }t        |       c}      }|D cg c]  }|j                   }}t        |      dk(  sJ |       t        |d         d	| d
k(  sJ y # 1 sw Y   wxY wc c}w c c}w )Nr   rG   r4   r   r5   r   r   
z6mmap_mode "r+" is not compatible with compressed file z. "r+" flag will be ignored.)r   r[   r\   r]   r6   r7   r   r8   r   UserWarningr9   strmessager`   )r<   rq   rr   this_filenamewarninfow	debug_msgs          r   test_compress_mmap_mode_warningr     s     ))


"C"AKK
+33Ma3	{	x-48 
		848a3q6845I#+,8a		8H,x=A(y(HQK	:	<	<	< 
	4,s   3D"D?DD

cache_size)Nr   rG   c                     | j                  d      j                  }t        j                  j	                  d      }|j                  d      }t        j                  d       t        j                  d      5 }t        j                  |||       d d d        |dnd}t              |k(  sJ |D ]@  }|j                  t        k(  sJ t        |j                        d	j!                  |      k(  r@J  y # 1 sw Y   exY w)
Nr4   r   rR   alwaysTrecord)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}')r6   r7   r   r[   r\   r]   warningssimplefiltercatch_warningsr   r8   r`   categoryDeprecationWarningr   r   rJ   )r<   r   r=   rq   rr   r   expected_nb_warningsr   s           r   test_cache_size_warningr   %  s     {{:&..H
))


"C'"A(#		 	 	-!X*= 
. * 61Ax=0000zz////AII((.z(:; 	< ; 	 
.	-s   7C44C=TFc                    | j                  d      j                  }t        j                  d      }t        j                  dt	        d      z  t        j
                        }||fD ]  }|j                  dz  }|t        t        j                  j                  dd            z   }t        t        j                  |||      }t        d	z   }	||	k  sJ t        t        j                  |      }d
t        z   }
|||
z   k  rJ  y )Nr4   rG   rG   r{   g    .ArX   rY   r     r5   g0@    )r6   r7   r   r}   intr~   nbytesr   r[   randintr
   r   r8   r   r9   )r<   r1   r=   small_arrayr   rt   sizeobj_filenamemem_usedwrite_buf_sizeread_buf_sizes              r   test_memory_usager   :  s    
 {{:&..H''(#KcCHnBHH=IY'zzC#bii&7&74&@"AA|00"L8E
 )+??>)))|00,? _,$.... (r(   c                    t        j                  dt        j                  d            t        j                  dt        j                  d            t        j                  dt        j                  d            t        j                  dt        j                  d            t        j                  dddd	d
gd      t        j                  dt         j                        j                         dg}| j                  d      j                  }t        j                  ||d      }t        |      dk(  sJ t        j                  |      }t        ||      D ]m  \  }}t        |t         j                        rGt        |      }|j                  |j                  k(  sJ t         j                   j#                  ||       g||k(  rmJ  y )N   <i8r|   >i8<f8>f8r   abcrS   rr   r   O      C'est l'été !ztemp.pkl.gzr5   )r   arangerY   rh   r~   tobytesr6   r7   r   r8   r`   r9   ziprd   re   r   rf   assert_equal)r<   expected_listfnamedumped_filenamesresult_listresultexpecteds          r   $test_compressed_pickle_dump_and_loadr   U  sN   YYq8YYq8YYq8YYq8XXq%qq)9:#FYYs"((3;;=+-M KK&..E#((J A%%%##E*K];h

+0:H<<8>>111JJ##FH5X%%% <r(   c                    t        j                  d|       }t        |j                  d            }ddd}|j	                  dd      }|j	                  |d      }||k\  r	 t        j                  d      5 }t        j                  d	       t        j                  d
dd       t        j                  | |      }	ddd       t        j                  j                  |       }
d|
v sd|
v rdnd}t        j                  d|
      r|dnd}||z   }t              |k(  sJ |D cg c]  }t!        |j"                  t$              s|! }}|D cg c]  }t!        |j"                  t&              s|! }}|D ]+  }t)        |j*                        dj-                  |       k(  r+J  |D ]F  }t        j.                  |       }t        j                  d| dt)        |j*                              rFJ  t1        	|      D ]m  \  }}t3        |t4        j6                        rGt9        |      }|j:                  |j:                  k(  sJ t4        j<                  j?                  ||       g||k(  rmJ  y	 t        j                  |        tM        d      # 1 sw Y   xY wc c}w c c}w # t@        $ r}|dk(  r#t3        |tB              sJ d}|t)        |      v sQJ | jE                  d      r8tF        jH                  d   r%t3        |tB              sJ tJ        t)        |      v sJ  Y d}~yY d}~yd}~ww xY w# tB        $ r4}dj-                  |      }|t)        |jH                        v sJ Y d}~yd}~ww xY w)zHelper function to test joblib pickle content.

    Note: currently only pickles containing an iterable are supported
    by this function.
    z.+py(\d)(\d).+r   rS   rO   )rS   rO   rV   Tr   r   ignorenumpyz"The compiler package is deprecated)moduler   r   Nz_0.9z_0.8.4r   z_0.1.+.pkl$zkThe file '{0}' has been generated with a joblib version less than 0.10. Please regenerate this pickle file.zmemmapped.+z.+segmentation faultzPYou may be trying to read with python 3 a joblib pickle generated with python 2..lz4z>Numpy pickle loading should have raised a ValueError exceptionz unsupported pickle protocol: {0})'rerK   r   groupgetr   r   r   filterwarningsr   r9   ra   rb   basenamesearchr`   
issubclassr   r   r   r   r   rJ   escaper   rd   r   re   r   rY   rf   r   	ExceptionrB   endswithr   argsr   AssertionError)r=   r   r   version_matchpy_version_used_for_writing%py_version_to_default_pickle_protocolpickle_reading_protocolpickle_writing_protocolr   r   filename_base expected_nb_deprecation_warningsexpected_nb_user_warningsr   r   deprecation_warningsuser_warningsescaped_filenamer   r   excr   es                          r   _check_pickler   m  s{    HH.9M"%m&9&9!&<"=01aL)CGG1MCGG#Q("997	((5%%h/''W@B +//IN 6 GG,,X6M-'8}+D 01KL - 		-7% )*,- & 13LL !x=$8888 $$5#azJJ 2(48 ! $5 $.#azJJ(-8  . *AII''-vh'78 9 8 * ##%99X#6 yy!"2!33GH		N$ $ $ # %(]$C h

38BH!<<8>>999JJ++FH=!X--- %D.	*h'  "F G Gy 65"$5.,  	 +a/!#z222O#c(***""6*x}}Q/?!#z222.#c(::: ; +	(  	*8??')Gc!&&k)))	*s   !J$ 7AJ<A(J$ $JJJ$ J.J2.J$ !A
J$ ,A;J$ (J$ - L1 JJ$ $	L.-A2L))L.1	M.:*M))M.c            
      *   t        j                  dt        j                  d            t        j                  dt        j                  d            t        j                  dddddgd	      t        j                  d
t         j                        j                         t        j                  g dt        j                  d            dg} t        j                  j                  t        j                  j                  t        j                              }d}t        |dz  }t        j                  |      D cg c]6  t        fd|D              r t        j                  j!                  |      8 }}|D ]  }t#        ||         y c c}w )Nr   r   r|   r   r   r   rS   r   r   r   r   r   rS   r   ).pkl.gzz.gzip.bz2lz4).xz.lzmac              3   @   K   | ]  }j                  |        y wr   )r   ).0extfns     r   	<genexpr>z<test_joblib_pickle_across_python_versions.<locals>.<genexpr>  s     M;LCr{{3/;Ls   )r   r   rY   rh   r~   r   matrixra   rb   dirnameabspathr   __file__lzmalistdiranyr6   r   )r   test_data_dirpickle_extensionsr   pickle_filenamesr   s      `  r   )test_joblib_pickle_across_python_versionsr    s*    YYq8YYq8XXq%qq)9:#FYYs"((3;;= YYy@+-M GGOOBGGOODMM$BCM?--"$**]";O";BM;LMM ]B7";  O "e]+ "	Os   ?;Fc            
      
   t        j                  dt        j                  d            t        j                  dt        j                  d            t        j                  dddddgd	      t        j                  d
t         j                        j                         t        j                  g dt        j                  d            dg} t        j                  j                  t        j                  j                  t        j                              }t        j                  |      D cg c]3  }|j                  d      r t        j                  j                  ||      5 }}|D ]  }t!        || d        y c c}w )Nr   r   r|   r   r   r   rS   r   r   r   r   r   r   r   r   )r   r   rY   rh   r~   r   r   ra   rb   r   r   r   r  r  r   r6   r   )r   r  r   r  r   s        r   3test_joblib_pickle_across_python_versions_with_mmapr
    s   YYq8YYq8XXq%qq)9:#FYYs"((3;;= YYy@+-M GGOOBGGOODMM$BCM **]+D+Br{{6/B 	]B'+  D "e]c: "Ds   08F c                  l   t        j                  ddgddg      t        j                  dt        j                  d            t        j                  dt        j                  d            g} | D ]  }t        j
                  d	k(  rt        |      rJ t        |      sJ t        |      }|j                  j                  r<|j                  j                  j                         D ]  }|d
   j
                  dk(    |j                  j
                  dk(  rJ  t        j                  ddgddg      t        j                  dt        j                  d            t        j                  dt        j                  d            g}|D ]  }t        j
                  dk(  rt        |      rJ t        |      sJ t        |      }|j                  j                  r<|j                  j                  j                         D ]  }|d
   j
                  dk(    |j                  j
                  dk(  rJ  y )N)r   g       @)rO   g      @) r   )r  r   r|   rO   r   r   bigr   =)r  r   )r  r   r   r   little)
r   rh   r   rY   sys	byteorderr   r   fieldsvalues)	be_arraysrh   	convertedf	le_arrayss        r   .test_numpy_array_byte_order_mismatch_detectionr    s    8X.!,k :<1BHHUO41BHHUO46I ==E!:5AAA6u===-e4	??!!__++224!#% 5 ??,,333  8X.!,k :<1BHHUO41BHHUO46I ==H$:5AAA6u===-e4	??!!__++224!#% 5 ??,,333 r(   compress_tuple)rP   rO   gziprO   c                     | j                  d      j                  }t        j                  d||       t	        |d      5 }t        |      |d   k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr4   rI   r5   rbr   r6   r7   r   r8   openr   )r<   r  r=   r  s       r   test_compress_tuple_argumentr     s_     {{:&..Hgx-/ 
h	!!$q(9999 
		s    AA'zcompress_tuple,message))rP   rO   extraz9Compress argument tuple should contain exactly 2 elements)wrongrO   z(Non valid compression method given: "{}"r"  )rP   r"  z$Non valid compress level given: "{}"c                     | j                  d      j                  }t        t              5 }t	        j
                  d||       d d d        j                  |       y # 1 sw Y   xY w)Nr4   rI   r5   )r6   r7   r   rB   r   r8   rK   )r<   r  r   r=   rM   s        r   &test_compress_tuple_argument_exceptionr$  *  sN     {{:&..H	
	w'8nE 
MM' 
	s   AA'compress_stringrP   r  c                     | j                  d      j                  }t        j                  d||       t	        |d      5 }t        |      |k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr4   rI   r5   r  r  )r<   r%  r=   r  s       r   test_compress_string_argumentr'  9  sZ     {{:&..Hgx.0 
h	!!$777 
		s    AA$)r   rO      cmethodc                    | j                  d      j                  }t        j                  dd      t	        d      dddg d	i d
df}|dv rt
        t        j                  d       n-|dk(  r(t        j                  d
   rt        j                  d       |dz   |z   }|D ]  }t        j                  ||||f       t        |d      5 }t        |      |k(  sJ 	 d d d        t        j                  |      }t        |t!        |            sJ t        |t        j"                        r!t        j$                  j'                  ||       ||k(  rJ  y # 1 sw Y   zxY w)Nr4   )r{   r{   f8r   rG   r   r   )rr   rS   r   r   g      ?r  xzzlzma is support not availabler   zlz4 is not installed..r5   r  )r6   r7   r   r}   ranger  pytestskipr   r   r   r8   r  r   r9   rd   rk   re   rf   rg   )	r<   r1   r)  r=   objectsdump_filenamert   r  r   s	            r   test_joblib_compression_formatsr4  D  s5    {{:&..HwwZt4Ry3RQ5G . T\34	E	hmmA. 	+,sNW,M#}7JK-&!%a(G333 ' $((7,S	222c2::&JJ)),<3&&&  '&s   EE	c                     t        t        j                  | d            5 }|j                         }ddd       t	        |d      5 }|j                         ddd       y# 1 sw Y   0xY w# 1 sw Y   yxY w)zDecompress a gzip file.r  Nwb)r   r  GzipFilereadr  writesource_filenametarget_filenamefobufs       r   _gzip_file_decompressr?  d  sZ    	5	6"ggi 
7 
ot	$
 
%	$ 
7	6 
%	$s   A A, A),A5c                     t        | d      5 }t        j                  |j                               }ddd       t        |d      5 }|j	                         ddd       y# 1 sw Y   0xY w# 1 sw Y   yxY w)zDecompress a zlib file.r  Nr6  )r  rP   
decompressr8  r9  r:  s       r   _zlib_file_decompressrB  m  sZ    	ot	$oobggi( 
% 
ot	$
 
%	$ 
%	$ 
%	$s   $A A, A),A5zextension,decompress.zr   c                     d}| j                  d      j                  }||z   }t        j                  ||        |||       t        j                  |      }||k(  sJ y )Nza string to persistr4   )r6   r7   r   r8   r9   )r<   	extensionrA  rt   filename_rawfilename_compressedr   s          r   'test_load_externally_decompressed_filesrH  v  sf    
  C;;z*22L&2c./ "L1  $$\2L,r(   zextension,cmethod))rC  rP   )r   r  )r   bz2)r   r  )r   r-  )r   not-compressed)r  rJ  c                 |   |dv rt         t        j                  d       | j                  d      j                  }d}||z   }t        j                  ||       t        |d      5 }t        |      |k(  sJ 	 d d d        t        j                  |      }t        |t        |            sJ ||k(  sJ y # 1 sw Y   =xY w)Nr,  zlzma is missingr4   zobject to dumpr  )r  r0  r1  r6   r7   r   r8   r  r   r9   rd   rk   )r<   rE  r)  r=   rt   
dump_fnamer  r   s           r   %test_compression_using_file_extensionrM    s     . T\%&{{:&..H
CI%Jc:&	j$	1!!$/// 
   $$Z0LlDI...3 
 	s   $B22B;c                    t         j                  j                  d      dg}t        j                  t        j
                  g}t        |t        j                  gz  }| j                  d      j                  }|D ]  }|D ]  } ||d      5 }t        j                  ||       d d d         ||d      5 }t        j                  |      }d d d        t        |d      5 }t        j                  |      }d d d        t        |t         j                        rAt         j                   j#                  |       t         j                   j#                  |       |k(  sJ |k(  rJ   y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr   	some datar4   r6  r  )r   r[   rI  BZ2Filer  r7  r  LZMAFiler6   r7   r   r8   r9   r  rd   re   rf   rg   )	r<   objsfobjsr=   rt   fobjr  r   obj_reloaded_2s	            r   test_file_handle_persistencerV    s?   IIX&4D[[$--(E$-- {{:&..HDh%!!#q) &
 h%+003 &
 h%!-!2!21!5 & #rzz*

--lC@

--ncB#s***%,,,'  %%
 &%
 &%s$   
E(2E4F (E14E= F	c                  V   t         j                  j                  d      dg} | D ]  }t        j                         }t	        j
                  ||       t	        j                  |      }t        |t         j                        r!t         j                  j                  ||       }||k(  rJ  y )Nr   rO  )r   r[   ioBytesIOr   r8   r9   rd   re   rf   rg   )rR  rt   r  r   s       r   test_in_memory_persistencerZ    s    IIX&4DJJL#q!#((+c2::&JJ)),<3&&& r(   c                    t         j                  j                  d      }| j                  d      j                  }t	        |d      5 }t        j                  ||       d d d        t	        |d      5 }t        j                  |d      }d d d        t         j                  j                  |       y # 1 sw Y   VxY w# 1 sw Y   6xY w)Nr   r4   r6  r  r   r   )
r   r[   r6   r7   r  r   r8   r9   rf   rg   )r<   rt   r=   r  r   s        r   !test_file_handle_persistence_mmapr\    s    
))

8
$C{{:&..H	h	#q! 
 
h	#((d; 
 JJ!!,4 
	 
	s   B32B?3B<?Cc                 0   t         j                  j                  d      }| j                  d      j                  }t	        |d      5 }t        j                  ||d       d d d        t        t        j                  |d            5 }t        t              5 }t        j                  |d       d d d        t              d	k(  sJ t        |d
   j                        d|ddz  k(  sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   RxY w# 1 sw Y   y xY w)Nr   r4   r6  r  r5   r  r   r   r   r   zP"%(fileobj)r" is not a raw file, mmap_mode "%(mmap_mode)s" flag will be ignored.)fileobjr   )r   r[   r6   r7   r  r   r8   r   r  r7  r   r   r9   r`   r   r   )r<   rt   r=   r  r   s        r   ,test_file_handle_persistence_compressed_mmapr_    s    
))

8
$C{{:&..H	h	#q;7 
 
x.	/1;8a40  8}!!!HQK''((67d*KLL 	M L	 
0	/ 
	   
0	/s0   C4DD /;D4C= D		DDc                  p   t         j                  j                  d      } t        j                         }t	        j
                  | |       t        t              5 }t	        j                  |d       d d d        t              dk(  sJ t        |d   j                        dddiz  k(  sJ y # 1 sw Y   <xY w)Nr   r   r   r   r   zuIn memory persistence is not compatible with mmap_mode "%(mmap_mode)s" flag passed. mmap_mode option will be ignored.r   )r   r[   rX  rY  r   r8   r   r   r9   r`   r   r   )rt   r>  r   s      r   +test_file_handle_persistence_in_memory_mmapra    s    
))

8
$C
**,Cc3	{	x#. 
x=A##$%t,-- . - 
	s   B,,B5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   rO   	   c                 $   | j                  d      j                  }t        |d      5 }t        |d|      5 }|j	                         sJ |j                  |       |j                         |j                         k(  sJ t        t        j                        5  |j                          d d d        t        t        j                        5  |j                          d d d        d d d        j                  sJ t        t              5  |j                          d d d        d d d        t        |d      5 }t        |      5 }|j                         sJ |j!                         sJ |j                         |j                         k(  sJ |j#                         |k(  sJ t        t        j                        5  |j%                          d d d        |j!                         sJ |j'                  d       |j)                         dk(  sJ 	 d d d        j                  sJ 	 d d d        t        |d|      5 }|j	                         sJ |j                  |       d d d        t        |d      5 }|j#                         |k(  sJ |j!                         sJ 	 d d d        t        |d|      }|j	                         sJ |j                  |       |j+                          t        |d      }|j#                         |k(  sJ |j+                          y # 1 sw Y   kxY w# 1 sw Y   FxY w# 1 sw Y   KxY w# 1 sw Y   "xY w# 1 sw Y   'xY w# 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   OxY w# 1 sw Y   "xY w# 1 sw Y   xY w)Nr4   r6  compresslevelr  r   )r6   r7   r  r   writabler9  filenor   rX  UnsupportedOperation_check_can_read_check_can_seekclosedrB   _check_not_closedreadableseekabler8  _check_can_writeseektellclose)r<   r   rc  r=   r  fzs         r   test_binary_zlibfilerv    s    {{:&..H	h	At*8:=?;;= =HHTN99;!((*,,,//0""$ 1 //0""$ 1: yyyJ  "   
 
h	A";;= =;;= =99;!((*,,,779$$$//0##% 1;;= =GGAJ779>!>  yyy 
 
$&4
69;{{}}

6
 
$	'2wwyD   {{}} 
(
 
$n	EB;;==HHTNHHJ	$	'B779HHJQ 10 10: :   
	* 10  
	
6 
6
 
(	's   MA L+L(!L+	LL+"%ML8M4M, A6M6MA MM,5$M9-(NLL+L(#L++L5	0M8M	=MMMMM)	$M,,M69NN	bad_value   rr   c                    | j                  d      j                  }t        t              5 }t	        |d|       d d d        t        j                  dj                  |            }j                  |       y # 1 sw Y   ?xY w)Nr4   r6  rf  zS'compresslevel' must be an integer between 1 and 9. You provided 'compresslevel={}')	r6   r7   r   rB   r   r   r   rJ   rK   )r<   rw  r=   rM   patterns        r   +test_binary_zlibfile_bad_compression_levelsr{  <  sd    {{:&..H	
	wxY? 
ii ::@&:KMGMM'	 
	s   A88Bbad_mode)rr   r   r   r   r   rS   c                     | j                  d      j                  }t        t              5 }t	        ||       d d d        j                  d       y # 1 sw Y   xY w)Nr4   zInvalid mode)r6   r7   r   rB   r   rK   )r<   r|  r=   rM   s       r   "test_binary_zlibfile_invalid_modesr~  F  sD    {{:&..H	
	wx* 
MM.! 
	s   AAbad_filec                     t        t              5 }t        | d       d d d        j                  d       y # 1 sw Y   xY w)Nr  z1filename must be a str or bytes object, or a file)r   	TypeErrorr   rK   )r  rM   s     r   *test_binary_zlibfile_invalid_filename_typer  N  s1    			gx& 
MMEF 
		   7A c                       e Zd Zd Zy)SubArrayc                 :    t         t        j                  |       ffS r   )_load_sub_arrayr   asarrayr$   s    r   
__reduce__zSubArray.__reduce__[  s    "RZZ%5$888r(   N)r*   r+   r,   r  r   r(   r   r  r  Y  s    	9r(   r  c                 :    t        | j                        }| |d d  |S r   )r  rX   )arrds     r   r  r  ^  s    SYY!r(   c                       e Zd ZdZd Zy)rm   z7A complex object containing numpy arrays as attributes.c                     t        j                  dd      | _        t        j                  dd      | _        t        j
                  g dd      | _        y )Nr{   rj   r|   int32)rr   rG   g      4@r   )r   r   rn   r}   ro   rh   rp   r$   s    r   __init__zComplexTestObject.__init__f  s9    !yyI>DWWS8DNXXoXFDNr(   N)r*   r+   r,   __doc__r  r   r(   r   rm   rm   c  s    E	Gr(   rm   c                 
   | j                  d      j                  }t        d      }t        j                  ||       t        j
                  |      }t        |t              sJ t        j                  j                  ||       y )Nr4   )rG   )
r6   r7   r  r   r8   r9   rd   r   rf   rg   )r<   r=   rr   cs       r   test_numpy_subclassr  l  sc    {{:&..HAa"(#Aa"""JJ!!!Q'r(   c                 "   | j                  d      j                  }d}t        j                  |t	        |             t        j
                  |      |k(  sJ t        j                  ||       t        j
                  t	        |            |k(  sJ y )Nr4   {   )r6   r7   r   r8   r   r9   )r<   r=   values      r   test_pathlibr  v  su    {{:&..HEeT(^,X&%///eX&T(^,555r(   c                    | j                  d      j                  }t        j                  ddgddgg      dd  t        j                  dd      d d d dd d f   fD ]}  }|j
                  j                  rJ |j
                  j                  rJ t        j                  ||       t        j                  |      }t        j                  j                  ||        y )	Nr4   r   rS   rO   rV   )rG   2      F)order)r6   r7   r   asfortranarrayr}   r   c_contiguousf_contiguousr   r8   r9   rf   rg   )r<   r=   rh   array_reloadeds       r   "test_non_contiguous_array_picklingr    s    {{:&..H
 %%1v1v&67;GGL4QAX>@ ;;++++;;++++%*%**84


%%ne<@r(   c                    | j                  d      j                  }t        j                  d      }t	        j
                  ||t        j                         t	        j                  |      }t        j                  j                  ||       y )Nr4   rG   protocol)r6   r7   r   zerosr   r8   pickleHIGHEST_PROTOCOLr9   rf   rg   )r<   r=   
test_arrayr  s       r   test_pickle_highest_protocolr    sa     {{:&..H"Jj(V5L5LM!&&x0NJJ!!.*=r(   c                     t        j                  d      } d}t        j                  t        j                  t        j                        }|j                  |       |j                  d       t        j                  |      5 }|j                         \  }}|j                  d      5 }t        j                  | |       d d d        |j                  d      5 }t        j                  |      }d d d        t         j                  j                  |        t        j                          }	t        j                  | |	       |j#                  |	j%                                |j                  d      5 }t        j                  |      }d d d        t         j                  j                  ||        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   JxY w# 1 sw Y   y xY w)NrG   )	localhosti90  r   r6  r  )r   r   socketAF_INETSOCK_STREAMbindlistencreate_connectionacceptmakefiler   r8   r9   rf   rg   rX  rY  sendgetvalue)
r  _ADDRlistenerclientserverclient_addrsfcfr  bytes_to_sends
             r   test_pickle_in_socketr    s^    2J E}}V^^V-?-?@HMM%OOA		!	!%	(F&oo/__T"bj"- # __T"b)..r2N # 	

%%njA 

*m4M**,-__T"b)..r2N # 	

%%njA) 
)	( #" #" #"# 
)	(sU   %G&F5=GG,BG.G(G5F>	:GG
	GG	GG"c                    | j                  d      j                  }t        j                  }t	        j
                  |d      t	        j                  |d      g}t        j                  ||       t        j                  |d      }t        |d   t        j                        sJ |d   j                  |kD  sJ t        j                  j                  ||       y )N	test.mmapr~   r|   r   r   r   )r6   r7   rT   ALLOCATIONGRANULARITYr   r  r}   r   r8   r9   rd   ri   offsetrf   rg   )r<   r   r   rt   memmapss        r    test_load_memmap_with_big_offsetr    s     KK$,,E%%D88D("''$g*F
GCc5!5Ggaj")),,,1:t###JJ!!#w/r(   c                    d}d G d dt         j                         G fddt              }t        | |              t        |   j
                  k(  sJ t        |   j                  k(  sJ t	        j                  |       y )N	test-nameztest-prefixc                       e Zd Zy):test_register_compressor.<locals>.BinaryCompressorTestFileNr*   r+   r,   r   r(   r   BinaryCompressorTestFiler        r(   r  c                       e Zd Z fdZy)=test_register_compressor.<locals>.BinaryCompressorTestWrapperc                 6    t        j                  |        y )Nrt   prefixr   r  )r%   r  compressor_prefixs    r   r  zFtest_register_compressor.<locals>.BinaryCompressorTestWrapper.__init__  s    &&t1I.?Ar(   Nr*   r+   r,   r  )r  r  s   r   BinaryCompressorTestWrapperr    s	    	Ar(   r  )rX  BufferedIOBaser   r   r   fileobj_factoryr  pop)r<   compressor_namer  r  r  s      @@r   test_register_compressorr    s    !O%2#4#4 A&7 A )D)FG)99$% & %(//3DDDD _%r(   invalid_namec                     t        t              5 }t        | d        d d d        j                  d       y # 1 sw Y   xY w)Nz"Compressor name should be a string)r   rB   r   rK   )r  rM   s     r   %test_register_compressor_invalid_namer    s3     

	wL$/ 
MM67 
	r  c                       G d d       G fddt               } t        t              5 }t        d |               d d d        j	                  d       y # 1 sw Y   xY w)Nc                       e Zd Zy)Ctest_register_compressor_invalid_fileobj.<locals>.InvalidFileObjectNr  r   r(   r   InvalidFileObjectr    r  r(   r  c                       e Zd Z fdZy)Jtest_register_compressor_invalid_fileobj.<locals>.InvalidFileObjectWrapperc                 6    t        j                  | d       y Ns   prefixr  r  )r%   r  s    r   r  zStest_register_compressor_invalid_fileobj.<locals>.InvalidFileObjectWrapper.__init__  s    &&t1B.79r(   Nr  )r  s   r   InvalidFileObjectWrapperr    s    	9r(   r  invalidzQCompressor 'fileobj_factory' attribute should implement the file object interface)r   r   rB   r   rK   )r  rM   r  s     @r   (test_register_compressor_invalid_fileobjr    sU     9#4 9
 

	wI'?'AB 
 MM . / 
	s   AA!c                       e Zd Zd Zy)AnotherZlibCompressorWrapperc                 <    t        j                  | t        d       y r  )r   r  r   r$   s    r   r  z%AnotherZlibCompressorWrapper.__init__  s    ""4^INr(   Nr  r   r(   r   r  r    s    Or(   r  c                       e Zd Zd Zy) StandardLibGzipCompressorWrapperc                 P    t        j                  | t        j                  d       y r  )r   r  r  r7  r$   s    r   r  z)StandardLibGzipCompressorWrapper.__init__
  s    ""4T]]9Mr(   Nr  r   r(   r   r  r    s    Nr(   r  c                     d} t        | t                      t        t              5 }t        | t	                      d d d        j                  dj                  |              t        | t	               d       | t        v sJ t        |    j                  t        j                  k(  sJ t        j                  |        y # 1 sw Y   xY w)Nr  z#Compressor '{}' already registered.T)force)r   r  r   rB   r  rK   rJ   r   r  r  r7  r  )r  rM   s     r   +test_register_compressor_already_registeredr    s    !O )E)GH	
	wO<>	@ 
 MM76/*, )I)K"$ l***(88DMMIII _% 
	s   B??Cc                    dd l }d}|t        v sJ t        |   j                  |j                  j                  k(  sJ | j                  d      j                  }d}t        j                  |||       t        |d      5 }|j                  t        t                    t        k(  sJ 	 d d d        t        j                  |      |k(  sJ t        j                  ||dz          t        |d      5 }|j                  t        t                    t        k(  sJ 	 d d d        t        j                  |      |k(  sJ y # 1 sw Y   xY w# 1 sw Y   0xY w)Nr   r   r4   	test datar5   r  r   )	lz4.framer   r  frameLZ4FrameFiler6   r7   r   r8   r  r8  r`   r   r9   )r<   r   
compressorr   r   r  s         r   test_lz4_compressionr  &  s    J%%%
#33syy7M7MMMMKK
#++EDdEJ7	eT	avvc+&';666 
U#t+++ dEFN+	eT	avvc+&';666 
U#t+++ 
	 
	s   >(D:.(E:EEc                    | j                  d      j                  }d}t        }t        t              5 }t        j                  ||d       d d d        j                  |       t        t              5 }t        j                  ||dz          d d d        |j                  |       y # 1 sw Y   ]xY w# 1 sw Y   'xY w)Nz
test.nolz4r  r   r5   r   )r6   r7   r   r   rB   r   r8   rK   )r<   r   r   msgrM   s        r    test_lz4_compression_without_lz4r  =  s     KK%--ED
!C	
	w$6 
MM#	
	w$/ 
MM# 
	 
	s   B(4B4(B14B=r  c                    | j                  d      j                  }t        j                  j	                  d      }t        j                  |||       t        j                  |d      }t        |t        j                        sJ t        j                  j                  ||       |j                  j                  t
        j                  z  dk(  sJ |j                  j                   sJ t        j                  j	                  d      t        j                  j	                  d      t        j                  j	                  d      t        j                  j	                  d      g}| j                  d      j                  }t        j                  |||       t        j                  |d      }t#        |      D ]  \  }}t        |t        j                        sJ t        j                  j                  ||   |       |j                  j                  t
        j                  z  dk(  sJ |j                  j                   rJ  t        j$                  dt        j&                        t        j$                  d	t        j&                        t        j$                  d
t        j&                        t        j$                  dt        j&                        t        j$                  dt        j&                        t        j$                  dt        j&                        t        j$                  dt        j&                        t        j$                  dt        j&                        t        j$                  dt        j&                        d	}| j                  d      j                  }t        j                  |||       t        j                  |d      }	|	j)                         D ]  \  }
}t        |t        j                        sJ t        j                  j                  ||
   |       |j                  j                  t
        j                  z  dk(  sJ |j                  j                   rJ  y )Nr  rS   r  r   r   r   z
test1.mmapr|   rO   r                     )	a0a1a2a3a4a5a6a7a8z
test2.mmap)r6   r7   r   r[   randnr   r8   r9   rd   ri   rf   rg   ctypesr   NUMPY_ARRAY_ALIGNMENT_BYTESr   alignedr^   r   r~   items)r<   r  r   rr   ri   
array_list
l_reloadedidx
array_dict
d_reloadedkeys              r   test_memmap_alignment_paddingr  Q  s	    KK$,,E
		Aa2u4Ffbii(((JJ!!!V,\EEEJLJ<< 			BIIOOA.
		BIIOOA.J KK%--Ej%(;""5C8J ,V&")),,,


%%jov>MM!I!IIQN	PN||#### - ii*ii*ii*ii*ii"((+ii"((+ii"((+ii"((+ii"((+
J KK%--Ej%(;""5C8J!'')V&")),,,


%%jov>MM!I!IIQN	PN||#### *r(   r   )r  r:   ra   r[   r   rX  r  r   r  rP   rI  r  r  
contextlibr   rT   pathlibr   r  ImportErrorr0  joblib.test.commonr   r   r   r   r	   r
   joblib.testingr   r   r   joblibr   r   joblib.testr   joblib.numpy_pickle_utilsr   r   r   r   joblib.compressorr   r   r   r   r   typelist_noneappendrk   _typebool_boolr   _intfloat_floatcomplex_complexr   _string_tuple_list_dictr`   _builtinr    r"   r   r/   	_instance_objectr?   rD   rC   rN   ry   r   r   r   r   r   r   r   r   r   r  r
  r  r   rJ   r$  r'  r4  r?  rB  rH  rM  rV  rZ  r\  r_  ra  r   encoderv  r{  r~  r  re   r  r  rm   r  r  r  r  r  r  r  r  r  r  r  r  r  r  DEFAULT_PROTOCOL	protocolsr  r  r   r(   r   <module>r6     s(   F  	  	 	 
    
       D D @ 5 5 5  5 8 I ?H H  	    Q  
1v  	q  1:  
a&  	  
  
     
 
 		    	 H	 	 
+   Z!Q Xx ! ! !!) B/0! 1! Z45/G 6 /Gd ; ; ./ ./b . .$ 	- 	-  $ \=)< * <& Z$'/ (  /0 & &.P*f , ,@ ; ;( %4 %4P [9:: ;: %L9@@IK 5<<WEG	HII  018 28 Z#Y%' & $ ': #*++,.//$  &	'	'$ - -< 	' 	' 
5 
5 M M  . . V0dkk(&..D1D8::@&:KLM ,-EF	H
 y)1 *H1h [2r2sB34 5 Z34" 5" Z!R%G &G >92:: 9

G G ( (6 = =  > > B B> 0 0&2 ^aR[)8 *8/$O#4 ON'8 N&0 
, 
,,   $$%		f555V,,- Z#4$ $ 4$}!  Ds   T T%$T%