
    .iX                       d Z ddlmZ ddlZddlZddlZddlmZmZ ddl	Z
ddlmZ ddlmZ ddlmZmZmZ ddlmZ erdd	lmZ d
ddddddZ G d dej0                        Zdddd	 	 	 	 	 	 	 	 	 ddZej6                  dd       Zy)z,
Pickle compatibility to pandas version 1.0
    )annotationsN)TYPE_CHECKINGAny)NDArrayBacked)
BaseOffset)DatetimeArrayPeriodArrayTimedeltaArray)BlockManager)	Generator)zpandas._libs.internals_unpickle_block)pandas._libs.tslibs.nattype_nat_unpickle)zpandas.core.indexes.baseIndex)zpandas.core.dtypes.dtypesSparseDtype))zpandas.core.internals.blocks	new_block)r   __nat_unpickle)pandas.core.indexes.numeric
Int64Index)r   UInt64Index)r   Float64Index)zpandas.core.arrays.sparse.dtyper   c                       e Zd Zd fdZej
                  j                  j                         ZddZeeej                  d   <   ddZ
e
eej                  d   <    xZS )	Unpicklerc                ^    ||f}t         j                  ||      \  }}t        |   ||      S )N)_class_locations_mapgetsuper
find_class)selfmodulenamekey	__class__s       Y/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/compat/pickle_compat.pyr   zUnpickler.find_classC   s4    tn+//S9w!&$//    c                X   | j                   }|j                         }|d   }	  || |d<   y # t        $ rt |r?t        |d   t              r,t        |d   t              r|d   } |j                  | |d<   Y y |r/t        |d   t              r|d   }t        j                  | |d<   Y y  w xY w)Nr   )
stackpop	TypeError
isinstancetype
issubclassr   __new__r	   r   )r   r(   argsfuncclss        r$   load_reducezUnpickler.load_reduceJ   s    

yy{Ry	dE"I 	 
47D1ja*6U1g'CKK.b	*T!Wk:1g)1148b		s   , AB)6/B)'B)r   c                   | j                   j                         }| j                   j                         }t        |t              r7|s5t	        j
                  g d      }|j                  |||j                        }nyt        |t              r7|s5t	        j
                  g d      }|j                  |||j                        }n2|t        u r|s|j                  |dg d      }n |j                  |g| }| j                  |       y )NzM8[ns])dtypezm8[ns] F)r(   r)   r-   r   nparrayr.   r4   r
   r   append)r   r/   r1   arrobjs        r$   load_newobjzUnpickler.load_newobja   s    zz~~jjnn c=)$((2X.C++c3		2C^,T((2X.C++c3		2CL ++c2r51C#++c)D)CCr%   )r    strr!   r<   returnr   )r=   None)__name__
__module____qualname__r   pickle
_Unpicklerdispatchcopyr2   REDUCEr;   NEWOBJ__classcell__)r#   s   @r$   r   r   B   sX    0
   ))..0H* "-HV]]1" "-HV]]1r%   r   TASCIIstrictfix_importsencodingerrorsc               f    t        j                  |       }t        ||||      j                         S )z%
    Analogous to pickle._loads.
    rK   )ioBytesIOr   load)bytes_objectrL   rM   rN   fds        r$   loadsrU   u   s/     
L	!B
hv
dfr%   c               #     K   t         j                  } 	 t        t         dt               d t        t         d|        y# t        t         d|        w xY ww)z8
    Temporarily patch pickle to use our unpickler.
    rU   N)rB   rU   setattr)
orig_loadss    r$   patch_picklerY      s=     
 J-',,s   A? AAA)
rS   bytesrL   boolrM   r<   rN   r<   r=   r   )r=   zGenerator[None])__doc__
__future__r   
contextlibrP   rB   typingr   r   numpyr6   pandas._libs.arraysr   pandas._libs.tslibsr   pandas.core.arraysr   r	   r
   pandas.core.internalsr   collections.abcr   r   rC   r   rU   contextmanagerrY   r5   r%   r$   <module>rg      s    #  	 
  - * 
 /)4
8
45693 D0-!! 0-l   	
  	  	- 	-r%   