
    0Fie                       d dl m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  e	ej                   e	d          k    Zej        Z ej        e          Z G d dej                  Zd Zded	d
ZdddZdS )    )annotationsN)parse)dask_deserializedask_serializez2.0.0c                      e Zd Zd ZdS )_DaskPicklerc                    t          |          rt          S 	 t          j        t	          |                    }t          j        t	          |                    }| ||          fS # t          $ r
 t          cY S w xY w)N)_always_use_pickle_forNotImplementedr   dispatchtyper   	TypeError)selfobj	serializedeserializes       ;lib/python3.11/site-packages/distributed/protocol/pickle.pyreducer_overridez_DaskPickler.reducer_override   s     "#&& 	"!!	"&/S		::I*3DII>>K		#.. 	" 	" 	"!!!!	"s   AA' 'A;:A;N)__name__
__module____qualname__r        r   r   r      s#        
" 
" 
" 
" 
"r   r   c                    | j         j                            d          \  }}}|dk    rdd l}t	          | |j                  S |dk    r#dd l}t	          | |j        j        j	                  S |dk    rt	          | t          t          f          S dS )N.numpyr   pandasbuiltinsF)	__class__r   	partitionr   
isinstancendarrayr   coregenericNDFramestrbytes)xmod_nppds        r   r
   r
   "   s    &0055ICA
g~~!RZ(((	!RW_4555	
		!c5\***ur   )buffer_callbackprotocolc               P   g }d|pt           i}|d         dk    r|
|j        |d<   	 	 t          j        | fi |}nm# t          $ r` t          j                    }t          |fi |}|                                 |	                    |            |
                                }Y nw xY wd|v s=t          r~t          t          j        |           dd          t          j                    v rHt#          |          dk     st%          |           s&|                                 t          j        | fi |}nb# t          $ rU 	 |                                 t          j        | fi |}n*# t          $ r t&                              d|             w xY wY nw xY w||D ]} ||           |S )	zManage between cloudpickle and pickle

    1.  Try pickle
    2.  If it is short then check if it contains __main__
    3.  If it is long, then first check type, then check __main__
    r.      Nr-   s   __main__r   i  zFailed to serialize %s.)HIGHEST_PROTOCOLappendpickledumps	ExceptionioBytesIOr   cleardumpgetvalueCLOUDPICKLE_GE_20getattrinspect	getmodulecloudpicklelist_registry_pickle_by_valuelenr
   logger	exception)	r(   r-   r.   buffersdump_kwargsresultfpicklerbs	            r   r4   r4   2   s    Gx;+;<K:!##(C)0%&	"\!33{33FF 	" 	" 	"
A"14444GMMOOOLLOOOZZ\\FFF	" &   !)!,,j$??8::; ; 6{{T!!)?)B)B!$*1<<<<   	MMOOO &q88K88FF 	 	 	6:::	 F " 	 	AOAMsF   ; D2 A'B%"D2 $B%%BD2 2
F=&E$#F$'FFFr   rD   c                   	 |rt          j        | |          S t          j        |           S # t          $ r' t                              d| d d         d            w xY w)NrJ   zFailed to deserialize %si'  T)exc_info)r3   loadsr5   rB   info)r(   rD   s     r   rM   rM   [   sq     	#<73333<??"   .&5&	DIIIs   . . 1A)
__future__r   r=   r6   loggingr3   r?   packaging.versionr   parse_versiondistributed.protocol.serializer   r   __version__r;   r1   	getLoggerr   rB   Picklerr   r
   r4   rM   r   r   r   <module>rW      s3   " " " " " "  				       4 4 4 4 4 4 K K K K K K K K!M+"9::mmG>T>TT * 		8	$	$" " " " "6> " " "    !%/? & & & & &R        r   