L i  dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlmZddlmZ ddlZddlZddlmZmZddlmZmZmZmZmZddlmZm Z m!Z!m"Z"ddl#m$Z$dd l%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+dd l,m-Z-m.Z.m/Z/gZ0dZ1e0jee1e3Z4e0jee4e5d Z6e0jee6e7d Z8e0jee8e9d Z:e0jee:e;d Ze0jee>d Z?e0jee?gZ@e0jee@iZAe0jeeAeBZCe0jeeCd ZDGddZEGddeFZGe0jeeDe0jeeEe0jeeGeEZHe0jeeHeGZIe0jeeIe-ddd ge-de0dZJdZKe-dddeLgdZMe*e-dgddZNe*dZOe*dZPe*dZQe*dZRe*d ZSe*e)e-dd!d"gd#ZTe*d$ZUe*d%ZVd&ZWdyd'ZXe*d(ZYe*d)ZZe*d*Z[e-d+d,d-gd.Z\e-d/d0d1d2jd3fd4d5jd3fgd6Z^e-d7d8d9gd:Z_e*e-dgd;e-dZad?Zbe-d@dAebfdBeafgdCZce-dDgdEdFZde*dGZee*dHZfe*dIZge*dJZhe*dKZie-dLdMdNdOjejddPdPzjdQzgdRdSgTe-dUgdVdWZle-dXdddYdZd igd[Zme-d\gd]d^Zne-d_d d igd`Zoe'"Gdadbe'jZqdcZrGdddeZse*dfZtdgZue*dhZve*diZwe*djZxe*dkZydlZze-dmd d igdnZ{doZ|GdpdqeZ}GdrdseZ~dtZe(duZe+dvZejgZejejk7rejeeje*e-dwedxZy#e$rdZYwxYw)zz@Test the numpy pickler as a replacement of the standard pickler.N)closing)Path) numpy_pickleregister_compressor) _COMPRESSORS _LZ4_PREFIXLZ4_NOT_INSTALLED_ERRORBinaryZlibFileCompressorWrapper)_IO_BUFFER_SIZE_detect_compressor_ensure_native_byte_order#_is_numpy_array_byte_order_mismatch)data) memory_usednpwith_lz4with_memory_profiler with_numpy without_lz4) parametrizeraiseswarnsc#K|ywNr)xs c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/joblib/test/test_numpy_pickle.py _functionr Us GsceZdZdZy)_classcyrrselfs r_methodz_class._methodZ N__name__ __module__ __qualname__r&rr(rr"r"Y r(r"ceZdZdZy) _newclasscyrrr$s rr&z_newclass._method_r'r(Nr)rr(rr/r/^r-r(r/compressmemberc|jdj}tj|||tj|}|t j |k(r||k(sJyy)Ntest.pklr1)joinstrpathrdumploadcopydeepcopy)tmpdirr1r2filename_members rtest_standard_typesr?ps`{{:&..Hfh:)Gv&&   'r(ctt5tjdt dddy#1swYyxYw)Nfoo)r ValueErrorrr8dictrr(rtest_value_errorrD}s1  )%()))s 8Awrong_compress cdj|}tt5}tjdd|dddj |y#1swYxYw)Nz%Non valid compress level given: "{0}"dummyrAr5)formatrrBrr8match)rE exception_msgexcinfos rtest_compress_level_errorrNsU<BB>RM  Cw'5>BC MM- CCs AA)FTrzlibc|jdj}tjj d}|j d}t |f|jf||f|||gfD]\}}tj|||}t|dk(sJ|d|k(sJtjj|dsJtj|}|D]} t| tj rJtj"j%tj&|tj&|tj(|dzddtj* }tj|||}t|dk(sJtj|}t-|tj(ur#t/|d rt|t-|sJtj"j%||t1}tj|||}t|dk(sJtj|} t| t-|sJtj"j%| j2|j2tj"j%| j4|j4tj"j%| j6|j6y) Nr4r)rGr5rmmapw+)modeshapedtype__array_prepare__)r6r7rrandom RandomState random_sample enumerateTrr8lenospathexistsr9 isinstancendarraytestingassert_array_equalarraymemmapfloat64typehasattrComplexTestObject array_float array_int array_obj) r<r1r=rndaindexobj filenamesobj_item obj_loadeds rtest_numpy_persistencerxse{{:&..H ))   "C '"A!v1v1ay ABE s %%c8hG 9~"""|x'''ww~~il+++  * 0DdBJJ/ // 0 %%bhhsmRXXd^D!E& ))Hv%D LC!!#x(CI y>Q     X &D Cy !gc3F&G$S ***JJ!!$,  C!!#x(CI y>Q  ""8,J j$s) ,, ,JJ!!*"8"8#//JJJ!!*"6"6 FJJ!!*"6"6 Fr(c,tjtdztj}|j dj }t j||dt j|}tjj||y)NdrXr4Tr5) ronesr uint8r6r7rr8r9rerf)r< big_arrayr= arr_reloadeds r2test_numpy_persistence_bufferred_array_compressionrse3.rxx@I{{:&..HiD9$$X.LJJ!!)\:r(ctjjd}|jd}|j dj }t j||t j|d}t|tjsJ|j dj }t}t j||t j|d}t|t|sJt|jtjsJ|jjjrJt|j tjsJ|j jjrJt|j"tjrJtj$j'|j|jtj$j'|j |j tj$j'|j"|j"t j|d}|jjjsJd|jdd|j jjsJd|j ddt j|d}tj$j'|j|jtj$j'|j |j t j|d |j jjsJ|j j(dk(sJ|jjjsJ|jj(dk(sJy) NrrGz test1.pklr mmap_modez test2.pklr+g$@rT)rrZr[r\r6r7rr8r9rcrhrlrjrmflags writeablernrorerfrV)r<rprqr=brsrw obj_reloadeds rtest_memmap_persistencers ))   "C "A{{;'//Ha"(c2A a ## #{{;'//H  Cc8$""8s;J j$s) ,, , j,,bii 88 8%%++555 5 j**BII 66 6##))333 3*.. :: :JJ!!*"8"8#//JJJ!!*"6"6 FJJ!!*"6"6 F""8t)))|00,?_, $..../r(c tjdtjdtjdtjdtjdtjdtjdtjdtjdddd d gd tjd tjj d g}|j dj}tj||d}t|dk(sJtj|}t||D]m\}}t|tjrGt|}|j|jk(sJtj j#||g||k(rmJy)Ni8f8rabcrRrqrOC'est l'été !z temp.pkl.gzr5)rarangerXrgr}tobytesr6r7rr8r_r9ziprcrdrre assert_equal)r< expected_listfnamedumped_filenames result_listresultexpecteds r$test_compressed_pickle_dump_and_loadrDsU !288E?+ !288E?+ !288E?+ !288E?+ !U!!,-S9 #RXX&..0M KK & . .E#((J  A %% %##E*K ];& h +0:H<<8>>1 11 JJ # #FH 5X% %% &r(cLtjd}tjd}||f}tjd|}tjd|}|jdj}t j ||g|t j|d\}}|j|jk(sJ|j|vsJt j|d\} } | j|jk(sJ| j|jk(sJy) Nrrrr{ztemp.pklT)ensure_native_byte_orderF)rrXrr6r7rr8r9) r<little_endian_dtypebig_endian_dtype all_dtypesle_arraybe_arrayrle_array_native_loadbe_array_native_loadle_array_nonnative_loadbe_array_nonnative_loads rtest_memmap_loadr^s((5/xx%'78Jyy"56Hyy"23H KK # + +Ex*E21=1B1B 2.. % %)=)C)C CC C  % % 33 37C7H7H 844 # ( (HNN :: : " ( (HNN :: :r(cd}tttj|5t j ddddddy#1swYyxYw)NzrNative byte ordering can only be enforced if 'mmap_mode' parameter is set to None, but got 'mmap_mode=r+' instead.)rKz/path/to/some/dump.pklTr)rr)rrBreescaperr9) expected_msgs rtest_invalid_parameters_raiserzsK :  "))L"9 :  $tt    s A  Actjd|}t|jd}ddd}|j dd}|j |d}||k\r t j d5}t jd tj|| } d d d tjj|} d | vsd | vrdnd} tjd| r|dnd} | | z} t| k(s%Jd| d|Dcgc]}|jc}|Dcgc]}t!|j"t$s|!}}|Dcgc]}t!|j"t&s|!}}|D]+}t)|jdj+|k(r+J|D]F}tj,|}tjd|dt)|jrFJt/ |D]m\}}t1|t2j4rGt7|}|j8|j8k(sJt2j:j=||g||k(rmJy tj|tKd#1swYxYwcc}wcc}wcc}w#t>$r}|dk(r#t1|t@sJd}|t)|vsQJ|jCdr8tDjFdr%t1|t@sJtHt)|vsJYd }~y Yd }~y d }~wwxYw#t@$r4}dj+|}|t)|jFvsJYd }~y d }~wwxYw)zHelper function to test joblib pickle content. Note: currently only pickles containing an iterable are supported by this function. z.+py(\d)(\d).+rrRrO)rRrOrUT)recordalwaysrNz_0.9z_0.8.4rz _0.1.+.pkl$z6Did not get the expected number of warnings. Expected z but got warnings: 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})&rrKrgroupgetwarningscatch_warnings simplefilterrr9r`rabasenamesearchr_r issubclasscategoryDeprecationWarningrrrJrrrcrrdrrXrer ExceptionrBendswithrargsr AssertionError)r=rr version_matchpy_version_used_for_writing%py_version_to_default_pickle_protocolpickle_reading_protocolpickle_writing_protocolrr filename_base expected_nb_deprecation_warningsexpected_nb_user_warningsexpected_nb_warningsrdeprecation_warnings user_warningsescaped_filenamerrexcres r _check_picklers HH.9M"%m&9&9!&<"=01aL)CGG1MCGG#Q"99> ((5 O%%h/*//IN  OGG,,X6M -]1JQR - IIm]; @U & 13LL !x=$88 H'((;'/0!AII013 8$$z!**>P'Q$ $)1X1Jqzz;4WQXMX)  N##)6(#344 # #%99X#6 yy!"2!33GH#aii.  %( ]$C . h 38BH!<<8>>999JJ++FH=!X---  .2 *   h ' P G O O&1$Y, +a/!#z222H#c(***""6*x}}Q/?!#z222.#c(:::;+ . *8??@WXGc!&&k) )) *s!J47-J$A+J4J% " J4/J*J*J4J/9J/=.J4,A J47A;J43J48 MJ"J44 L>=A2L99L> M> *M99M>c *tjdtjdtjdtjdtjdddddgd tjd tjj tj gd tjdd g}tjjtjjtj}d }t|dz }tj|Dcgc]6tfd|Dr tjj!|8}}|D]}t#||ycc}w)Nrrr{rrrrRrrrrrrRr).pkl.gzz.gzip.bz2lz4).xz.lzmac3@K|]}j|ywr)r).0extfns r z.s=Cr{{3=s)rrrXrgr}rmatrixr`radirnameabspathr__file__lzmalistdiranyr6r)r test_data_dirpickle_extensionsrpickle_filenamesrs ` r)test_joblib_pickle_across_python_versionsrs, !288E?+ !288E?+ !U!!,-S9 #RXX&..0 )288E?3 M GGOOBGGOODMM$BCM? --**]+  =+<= =  ]B' ",e]+, s?;Fc  tjdtjdtjdtjdtjdddddgd tjd tjj tj gd tjdd g}tjjtjjtj}tj|Dcgc]3}|jd r tjj||5}}|D]}t!||dycc}w)Nrrr{rrrrRrrrrrrrr)rrrXrgr}rrr`rarrrrr rr6r)rr rrrs r3test_joblib_pickle_across_python_versions_with_mmaprs !288E?+ !288E?+ !U!!,-S9 #RXX&..0 )288E?3 MGGOOBGGOODMM$BCM**]+  ;;v   ]B' ";e]c:; s08Fcltjddgddgtjdtjdtjdtjdg}|D]}tj d k(r t |rJt |sJt|}|jjr<|jjjD]}|d j d k(|jj d k(rJtjddgd d gtjdtjdtjdtjdg}|D]}tj dk(r t |rJt |sJt|}|jjr<|jjjD]}|d j d k(|jj d k(rJy)N)rg@)rOg@)r)rrr{rOrrbigr=)rr)rrrrlittle) rrgrrXsys byteorderrrfieldsvalues) be_arraysrg convertedf le_arrayss r.test_numpy_array_byte_order_mismatch_detectionrs (H%k;-GH !288E?+ !288E?+I 4 ==E !:5A AA6u= ==-e4 ?? ! !__++224 &!#% &??,,3 33 4 (H%k;-GH !288E?+ !288E?+I 4 ==H $:5A AA6u= ==-e4 ?? ! !__++224 &!#% &??,,3 33 4r(compress_tuple)rPrOgziprOc|jdj}tjd||t |d5}t ||dk(sJ dddy#1swYyxYw)Nr4rIr5rbrr6r7rr8openr )r<r r=rs rtest_compress_tuple_argumentr'Jsc{{:&..Hgx.A h :!!$q(9999:::s AA'zcompress_tuple,message))rPrOextraz9Compress argument tuple should contain exactly 2 elements)wrongrOz(Non valid compression method given: "{}"r))rPr)z$Non valid compress level given: "{}"c|jdj}tt5}t j d||dddj |y#1swYxYw)Nr4rIr5)r6r7rrBrr8rK)r<r rr=rMs r&test_compress_tuple_argument_exceptionr+TsY${{:&..H  Fw'8nEF MM'FFs AA'compress_stringrPr"c|jdj}tjd||t |d5}t ||k(sJ dddy#1swYyxYw)Nr4rIr5r$r%)r<r,r=rs rtest_compress_string_argumentr.ms^{{:&..Hgx/B h 8!!$777888s AA$)rrOcmethodc|jdj}tjddt ddddgd id d f}|d vrt t jd n-|dk(r(tjd rt jd|dz|z}|D]}tj||||ft|d5}t||k(sJ dddtj|}t|t!|sJt|tj"r!tj$j'||||k(rJy#1swYzxYw)Nr4)rzrzf8rrGrr)rqrRrrg?r xzzlzma is support not availablerzlz4 is not installed..r5r$)r6r7rr|ranger pytestskiprrrr8r&r r9rcrjrdrerf) r<r1r0r=objects dump_filenamersrrs rtest_joblib_compression_formatsr;wsF{{:&..H j- b C      G. T\ 34 E hmmA.  +,sNW,M '#}7JK - & 4!%a(G3 33 4$((7 ,S 222 c2:: & JJ ) ), <3& && ' 4 4s EE cttj|d5}|j}dddt |d5}|j dddy#1swY0xYw#1swYyxYw)zDecompress a gzip file.r$Nwb)rr"GzipFilereadr&writesource_filenametarget_filenamefobufs r_gzip_file_decompressrFsj 5 6"ggi ot $  sA A, A),A5ct|d5}tj|j}dddt|d5}|j dddy#1swY0xYw#1swYyxYw)zDecompress a zlib file.r$Nr=)r&rP decompressr?r@rAs r_zlib_file_decompressrIsj ot $)oobggi() ot $  ))s$A A, A),A5zextension,decompress.zrcd}|jdj}||z}tj|||||tj|}||k(sJy)Nza string to persistr4)r6r7rr8r9)r< extensionrHrs filename_rawfilename_compressedrs r'test_load_externally_decompressed_filesrOsf C;;z*22L&2c./"L1 $$\2L ,  r(zextension,cmethod))rJrP)rr")rbz2)rr )rr4)rnot-compressed)rrQc||dvrttjd|jdj}d}||z}t j ||t|d5}t||k(sJ dddt j|}t|t|sJ||k(sJy#1swY=xYw)Nr3zlzma is missingr4zobject to dumpr$) r r7r8r6r7rr8r&r r9rcrj)r<rLr0r=rs dump_fnamerrs r%test_compression_using_file_extensionrTs. T\ %&{{:&..H CI%Jc:& j$ 01!!$///0 $$Z0L lDI .. . 3   00s $B22B;ctjjddg}tjtj g}t |t jgz }|jdj}|D]}|D]}||d5}tj||ddd||d5}tj|}dddt|d5}tj|}dddt|tjrAtj j#|tj j#||k(sJ|k(rJy#1swYxYw#1swYxYw#1swYxYw)Nr some datar4r=r$)rrZrPBZ2Filer"r>r LZMAFiler6r7rr8r9r&rcrdrerf) r<objsfobjsr=rsfobjrrobj_reloaded_2s rtest_file_handle_persistencer]s` II  X & 4D [[$-- (E  $-- {{:&..H- -Dh% *!!#q) * h% 4+003  4 h% 6!-!2!21!5 6#rzz* --lC@ --ncB#s***%,,,' -- * *  4 4  6 6s$ E(2E4F(E1 4E= F cVtjjddg}|D]}tj}t j ||t j |}t|tjr!tjj||}||k(rJy)NrrV) rrZioBytesIOrr8r9rcrdrerf)rYrsrrs rtest_in_memory_persistenceras II  X & 4D' JJL#q!#((+ c2:: & JJ ) ), <3& &&'r(ctjjd}|jdj}t |d5}t j ||dddt |d5}t j|d}dddtjj|y#1swYVxYw#1swY6xYw)Nrr4r=r$rr) rrZr6r7r&rr8r9rerf)r<rsr=rrs r!test_file_handle_persistence_mmaprcs ))  8 $C{{:&..H h "#q!" h <#((d; <JJ!!,4 ""<rrr9r_rr)r<rsr=rrs r,test_file_handle_persistence_compressed_mmaprf s ))  8 $C{{:&..H h 8#q;78 x. / 1 ;  18   a4 0 18}!!!  ## $$23$&GH H  H   88 1 1  s0C4D D/;D 4C=D D  Dcptjjd}tj}t j ||t t5}t j|ddddtdk(sJt|djdddizk(sJy#1swY B %b;;= = HHTN99;!((*, ,,//0 %""$ %//0 %""$ % %yyy J  #  " # # h   A  "";;= =;;= =99;!((*, ,,779$ $$//0 &##% &;;= = GGAJ779> !> "yyy  $n E{{}}  $ '2wwyD   {{}} $n EB ;;==HHTNHHJ $ 'B 779  HHJO % % % % % % # # # #( & & " "  sMA L+L(!L+ LL+"%ML8M4 M,A6M6MAMM,5$M9-(NL L+L( #L++L5 0M8M =MMM MM) $M,,M69NN bad_valuerqc|jdj}tt5}t |d|dddt j dj|}j|y#1swY?xYw)Nr4r=rmzS'compresslevel' must be an integer between 1 and 9. You provided 'compresslevel={}') r6r7rrBr rrrJrK)r<r~r=rMpatterns r+test_binary_zlibfile_bad_compression_levelsrsp{{:&..H  @wxY?@ii **0&*;G MM' @@s A88Bbad_mode)rqrrrrrRc|jdj}tt5}t ||dddj dy#1swYxYw)Nr4z Invalid mode)r6r7rrBr rK)r<rr=rMs r"test_binary_zlibfile_invalid_modesrsK{{:&..H  +wx*+ MM.!++s AAbad_filectt5}t|ddddjdy#1swYxYw)Nr$z1filename must be a str or bytes object, or a file)r TypeErrorr rK)rrMs r*test_binary_zlibfile_invalid_filename_typers8  'gx&' MMEF'' 7AceZdZdZy)SubArrayc:ttj|ffSr)_load_sub_arrayrasarrayr$s r __reduce__zSubArray.__reduce__s"RZZ%5$77 7r(N)r*r+r,rrr(rrrs 8r(rc:t|j}||dd|Sr)rrW)arrds rrrs SYY !r(ceZdZdZdZy)rlz7A complex object containing numpy arrays as attributes.ctjdd|_tjdd|_tj gdd|_y)Nrzrir{int32)rqrGg4@r)rrrmr|rnrgror$s r__init__zComplexTestObject.__init__s9!yyI>D WWS8DNXXoXFDNr(N)r*r+r,__doc__rrr(rrlrls E Gr(rlc |jdj}td}tj||tj |}t |tsJtjj||y)Nr4)rG) r6r7rrr8r9rcrrerf)r<r=rqcs rtest_numpy_subclassrsc{{:&..HAa"(#A a "" "JJ!!!Q'r(c"|jdj}d}tj|t |tj ||k(sJtj||tj t ||k(sJy)Nr4{)r6r7rr8rr9)r<r=values r test_pathlibrsu{{:&..H EeT(^,   X &% // /eX&   T(^ , 55 5r(c|jdj}tjddgddggddtjddddddddffD]}}|j j rJ|j jrJtj||tj|}tjj||y) Nr4rrRrOrU)rG2F)order) r6r7rasfortranarrayr|r c_contiguous f_contiguousrr8r9rerf)r<r=rgarray_reloadeds r"test_non_contiguous_array_picklingrs{{:&..H Aq6Aq6*+AB/  C(BQB2  =;;++++;;++++%*%**84 %%ne< =r(c|jdj}tjd}t j ||t jt j|}tjj||y)Nr4rGprotocol) r6r7rzerosrr8pickleHIGHEST_PROTOCOLr9rerf)r<r= test_arrayrs rtest_pickle_highest_protocolrsa {{:&..H"Jj(V5L5LM!&&x0NJJ!!.*=r(ctjd}d}tjtjtj}|j ||j dtj|5}|j\}}|jd5}tj||ddd|jd5}tj|}dddtjj|tj } tj|| |j#| j%|jd5}tj|}dddtjj||dddy#1swYxYw#1swYxYw#1swYJxYw#1swYyxYw)NrG) localhosti90rr=r$)rrsocketAF_INET SOCK_STREAMbindlistencreate_connectionacceptmakefilerr8r9rerfr_r`sendgetvalue) r_ADDRlistenerclientserver client_addrsfcfr bytes_to_sends rtest_pickle_in_socketrs2J E}}V^^V-?-?@H MM% OOA  ! !% (BF&oo/ __T " .b   j" - .__T " 3b)..r2N 3 %%njA *m4 M**,- __T " 3b)..r2N 3 %%njA)BB . . 3 3 3 3#BBsU%G&F5=GG,BG.G (G5F> :GG G G GG"c|jdj}tj}t j |dt j |dg}tj||tj|d}t|dtjsJ|dj|kDsJtjj||y)N test.mmapr}r{rrr)r6r7rSALLOCATIONGRANULARITYrrr|rr8r9rcrhoffsetrerf)r<rrrsmemmapss r test_load_memmap_with_big_offsetrs KK $ , ,E  % %D 88D ("''$g*F GCc5!5G gaj")) ,, , 1:  t ## #JJ!!#w/r(cd}dGddtjGfddt}t||t|j k(sJt|j k(sJt j|y)N test-namez test-prefixc eZdZy):test_register_compressor..BinaryCompressorTestFileNr*r+r,rr(rBinaryCompressorTestFiler r(rceZdZfdZy)=test_register_compressor..BinaryCompressorTestWrapperc6tj|y)Nrsprefixr r)r%rcompressor_prefixs rrzFtest_register_compressor..BinaryCompressorTestWrapper.__init__s  & &2;L r(Nr*r+r,r)rrsrBinaryCompressorTestWrapperrs r(r)r_BufferedIOBaser rrfileobj_factoryrpop)r<compressor_namerrrs @@rtest_register_compressorrs!O% 2#4#4 &7 )D)FG  ( 8 8.InvalidFileObjectNrrr(rInvalidFileObjectr9rr(rceZdZfdZy)Jtest_register_compressor_invalid_fileobj..InvalidFileObjectWrapperc6tj|dyNsprefixrr)r%rs rrzStest_register_compressor_invalid_fileobj..InvalidFileObjectWrapper.__init__=s  & &t1B9 Ur(Nr)rsrInvalidFileObjectWrapperr<s  Vr(rinvalidzQCompressor 'fileobj_factory' attribute should implement the file object interface)r rrBrrK)rrMrs @r(test_register_compressor_invalid_fileobjr6sb  V#4V  CwI'?'ABC MM $CCs AA!ceZdZdZy)AnotherZlibCompressorWrapperc<tj|tdyr)r rr r$s rrz%AnotherZlibCompressorWrapper.__init__Js""4^INr(Nrrr(rrrIsOr(rceZdZdZy) StandardLibGzipCompressorWrappercPtj|tjdyr)r rr"r>r$s rrz)StandardLibGzipCompressorWrapper.__init__Os""4T]]9Mr(Nrrr(rrrNsNr(rcd}t|ttt5}t|t dddj dj |t|t d|tvsJt|jtjk(sJtj|y#1swYxYw)Nrz#Compressor '{}' already registered.T)force) rrrrBrrKrJrrr"r>r)rrMs r+test_register_compressor_already_registeredrSs!O)E)GH  QwO-M-OPQ MM7>>OP)I)KSWX l ** *  ( 8 8DMM II I_%QQs B??Ccddl}d}|tvsJt|j|jjk(sJ|j dj }d}tj|||t|d5}|jtttk(sJ dddtj||k(sJtj||dzt|d5}|jtttk(sJ dddtj||k(sJy#1swYxYw#1swY0xYw)Nrrr4 test datar5r$r) lz4.framerrframe LZ4FrameFiler6r7rr8r&r?r_rr9)r<r compressorrrrs rtest_lz4_compressionrhs*J  %% %  # 3 3syy7M7M MM M KK # + +E DdEJ7 eT 7avvc+&';6667   U #t ++ +dEFN+ eT 7avvc+&';6667   U #t ++ +77 77s>(D:.(E:EEc|jdj}d}t}tt5}t j ||ddddj|tt5}t j ||dzddd|j|y#1swY]xYw#1swY'xYw)Nz test.nolz4rrr5r)r6r7r rrBrr8rK)r<rrmsgrMs r test_lz4_compression_without_lz4rs KK % - -E D !C  7w$67 MM#  0w$/0 MM# 7700sB(4B4(B14B=rc |jdj}tjj d}t j |||t j|d}t|tjsJtjj|||jjt jzdk(sJ|jj sJtjj dtjj dtjj dtjj dg}|jdj}t j |||t j|d}t#|D]\}}t|tjsJtjj||||jjt jzdk(sJ|jj rJtj$dtj&tj$d tj&tj$d tj&tj$d tj&tj$d tj&tj$d tj&tj$dtj&tj$dtj&tj$dtj&d }|jdj}t j |||t j|d} | j)D]\} }t|tjsJtjj|| ||jjt jzdk(sJ|jj rJy)NrrRrrrrz test1.mmapr{rOr ) a0a1a2a3a4a5a6a7a8z test2.mmap)r6r7rrZrandnrr8r9rcrhrerfctypesrNUMPY_ARRAY_ALIGNMENT_BYTESralignedr]rr}items) r<rrrqrh array_list l_reloadedidx array_dict d_reloadedkeys rtest_memmap_alignment_paddingrs KK $ , ,E Aa2   u 4F fbii (( (JJ!!!V, ==   H H HA MM M <<        J KK % - -Ej%(;""5C8J ,$ V&")),,, %%jov>}}!!L$L$LLPQQQQ||#### $ii*ii*ii*ii*ii"((+ii"((+ii"((+ii"((+ii"((+ J KK % - -Ej%(;""5C8J!'')$ V&")),,, %%jov>}}!!L$L$LLPQQQQ||#### $r(r)rrPr:r"r_rSr`rrZrrrrrP contextlibrpathlibrr  ImportErrorr7joblibrrjoblib.compressorrrr r r joblib.numpy_pickle_utilsr r rr joblib.testrjoblib.test.commonrrrrrrjoblib.testingrrrtypelist_noneappendrj_typebool_boolr_intfloat_floatcomplex_complexr_string_tuple_list_dictr__builtinr r"rr/ _instance_objectr?rDrCrNrxrrrrrrrrrrrrrr'rJr+r.r;rFrIrOrTr]rarcrfrhrencoder}rrrrdrrrlrrrrrrrrrrrrrrDEFAULT_PROTOCOL protocolsrrrr(rr=sF  5 65    Q 1v q 1: a&             H   + Z!Q  Xx !!!!)  B/0!1!  Z45.G6 .Gb ; ; )/ )/X . .$  -  -  &  Z$'/( /. & &2 ; ;6  X*v !, !,H ; ;0 '4 '4T  [9::;:   6 = =g F  2 9 9' B  "#"  01828  Z# Y %!'&$ !'H  !"U,A$BC $    $ - -<  '  '  5  5    $  "  "  NFNN1d3d:;BB9MM #$<= y)/*/d [2r2sB345 Z34"5" Z!R%G&G>82::8 GG ( (6 = ="  >  > B B>  0  0&0 ^aR[)8*8&O#4O N'8N &* , ,.     $ $ %  f555 V,,-  Z#3$$ 3$C$ DsS??T  T