
    .Ph                     ~    d dl Z d dlmZ d dlmZmZ i Z G d d          Z G d de          Zd Z	d	 Z
d
 ZddZdS )    N)partial)dumpsloadsc                   "    e Zd ZddZd Zd ZdS )CloudpickledObjectWrapperFc                 "    || _         || _        d S N_obj_keep_wrapper)selfobjkeep_wrappers      i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/joblib/externals/loky/cloudpickle_wrapper.py__init__z"CloudpickledObjectWrapper.__init__
   s    	)    c                 l    t          | j                  }| j        s
t          |ffS t          || j        ffS r	   )r   r   r   r   _reconstruct_wrapper)r   _pickled_objects     r   
__reduce__z$CloudpickledObjectWrapper.__reduce__   s=    	**! 	-?,,,#ot7I%JJJr   c                 T    |dvrt          | j        |          S t          | |          S )Nr
   )getattrr   )r   attrs     r   __getattr__z%CloudpickledObjectWrapper.__getattr__   s2     00049d+++tT"""r   N)F)__name__
__module____qualname__r   r   r    r   r   r   r   	   sI        * * * *K K K# # # # #r   r   c                       e Zd Zd ZdS )CallableObjectWrapperc                      | j         |i |S r	   )r   )r   argskwargss      r   __call__zCallableObjectWrapper.__call__   s    ty$)&)))r   N)r   r   r   r$   r   r   r   r    r       s#        * * * * *r   r    c                 d    t          |           rt          | |          S t          | |          S )Nr   )callabler    r   )r   r   s     r   _wrap_non_picklable_objectsr(   #   s7    }} E$S|DDDD$S|DDDDr   c                 @    t          |           }t          ||          S r	   )r   r(   )r   r   r   s      r   r   r   )   s    

 
 C&sL999r   c                 "   dt          | dd          v }t          | t                    rRt          t          | j                  gd | j        D             R i d | j                                        D             S t          |           rJt          | dd          }|t          |dd          t          j
        z  z  }t          | d	d          }|d
|v z  }|s| S t                              |           }|t          | d          }|t          | <   |S )N__main__r    c                 ,    g | ]}t          |          S r   _wrap_objects_when_needed).0as     r   
<listcomp>z-_wrap_objects_when_needed.<locals>.<listcomp>5   s!    ===q'**===r   c                 4    i | ]\  }}|t          |          S r   r.   )r0   kvs      r   
<dictcomp>z-_wrap_objects_when_needed.<locals>.<dictcomp>6   s7       Aq ,Q//  r   __code__co_flagsr   r   z<lambda>Fr&   )r   
isinstancer   r/   funcr"   keywordsitemsr'   inspect	CO_NESTED
WRAP_CACHEgetr(   )r   	need_wrap	func_code	func_namewrapped_objs        r   r/   r/   .   sD    gc<<<<I#w 
%ch//
==CH===
 
 
 L..00  
 
 	
 }} - CR00	WY
A669JJJ	 CR00	Z9,,	 
..%%K1#EJJJ%
3r   Tc                      t          j                   r$ G  fddt                    } j        |_        |S t	                     S )a  Wrapper for non-picklable object to use cloudpickle to serialize them.

    Note that this wrapper tends to slow down the serialization process as it
    is done with cloudpickle which is typically slower compared to pickle. The
    proper way to solve serialization issues is to avoid defining functions and
    objects in the main scripts and to implement __reduce__ functions for
    complex classes.
    c                       e Zd Z fdZdS )<wrap_non_picklable_objects.<locals>.CloudpickledClassWrapperc                 0     |i || _         | _        d S r	   r
   )r   r"   r#   r   r   s      r   r   zEwrap_non_picklable_objects.<locals>.CloudpickledClassWrapper.__init__]   s'    C000	%1"""r   N)r   r   r   r   )r   r   s   r   CloudpickledClassWrapperrG   \   s3        2 2 2 2 2 2 2 2r   rI   r&   )r=   isclassr   r   r(   )r   r   rI   s   `` r   wrap_non_picklable_objectsrK   O   sz     s (	2 	2 	2 	2 	2 	2 	2 	2'@ 	2 	2 	2
 -0L )'' 'sFFFFr   )T)r=   	functoolsr   joblib.externals.cloudpickler   r   r?   r   r    r(   r   r/   rK   r   r   r   <module>rN      s           5 5 5 5 5 5 5 5 
# # # # # # # #** * * * *5 * * *
E E E: : :
  BG G G G G Gr   