
    e!h                        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       d Z e eej(                        e        e eej,                        e       d	 Zd
 Z eej2                  e       ej4                  dk7  rddlmZ nddlmZ 	 d dlm Z  dZ!ejF                  jI                  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j4                  dk(  rd dl.m/Z/ 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     o/var/www/html/diagnosisapp-backend/venv/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   c                 >    t         | j                  | j                  ffS r   )r   __objclass__r   r   s    r   _reduce_method_descriptorr%   8   s    Q^^QZZ000r   c                 \    t         | j                  | j                  | j                  xs i ffS r   )_rebuild_partialfuncargskeywords)ps    r   _reduce_partialr,   A   s%    affaffajj.>B???r   c                 4    t        j                  | g|i |S r   )	functoolspartial)r(   r)   r*   s      r   r'   r'   E   s    T5D5H55r   win32   )_mk_inheritable)_win_reduction)cloudpickler4   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) Nr4   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.r1   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   sh    "&"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   rG   itemsr   )r   writerreducersrI   loky_dttypereduce_funcloky_pickler_clss          r   rJ   z6set_loky_pickler.<locals>.CustomizablePickler.__init__   s    %%dFX%Ft-. t223 "00557 NN?+ $$W- &.^^%5 1!kdK01r   c                 "    || j                   |<   y)z@Attach a reducer function to a given type in the dispatch table.N)r>   )r   rT   rU   s      r   r   z6set_loky_pickler.<locals>.CustomizablePickler.register   s    (3D%r   )r   r    r!   r?   rG   r   rJ   r   )rV   s   r   CustomizablePicklerr<      s     ,	1* -1;K 	14	4r   rX   )ENV_LOKY_PICKLER_loky_pickler_namejoblib.externals.cloudpickler9   	importlibr:   PicklerImportErrorAttributeErrorr)   msgr   debug_LokyPickler)loky_picklerr:   module_picklee
extra_inforX   rV   s         @r   set_loky_picklerrg   ^   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   )rZ   r   r   r   get_loky_pickler_nameri      s    r   c                      t         S r   )rb   r   r   r   get_loky_picklerrk      s    r   c                 >    t        |||      j                  |        y)z1Replacement for pickle.dump() using _LokyPickler.rR   rI   N)rb   dump)objfilerR   rI   s       r   rn   rn      s     8<AA#Fr   c                 h    t        j                         }t        | |||       |j                         S )Nrm   )ioBytesIOrn   	getbuffer)ro   rR   rI   bufs       r   dumpsrv      s)     **,CcHx8==?r   )rn   rv   r   r   rg   )	duplicaterw   r   )NN)0rM   rr   r.   rB   sysosmultiprocessingr   r5   r   r   r   r   r   r   rT   r   r   r%   listappendint__add__r,   r'   r/   platform_posix_reductionr2   r8   r3   joblib.externalsr4   DEFAULT_ENVr^   environgetrY   rb   rZ   rg   ri   rk   rn   rv   __all__multiprocessing.reductionrw   r   r   r   <module>r      sR    	   
 	   *
 -:  	bdff~ & bdd^ $1 	dkk	5 6 ckk	5 6@6 			O ,<<71 ,K
 ::>>.+>  ]&@
  G E<<73}G O  Ks   D= =EE