B @`@sdZddlZddlZddlZddlZddlmZmZddl Z ddl m Z ddl m Z erhddl mZmZddZd ZGd d d ZGd d d Zdddddddddddddddddddddd d!d"d#d$dd%d&ZGd'd(d(ejZeeje_eejejd<d)d*Zeejejd<d+d,Zyeejejd<Wneefk rLYnXd:eee d.d/d0Z!d1d2d3d4e"e eed5d6d7Z#ej$d8d9Z%dS);z/ Support pre-0.12 series pickle compatibility. N) TYPE_CHECKINGOptional) BaseOffset)Index) DataFrameSeriesc Cs|j}|}|d}t|r8t|dtkr8|dj}y|||d<dStk r}ztd}|t|kry|d}t||d<dStk rYqXn,|rt |dt r|d}|j||d<dSWdd}~XYnXdS)Nrz:_reconstruct: First argument must be a sub-type of ndarray) stackpoplentype__name__ TypeErrorstrobject__new__ issubclassr)selfr argsfuncnerrmsgclsr?/tmp/pip-unpacked-wheel-q9tj5l6a/pandas/compat/pickle_compat.py load_reduces,   rz Loading a saved '{cls}' as a {new} with sparse values. '{cls}' is now removed. You should re-save this dataset in its new format. c@seZdZddddZdS)_LoadSparseSeriesr)returncCs0ddlm}tjtjdddtdd|tdS) Nr)r SparseSeriesr)rnew) stacklevel)Zdtype)pandasrwarningswarn _sparse_msgformat FutureWarningr)rrrrrrCs   z_LoadSparseSeries.__new__N)r __module__ __qualname__rrrrrr=src@seZdZddddZdS)_LoadSparseFramer)rcCs,ddlm}tjtjdddtdd|S)Nr)rSparseDataFramer)rr r!)r")r#rr$r%r&r'r()rrrrrrUs   z_LoadSparseFrame.__new__N)r r)r*rrrrrr+Osr+)zpandas.core.arrays SparseArray)ZnumpyZndarray)zpandas.core.indexes.frozen FrozenList)zpandas.core.seriesr)zpandas.core.sparse.seriesr)zpandas._libs.sparse BlockIndex)zpandas._libs.tslib Timestamp)zpandas._libs.tslibs.periodPeriod)zpandas._libs.tslibs.nattype__nat_unpickle)zpandas.core.arrays.sparser-)zpandas.compat.pickle_compatr)zpandas.core.sparse.framer+)zpandas.core.indexes.base _new_Index)zpandas.core.indexes.baser)zpandas.core.indexes.numeric Int64Index)zpandas.core.indexes.range RangeIndex)zpandas.core.indexes.multi MultiIndex)zpandas.core.indexes.datetimes_new_DatetimeIndex)zpandas.core.indexes.datetimes DatetimeIndex)zpandas.core.indexes.period PeriodIndex)zpandas.core.arrays Categorical)zpandas.core.indexes.timedeltasTimedeltaIndex)zpandas.core.indexes.numeric Float64Index)zpandas.compat.pickle_compatr+))zpandas.core.sparse.arrayr-)zpandas.core.base FrozenNDArray)zpandas.core.indexes.frozenr=)zpandas.core.baser.)zpandas.core.seriesZ TimeSeries)zpandas.sparse.seriesZSparseTimeSeries)zpandas._sparser/)z pandas.tslibr0)zpandas._periodr1)zpandas._libs.periodr1)z pandas.tslibr2)zpandas._libs.tslibr2)zpandas.sparse.arrayr-)zpandas.sparse.seriesr)zpandas.sparse.framer,)zpandas.indexes.baser3)zpandas.indexes.baser)zpandas.indexes.numericr4)zpandas.indexes.ranger5)zpandas.indexes.multir6)zpandas.tseries.indexr7)zpandas.tseries.indexr8)zpandas.tseries.periodr9)zpandas.core.categoricalr:)zpandas.tseries.tdir;)zpandas.indexes.numericr<)zpandas.core.sparse.seriesr)zpandas.core.sparse.framer,cseZdZfddZZS) Unpicklercs&||f}t||\}}t||S)N)_class_locations_mapgetsuper find_class)rmodulenamekey) __class__rrrBszUnpickler.find_class)r r)r*rB __classcell__rr)rFrr>sr>cCsH|j}|jd}t|tr*t|}n|j|f|}||jd<dS)Nr)r r rrrr)rrrobjrrr load_newobjs     rIcCsT|j}|j}|j}t|tr4t|}n|j|f||}||dS)N)r r rrrrappend)rkwargsrrrHrrrload_newobj_exs     rLF)encoding is_verbosec CsVy6|d|dk r"t||d}nt|}||_|Sttfk rPYnXdS)z Load a pickle, with a provided encoding, Parameters ---------- fh : a filelike object encoding : an optional encoding is_verbose : show exception output rN)rM)seekr>rNload ValueErrorr)fhrMrNZuprrrrPs  rPTASCIIstrict) fix_importsrMerrors) bytes_objectrUrMrVcCst|}t||||dS)z% Analogous to pickle._loads. )rUrMrV)ioBytesIOr>rP)rWrUrMrVfdrrrloadss r[c cs0tj}zttdtdVWdttd|XdS)z8 Temporarily patch pickle to use our unpickler. r[N)pklr[setattr)Z orig_loadsrrr patch_pickles   r^)NF)&__doc__ contextlibcopyrXpickler\typingrrr$Zpandas._libs.tslibsrr#rrrrr&rr+r? _Unpicklerr>dispatchREDUCErINEWOBJrL NEWOBJ_EXAttributeErrorKeyErrorrboolrPbytesr[contextmanagerr^rrrrsr  &