
    sKg                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
 i Zd Zd Z G d d      Z e e e       j                         e        e eej"                        e        eed      s5d	 Z e eej*                        e        e eej.                        e       d
 Zd Z eej4                  e       ej6                  dk7  rddlmZ nddlmZ 	 d dl m!Z! dZ"ejH                  jK                  de"      Z&da'da(ddZ)d Z*d Z+ e)        ddZ,ddZ-g dZ.ej6                  dk(  rd dl/m0Z0 e.dgz  Z.yy# e#$ r dZ"Y cw xY w)    N)util)loadsHIGHEST_PROTOCOLc                     |t         | <   y N)_dispatch_table)type_reduce_functions     k/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/joblib/externals/loky/backend/reduction.pyregisterr      s    ,OE    c                     | j                   (t        | j                  | j                  j                  ffS t        | j                   | j                  j                  ffS r   )__self__getattr	__class____func____name__ms    r   _reduce_methodr   $   sH    zzajj&9&9:::QZZ%8%8999r   c                   "    e Zd Zd Zed        Zy)_Cc                      y r    )selfs    r   fz_C.f,   s    r   c                      y r   r   )clss    r   hz_C.h/   s    r   N)r   
__module____qualname__r   classmethodr   r   r   r   r   r   +   s      r   r   pypy_version_infoc                 >    t         | j                  | j                  ffS r   )r   __objclass__r   r   s    r   _reduce_method_descriptorr&   :   s    444r   c                 \    t         | j                  | j                  | j                  xs i ffS r   )_rebuild_partialfuncargskeywords)ps    r   _reduce_partialr-   B   s%    affaffajj.>B???r   c                 4    t        j                  | g|i |S r   )	functoolspartial)r)   r*   r+   s      r   r(   r(   F   s    T5D5H55r   win32   )_mk_inheritable)_win_reduction)cloudpickler5   pickleLOKY_PICKLERc                    | t         } d | dv rd} | t        k(  ry | dk(  rddlm n	 ddlm}  ||       }|j                  t        j                  d	| r| nd d
        G fdd      }|a| ay # t        t        f$ rI}d|  d}|j                  d   |z   f|j                  dd  z   |_	        |j                  d   |_
        |d }~ww xY w)N) Nr5   r   )CloudPickler)import_modulez4
This error occurred while setting loky_pickler to 'zQ', as required by the env variable LOKY_PICKLER or the function set_loky_pickler.r2   zUsing 'z' for serialization.c                   0    e Zd ZW  Zd Zdef fd	Zd Zy)-set_loky_pickler.<locals>.CustomizablePicklerc                     | j                   j                         D ]D  }t        |dd       }t        |t        j
                        s+|j                  | |        || _        y  || _        y )Ndispatch_table)_loky_pickler_clsmror   
isinstancetypesMemberDescriptorType__set__r?   )r   r?   ancestor_classdt_attributes       r   _set_dispatch_tablezAset_loky_pickler.<locals>.CustomizablePickler._set_dispatch_table   sc    "&"8"8"<"<">&~7GNlE,F,FG !((~>
 #1D% #?$ #1Dr   Nc                 V   j                  | ||       |i }t        | d      rt        | j                        }nt        j                  j                         }|j                  t               | j                  |       |j                         D ]  \  }}| j                  ||        y )N)protocolr?   )__init__hasattrdictr?   copyregcopyupdater   rH   itemsr   )r   writerreducersrJ   loky_dttypereduce_funcloky_pickler_clss          r   rK   z6set_loky_pickler.<locals>.CustomizablePickler.__init__   s    %%dFX%Ft-. t223 "00557 NN?+ $$W- &.^^%5!kdK0 &6r   c                 "    || j                   |<   y)z@Attach a reducer function to a given type in the dispatch table.N)r?   )r   rU   rV   s      r   r   z6set_loky_pickler.<locals>.CustomizablePickler.register   s    (3D%r   )r   r    r!   r@   rH   r   rK   r   )rW   s   r   CustomizablePicklerr=      s     ,	1* -1;K 	14	4r   rY   )ENV_LOKY_PICKLER_loky_pickler_namejoblib.externals.cloudpickler:   	importlibr;   PicklerImportErrorAttributeErrorr*   msgr   debug_LokyPickler)loky_picklerr;   module_picklee
extra_inforY   rW   s         @r   set_loky_picklerrh   _   s	    ' z!$))}$Q	/),7M,44 	JJ
,,MB C 	
44. 44l 'L%M ^, 	!N #AA 
 ffQi*,.;AFFF1IAEG	s   A2 2C
ACC
c                      t         S r   )r[   r   r   r   get_loky_pickler_namerj      s    r   c                      t         S r   )rc   r   r   r   get_loky_picklerrl      s    r   c                 >    t        |||      j                  |        y)z1Replacement for pickle.dump() using _LokyPickler.rS   rJ   N)rc   dump)objfilerS   rJ   s       r   ro   ro      s     8<AA#Fr   c                 h    t        j                         }t        | |||       |j                         S )Nrn   )ioBytesIOro   	getbuffer)rp   rS   rJ   bufs       r   dumpsrw      s)     **,CcHx8==?r   )ro   rw   r   r   rh   )	duplicaterx   r   )NN)1rN   rs   r/   rC   sysosmultiprocessingr   r6   r   r   r   r   r   r   rU   r   r   rL   r&   listappendint__add__r-   r(   r0   platform_posix_reductionr3   r9   r4   joblib.externalsr5   DEFAULT_ENVr_   environgetrZ   rc   r[   rh   rj   rl   ro   rw   __all__multiprocessing.reductionrx   r   r   r   <module>r      s_    	   
 	   *
 -:  	bdff~ & bdd^ $ s'(5 T$++ 9:T#++ 9:@6 			O ,<<71 ,K
 ::>>.+>  ]&@
  G E<<73}G O  Ks   $E EE