o
    \i                     @   s  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d Zdd ZG dd	 d	Zeee je eeeje d
d Zeeeje eeeje dd Zdd Zeeje ejdkrvddlmZ nddlmZ z
d dlm Z  dZ!W n e"y   dZ!Y nw ej#$de!Z%da&da'd%ddZ(dd Z)dd Z*e(  d&ddZ+d&d d!Z,g d"Z-ejdkrd d#l.m/Z/ e-d$g7 Z-dS dS )'    N)util)loadsHIGHEST_PROTOCOLc                 C   s   |t | < d S N)_dispatch_table)type_reduce_function r	   /var/www/www-root/data/www/176.119.141.140/sports-predictor/venv/lib/python3.10/site-packages/joblib/externals/loky/backend/reduction.pyregister   s   r   c                 C   s.   | j d u rt| j| jjffS t| j | jjffS r   )__self__getattr	__class____func____name__mr	   r	   r
   _reduce_method$   s   
r   c                   @   s    e Zd Zdd Zedd ZdS )_Cc                 C      d S r   r	   )selfr	   r	   r
   f,   s   z_C.fc                 C   r   r   r	   )clsr	   r	   r
   h/      z_C.hN)r   
__module____qualname__r   classmethodr   r	   r	   r	   r
   r   +   s    r   c                 C   s   t | j| jffS r   )r   __objclass__r   r   r	   r	   r
   _reduce_method_descriptor8   s   r   c                 C   s   t | j| j| jp	i ffS r   )_rebuild_partialfuncargskeywords)pr	   r	   r
   _reduce_partialA      r%   c                 C   s   t j| g|R i |S r   )	functoolspartial)r!   r"   r#   r	   r	   r
   r    E   r&   r    win32   )_mk_inheritable)_win_reduction)cloudpickler-   pickleLOKY_PICKLERc              
      s   | d u rt } d  | dv rd} | tkrd S | dkrddlm  n<zddlm} || }|j W n, ttfyZ } zd|  d}|j	d | f|j	dd   |_	|j	d |_
|d }~ww td	| rb| nd d
 G  fddd }|a| ad S )N) Nr-   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.r*   zUsing 'z' for serialization.c                       s2   e Zd Z Zdd Zdef fdd	Zdd ZdS )z-set_loky_pickler.<locals>.CustomizablePicklerc                 S   sB   | j  D ]}t|dd }t|tjr|| |  nq|| _d S )Ndispatch_table)_loky_pickler_clsmror   
isinstancetypesMemberDescriptorType__set__r3   )r   r3   ancestor_classdt_attributer	   r	   r
   _set_dispatch_table   s   

zAset_loky_pickler.<locals>.CustomizablePickler._set_dispatch_tableNc                    sr    j | ||d |d u ri }t| drt| j}ntj }|t | | |	 D ]
\}}| 
|| q,d S )N)protocolr3   )__init__hasattrdictr3   copyregcopyupdater   r<   itemsr   )r   writerreducersr=   loky_dttypereduce_funcloky_pickler_clsr	   r
   r>      s   



z6set_loky_pickler.<locals>.CustomizablePickler.__init__c                 S   s   || j |< dS )z@Attach a reducer function to a given type in the dispatch table.N)r3   )r   rH   rI   r	   r	   r
   r      s   z6set_loky_pickler.<locals>.CustomizablePickler.register)r   r   r   r4   r<   r   r>   r   r	   rJ   r	   r
   CustomizablePickler   s
    rL   )ENV_LOKY_PICKLER_loky_pickler_namejoblib.externals.cloudpickler1   	importlibr2   PicklerImportErrorAttributeErrorr"   msgr   debug_LokyPickler)loky_picklerr2   module_picklee
extra_inforL   r	   rJ   r
   set_loky_pickler^   s:   
 
6r[   c                   C      t S r   )rN   r	   r	   r	   r
   get_loky_pickler_name   r   r]   c                   C   r\   r   )rV   r	   r	   r	   r
   get_loky_pickler   r   r^   c                 C   s   t |||d|  dS )z1Replacement for pickle.dump() using _LokyPickler.rF   r=   N)rV   dump)objfilerF   r=   r	   r	   r
   r`      s   r`   c                 C   s    t  }t| |||d | S )Nr_   )ioBytesIOr`   	getbuffer)ra   rF   r=   bufr	   r	   r
   dumps   s   rg   )r`   rg   r   r   r[   )	duplicaterh   r   )NN)0rA   rc   r'   r7   sysosmultiprocessingr   r.   r   r   r   r   r   r   rH   r   r   r   listappendint__add__r%   r    r(   platform_posix_reductionr+   r0   r,   joblib.externalsr-   DEFAULT_ENVrR   environgetrM   rV   rN   r[   r]   r^   r`   rg   __all__multiprocessing.reductionrh   r	   r	   r	   r
   <module>   sV   
		

`


