+
    NV-jÔ ã                  ó0  a € 0 t $ R t^ RIHt ^ RIHt ^ RIt^ RIHtH	t	 ^ RI
t
^ RIt^ RIt^ RIHt ^ RIHtHtHtHtHtHtHtHt ^ RIt^ RIt^ RIHtHtHt ^ RIH t H!t" ^ R	I#H$t$ ^ R
I%H&t& ^ RI'H(t( ^ RI)H*t* ^ RI+H,t, ^ RI-H.t.H/t/H0t0H1t1H2t2 ^ RI3H4t4H5t5 ^ RI6H7t7 ^ RI8H9t9H:t:H;t;H<t<H=t=H>t> ^ RI?H@t@HAtAHBtBHCtC ^ RIDHEtE ^ RIFHGtGHHtHHItIHJtJHKtKHLtLHMtMHNtNHOtOHPtPHQtQ ^ RIRHStSHTtTHUtU ^ RIVHWtW ^ RIXHYtY ^ RIZH[u H\t] ^ RI^H_t_H`t` ^ RIaHbtcHdtd ^ RIeHftf ^ RIgHhth ^ RIiHjtjHktk ]'       d7   ^ RIlHmtmHntnHotoHptp ^ RIqHrtrHsts ^ RItHutuHvtvHwtw ^ R IxHytyHztzH{t{H|t|H}t}H~t~Ht ^ R!I€H�t� R"t‚R#tƒR$ R% lt„R& t…]_t†R']‡R(&   R) R* ltˆR+t‰R,]‡R-&   R.tŠR,]‡R/&   R0t‹R,]‡R1&   R2R3R3R3R4R5R5R5/tŒ]G^ ./t�R6tŽR,]‡R7&   R8t�R,]‡R9&   ]EP                   ! R:4      ;_uu_ 4        ]EP"                  ! R;R<]Ž]EP$                  R=7       ]EP"                  ! R>R]�]EP&                  ! . R�O4      R=7       RRR4       Rs”R?]‡R@&   R<s•RA t–R�RB RC llt—]5! RD4      R‘RE RF ll4       t˜RG RH lt™]5! RD4       ! RI RJ4      4       tš ! RK RL4      t› ! RM RN4      tœ ! RO RP]œ4      t� ! RQ RR]œ4      tž ! RS RT]ž4      tŸ ! RU RV]Ÿ4      t  ! RW RX4      t¡ ! RY RZ]¡4      t¢ ! R[ R\]¢4      t£ ! R] R^]¢4      t¤ ! R_ R`]¤4      t¥ ! Ra Rb]¡4      t¦ ! Rc Rd]¦4      t§ ! Re Rf]¦4      t¨ ! Rg Rh]¨4      t© ! Ri Rj]©4      tª ! Rk Rl]ª4      t« ! Rm Rn]©4      t¬ ! Ro Rp]©4      t­R’Rq Rr llt®Rs Rt lt¯Ru Rv lt°Rw Rx lt±Ry Rz lt²R{ R| lt³R} R~ lt´R R€ ltµR� R‚ lt¶Rƒ R„ lt·R… R† lt¸R‡ Rˆ lt¹R‰ RŠ ltºR‹ RŒ lt» ! R� RŽ4      t¼R#   + '       g   i     ELƒ; i)“zY
High level interface to PyTables for reading and writing pandas data structures
to disk
)Úannotations)ÚsuppressN)ÚdateÚtzinfo)Údedent)ÚTYPE_CHECKINGÚAnyÚFinalÚLiteralÚSelfÚ	TypeAliasÚcastÚoverload)ÚconfigÚ
get_optionÚusing_string_dtype)ÚlibÚwriters)Úis_string_array)Ú	timezones)ÚHAS_PYARROW)Úimport_optional_dependency)Úpatch_pickle)ÚAttributeConflictWarningÚClosedFileErrorÚIncompatibilityWarningÚPerformanceWarningÚPossibleDataLossError)Úcache_readonlyÚ
set_module)Úfind_stack_level)Úensure_objectÚis_bool_dtypeÚis_complex_dtypeÚis_list_likeÚis_string_dtypeÚneeds_i8_conversion)ÚCategoricalDtypeÚDatetimeTZDtypeÚExtensionDtypeÚPeriodDtype)Úarray_equivalent)Ú	DataFrameÚDatetimeIndexÚIndexÚ
MultiIndexÚPeriodIndexÚ
RangeIndexÚSeriesÚStringDtypeÚTimedeltaIndexÚconcatÚisna)ÚCategoricalÚDatetimeArrayÚPeriodArray)Útz_to_dtype)ÚBaseStringArray)ÚPyTablesExprÚmaybe_expression)ÚarrayÚextract_array)Úensure_index)Ústringify_path)ÚadjoinÚpprint_thing)ÚCallableÚHashableÚIteratorÚSequence)Ú
ModuleTypeÚTracebackType)ÚColÚFileÚNode)ÚAnyArrayLikeÚ	ArrayLikeÚAxisIntÚDtypeArgÚFilePathÚTimeUnitÚnpt)ÚBlockz0.15.2úUTF-8c               ó    € V ^8„  d   QhRRRR/# )é   Úencodingú
str | NoneÚreturnÚstr© )Úformats   "Úc/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pandas/io/pytables.pyÚ__annotate__r_   –   s   € ÷ ñ ˜zð ¨cñ ó    c                ó   € V f   \         p V # ©N)Ú_default_encoding©rX   s   &r^   Ú_ensure_encodingre   –   s   € àÒÜ$ˆà€Or`   c                óH   € \        V \        4      '       d   \        V 4      p V # )zÃ
Ensure that an index / column name is a str (python 3); otherwise they
may be np.string dtype. Non-string dtypes are passed through unchanged.

https://github.com/pandas-dev/pandas/issues/13492
)Ú
isinstancer[   ©Únames   &r^   Ú_ensure_strrj   ž   s   € ô �$œ×ÒÜ�4‹yˆØ€Kr`   r   ÚTermc               ó   € V ^8„  d   QhRR/# )rW   Úscope_levelÚintr\   )r]   s   "r^   r_   r_   ­   s   € ÷ :ñ : Sñ :r`   c                ó:  € V^,           p\        V \        \        34      '       d=   V  Uu. uF/  pVf   K	  \        V4      '       d   \	        W2^,           R7      MTNK1  	  p pM\        V 4      '       d   \	        WR7      p V e   \        V 4      '       d   V # R# u upi )zÄ
Ensure that the where is a Term or a list of Term.

This makes sure that we are capturing the scope of variables that are
passed create the terms here with a frame_level=2 (we are 2 levels down)
N©rm   )rg   ÚlistÚtupler=   rk   Úlen)Úwhererm   ÚlevelÚterms   &&  r^   Ú_ensure_termrw   ­   s”   € ð ˜!�O€EÜ�%œ$¤˜×'Ò'ñ ó
á�Øô RÔ1AÀ$×1GÒ1GŒD�¨1¥9Õ-ÈTÒQÙð 	ð 
ˆô
 
˜%×	 Ò	 Ü�UÔ.ˆØ’M¤S¨§Z¢Zˆ5Ð9°TÐ9ùò
s
   ªBµ*Bz¨
where criteria is being ignored as this version [%s] is too old (or
not-defined), read the file in and write it out to a new file to upgrade (with
the copy_to method)
r	   Úincompatibility_doczu
the [%s] attribute of the existing index is [%s] which conflicts with the new
[%s], resetting the attribute to None
Úattribute_conflict_docz‘
your performance may suffer as PyTables will pickle object types that it cannot
map directly to c-types [inferred_type->%s,key->%s] [items->%s]
Úperformance_docÚfÚfixedÚtÚtablez;
: boolean
    drop ALL nan rows when appending to a table
Ú
dropna_docz~
: format
    default format writing format, if None, then
    put will default to 'fixed' and append will default to 'table'
Ú
format_doczio.hdfÚdropna_tableF)Ú	validatorÚdefault_formatzModuleType | NoneÚ
_table_modc                 óØ   € \         fF   ^ R Ip V s \        \        4      ;_uu_ 4        V P                  P
                  R8H  sR R R 4       \         # \         #   + '       g   i     \         # ; i)NÚstrict)r„   Útablesr   ÚAttributeErrorÚfileÚ_FILE_OPEN_POLICYÚ!_table_file_open_policy_is_strict)r‡   s    r^   Ú_tablesrŒ   ñ   sY   € ô ÒÛàˆ
ô
 ”n×%Õ%à—‘×-Ñ-°Ñ9ð .÷ &ô
 ÐŒ:Ð÷ &Ö%ô
 Ðús   ¦AÁA)	c               óT   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRR/# )rW   Úpath_or_bufúFilePath | HDFStoreÚkeyr[   ÚvalueúDataFrame | SeriesÚmodeÚ	complevelú
int | NoneÚcomplibrY   ÚappendÚboolr]   ÚindexÚmin_itemsizeúint | dict[str, int] | NoneÚdropnaúbool | NoneÚdata_columnsú Literal[True] | list[str] | NoneÚerrorsrX   rZ   ÚNoner\   )r]   s   "r^   r_   r_     sž   € ÷ 5ñ 5Ø$ð5à	ð5ð ð5ð ð	5ð
 ð5ð ð5ð ð5ð ð5ð ð5ð .ð5ð ð5ð 3ð5ð ð5ð ð5ð  
ñ!5r`   c           
     ó2  aaaaa	a
aaaa€ V'       d   VVVVVVVV	V
V3
R lpMVVVVVVVV	V
V3
R lp\        V \        4      '       d   V! V 4       R# \        V 4      p \        WWER7      ;_uu_ 4       pV! V4       RRR4       R#   + '       g   i     R# ; i)z+store this object, close it if we opened itc                ó:   <
€ V P                  SS
SSSS	SSSSR 7
      # ))r]   r™   rš   Únan_reprœ   rž   r    rX   )r—   ©Ústorerž   rœ   rX   r    r]   r™   r�   rš   r¤   r‘   s   &€€€€€€€€€€r^   Ú<lambda>Úto_hdf.<locals>.<lambda>  s1   ø€ ˜%Ÿ,™,ØØØØØ%ØØØ%ØØð 'ô 
r`   c                ó:   <
€ V P                  SS
SSSS	SSSSR 7
      # ))r]   r™   rš   r¤   rž   r    rX   rœ   ©Úputr¥   s   &€€€€€€€€€€r^   r§   r¨   (  s1   ø€ ˜%Ÿ)™)ØØØØØ%ØØ%ØØØð $ô 
r`   )r“   r”   r–   N)rg   ÚHDFStorerA   )rŽ   r�   r‘   r“   r”   r–   r—   r]   r™   rš   r¤   rœ   rž   r    rX   r{   r¦   s   &ff&&&&ffffffff  r^   Úto_hdfr­     sr   ÿù€ ÷$ ÷
õ 
‰÷
õ 
ˆô �+œx×(Ò(Ù	ˆ+Žä$ [Ó1ˆÜØ¨i÷
õ 
àÙˆeŒH÷
÷ 
÷ 
ò 
ús   Á2	BÂB	Úpandasc               ó<   € V ^8„  d   QhRRRRRRRRRR	R
R	RRRRRR	/	# )rW   rŽ   r�   r“   r[   r    rt   zstr | list | NoneÚstartr•   ÚstopÚcolumnszlist[str] | NoneÚiteratorr˜   Ú	chunksizer\   )r]   s   "r^   r_   r_   @  so   € ÷ _ñ _Ø$ð_ð ð_ð ð	_ð
 ð_ð ð_ð ð_ð ð_ð ð_ð ñ_r`   c
                óÜ  € VR9  d   \        RV R24      hVe   \        V^R7      p\        V \        4      '       d#   V P                  '       g   \        R4      hT pRpMu\        V 4      p \        V \        4      '       g   \        R4      h \        P                  P                  V 4      pV'       g   \        RV  R	24      h\        V 3R
VRV/V
B pRp Vfn   VP                  4       p\        V4      ^ 8X  d   \        R4      hV^ ,          pVR,           F   p\!        VV4      '       d   K  \        R4      h	  VP"                  pVP%                  VVVVVVV	VR7      #   \        \         3 d    Rp LÉi ; i  \         \        \&        3 d]    \        T \        4      '       gE   \)        \*        4      ;_uu_ 4        TP-                  4        RRR4       h   + '       g   i     h ; ih i ; i)aN	  
Read from the store, close it if we opened it.

Retrieve pandas object stored in file, optionally based on where
criteria.

.. warning::

   Pandas uses PyTables for reading and writing HDF5 files, which allows
   serializing object-dtype data with pickle when using the "fixed" format.
   Loading pickled data received from untrusted sources can be unsafe.

   See: https://docs.python.org/3/library/pickle.html for more.

Parameters
----------
path_or_buf : str, path object, pandas.HDFStore
    Any valid string path is acceptable. Only supports the local file system,
    remote URLs and file-like objects are not supported.

    If you want to pass in a path object, pandas accepts any
    ``os.PathLike``.

    Alternatively, pandas accepts an open :class:`pandas.HDFStore` object.

key : object, optional
    The group identifier in the store. Can be omitted if the HDF file
    contains a single pandas object.
mode : {'r', 'r+', 'a'}, default 'r'
    Mode to use when opening the file. Ignored if path_or_buf is a
    :class:`pandas.HDFStore`. Default is 'r'.
errors : str, default 'strict'
    Specifies how encoding and decoding errors are to be handled.
    See the errors argument for :func:`open` for a full list
    of options.
where : list, optional
    A list of Term (or convertible) objects.
start : int, optional
    Row number to start selection.
stop : int, optional
    Row number to stop selection.
columns : list, optional
    A list of columns names to return.
iterator : bool, optional
    Return an iterator object.
chunksize : int, optional
    Number of rows to include in an iteration when using an iterator.
**kwargs
    Additional keyword arguments passed to HDFStore.

Returns
-------
object
    The selected object. Return type depends on the object stored.

See Also
--------
DataFrame.to_hdf : Write an HDF file from a DataFrame.
HDFStore : Low-level access to HDF files.

Notes
-----
When ``errors="surrogatepass"``, ``pd.options.future.infer_string`` is true,
and PyArrow is installed, if a UTF-16 surrogate is encountered when decoding
to UTF-8, the resulting dtype will be
``pd.StringDtype(storage="python", na_value=np.nan)``.

Examples
--------
>>> df = pd.DataFrame([[1, 1.0, "a"]], columns=["x", "y", "z"])  # doctest: +SKIP
>>> df.to_hdf("./store.h5", "data")  # doctest: +SKIP
>>> reread = pd.read_hdf("./store.h5")  # doctest: +SKIP
zmode zG is not allowed while performing a read. Allowed modes are r, r+ and a.Nrp   z&The HDFStore must be open for reading.Fz5Support for generic buffers has not been implemented.zFile z does not existr“   r    Tz]Dataset(s) incompatible with Pandas data types, not table, or no datasets found in HDF5 file.ºé   NNz?key must be provided when HDF5 file contains multiple datasets.)rt   r°   r±   r²   r³   r´   Ú
auto_close)Úrúr+Úa)Ú
ValueErrorrw   rg   r¬   Úis_openÚOSErrorrA   r[   ÚNotImplementedErrorÚosÚpathÚexistsÚ	TypeErrorÚFileNotFoundErrorÚgroupsrs   Ú_is_metadata_ofÚ_v_pathnameÚselectÚLookupErrorr   rˆ   Úclose)rŽ   r�   r“   r    rt   r°   r±   r²   r³   r´   Úkwargsr¦   r¸   rÂ   rÅ   Úcandidate_only_groupÚgroup_to_checks   &&&&&&&&&&,      r^   Úread_hdfrÎ   ?  s  € ðn Ð#Ô#ÜØ�D�6ð -ð .ó
ð 	
ð
 ÒÜ˜U°Ô2ˆä�+œx×(Ò(Ø×"×"Ð"ÜÐBÓCÐCàˆØ‰
ä$ [Ó1ˆÜ˜+¤s×+Ò+Ü%ØGóð ð	Ü—W‘W—^‘^ KÓ0ˆF÷ Ü# e¨K¨=¸Ð$HÓIÐIä˜ÑI¨4ÐI¸ÐIÀ&ÑIˆð ˆ
ð%ØŠ;Ø—\‘\“^ˆFÜ�6‹{˜aÔÜ ðDóð ð $*¨!¥9Ð ð #)¨§* *�Ü& ~Ð7K×LÔLÜ$ð;óð ñ #-ð '×2Ñ2ˆCØ�|‰|ØØØØØØØØ!ð ó 	
ð 		
øôA œ:Ð&ô 	ØŠFð	ûôT œ	¤;Ð/ô Ü˜+¤x×0Ò0äœ.×)Õ)Ø—‘”÷ *ð 	÷ *Ö)ð 	úˆðús>   ÂE  ÃAE9 Ä.1E9 Å E6Å5E6Å9AG+Æ<GÇ	G+ÇG&Ç!
G+c               ó$   € V ^8„  d   QhRRRRRR/# )rW   ÚgrouprL   Úparent_grouprZ   r˜   r\   )r]   s   "r^   r_   r_   â  s!   € ÷ ñ ˜4ð ¨tð ¸ñ r`   c                óÌ   € V P                   VP                   8:  d   R# T pVP                   ^8”  d4   VP                  pW18X  d   VP                  R8X  d   R# VP                  pKD  R# )zDCheck if a given group is a metadata group for a given parent_group.FÚmetaT)Ú_v_depthÚ	_v_parentÚ_v_name)rÐ   rÑ   ÚcurrentÚparents   &&  r^   rÆ   rÆ   â  sW   € à‡~�~˜×.Ñ.Ô.Ùà€GØ
×
Ñ
˜QÔ
Ø×"Ñ"ˆØÔ! g§o¡o¸Ô&?ÙØ×#Ñ#ŠÙr`   c                  ó�  € ] tR tRt$ RtR]R&   R]R&   R^R R	 lltR
 R lt]R 4       t	]R R l4       t
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR_R! R" lltR# R$ ltR% R& ltR`R' R( lltR) R* lt]R+ R, l4       tRaR- R. lltR/ R0 ltRbR1 R2 lltRcR3 R4 lltRdR5 R6 lltReR7 R8 lltRfR9 R: llt RcR; R< llt!RgR= R> llt"RhR? R@ llt#RcRA RB llt$RC RD lt%RiRE RF llt&RG RH lt'RI RJ lt(RjRK RL llt)RM RN lt*RO RP lt+RQ RR lt,RkRS RT llt-RlRU RV llt.RW RX lt/RY RZ lt0R[ R\ lt1R]t2R# )mr¬   ið  a|  
Dict-like IO interface for storing pandas objects in PyTables.

Either Fixed or Table format.

.. warning::

   Pandas uses PyTables for reading and writing HDF5 files, which allows
   serializing object-dtype data with pickle when using the "fixed" format.
   Loading pickled data received from untrusted sources can be unsafe.

   See: https://docs.python.org/3/library/pickle.html for more.

Parameters
----------
path : str
    File path to HDF5 file.
mode : {'a', 'w', 'r', 'r+'}, default 'a'

    ``'r'``
        Read-only; no data can be modified.
    ``'w'``
        Write; a new file is created (an existing file with the same
        name would be deleted).
    ``'a'``
        Append; an existing file is opened for reading and writing,
        and if the file does not exist it is created.
    ``'r+'``
        It is similar to ``'a'``, but the file must already exist.
complevel : int, 0-9, default None
    Specifies a compression level for data.
    A value of 0 or None disables compression.
complib : {'zlib', 'lzo', 'bzip2', 'blosc'}, default 'zlib'
    Specifies the compression library to be used.
    These additional compressors for Blosc are supported
    (default if no compressor specified: 'blosc:blosclz'):
    {'blosc:blosclz', 'blosc:lz4', 'blosc:lz4hc', 'blosc:snappy',
     'blosc:zlib', 'blosc:zstd'}.
    Specifying a compression library which is not available issues
    a ValueError.
fletcher32 : bool, default False
    If applying compression use the fletcher32 checksum.
**kwargs
    These parameters will be passed to the PyTables open_file method.

Examples
--------
>>> bar = pd.DataFrame(np.random.randn(10, 4))
>>> store = pd.HDFStore("test.h5")
>>> store["foo"] = bar  # write to HDF5
>>> bar = store["foo"]  # retrieve
>>> store.close()

**Create or load HDF5 file in-memory**

When passing the `driver` option to the PyTables open_file method through
**kwargs, the HDF5 file is loaded or created in-memory and will only be
written when closed:

>>> bar = pd.DataFrame(np.random.randn(10, 4))
>>> store = pd.HDFStore("test.h5", driver="H5FD_CORE")
>>> store["foo"] = bar
>>> store.close()  # only now, data is written to disk
zFile | NoneÚ_handler[   Ú_modeNc               ó(   € V ^8„  d   QhRRRRRRRR/# )	rW   r“   r[   r”   r•   Ú
fletcher32r˜   rZ   r¡   r\   )r]   s   "r^   r_   ÚHDFStore.__annotate__6  s4   € ÷ 'ñ 'ð ð'ð ð	'ð ð'ð 
ñ'r`   c                	ó´  € R V9   d   \        R4      h\        R4      pVe>   WGP                  P                  9  d$   \        RVP                  P                   R24      hVf   Ve   VP                  P                  p\        V4      V n        Vf   RpW n        RV n        V'       d   TM^ V n	        W@n
        WPn        RV n        V P                  ! RRV/VB  R# )	r]   z-format is not a defined argument for HDFStorer‡   Nzcomplib only supports z compression.r»   r“   r\   )r¼   r   ÚfiltersÚall_complibsÚdefault_complibrA   Ú_pathrÛ   rÚ   Ú
_complevelÚ_complibÚ_fletcher32Ú_filtersÚopen)ÚselfrÁ   r“   r”   r–   rÝ   rË   r‡   s   &&&&&&, r^   Ú__init__ÚHDFStore.__init__6  sÉ   € ð �vÔÜÐLÓMÐMä+¨HÓ5ˆàÒ 7·.±.×2MÑ2MÔ#MÜØ(¨¯©×)DÑ)DÐ(EÀ]ÐSóð ð Š?˜yÒ4Ø—n‘n×4Ñ4ˆGä# DÓ)ˆŒ
ØŠ<ØˆDØŒ
ØˆŒß'0™)°aˆŒØŒØ%ÔØˆŒØ�	Š	Ñ&�tÐ&˜vÔ&r`   c               ó   € V ^8„  d   QhRR/# ©rW   rZ   r[   r\   )r]   s   "r^   r_   rÞ   W  s   € ÷ ñ ˜Cñ r`   c                	ó   € V P                   # rb   ©rã   ©ré   s   &r^   Ú
__fspath__ÚHDFStore.__fspath__W  s   € Ø�z‰zÐr`   c                ón   € V P                  4        V P                  f   Q hV P                  P                  # )zreturn the root node)Ú_check_if_openrÚ   Úrootrð   s   &r^   rõ   ÚHDFStore.rootZ  s0   € ð 	×ÑÔØ�|‰|Ò'Ð'Ð'Ø�|‰|× Ñ Ð r`   c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   rÞ   b  s   € ÷ ñ ˜#ñ r`   c                	ó   € V P                   # rb   rï   rð   s   &r^   ÚfilenameÚHDFStore.filenamea  ó   € à�z‰zÐr`   c               ó   € V ^8„  d   QhRR/# ©rW   r�   r[   r\   )r]   s   "r^   r_   rÞ   e  s   € ÷ ñ ˜sñ r`   c                	ó$   € V P                  V4      # rb   )Úget©ré   r�   s   &&r^   Ú__getitem__ÚHDFStore.__getitem__e  s   € Ø�x‰x˜‹}Ðr`   c               ó    € V ^8„  d   QhRRRR/# )rW   r�   r[   rZ   r¡   r\   )r]   s   "r^   r_   rÞ   h  s   € ÷ ñ ˜sð ¨dñ r`   c                	ó(   € V P                  W4       R # rb   rª   )ré   r�   r‘   s   &&&r^   Ú__setitem__ÚHDFStore.__setitem__h  s   € Ø�‰�Ör`   c               ó    € V ^8„  d   QhRRRR/# ©rW   r�   r[   rZ   r•   r\   )r]   s   "r^   r_   rÞ   k  s   € ÷  ñ  ˜sð   zñ  r`   c                	ó$   € V P                  V4      # rb   )Úremover   s   &&r^   Ú__delitem__ÚHDFStore.__delitem__k  s   € Ø�{‰{˜3ÓÐr`   c               ó   € V ^8„  d   QhRR/# )rW   ri   r[   r\   )r]   s   "r^   r_   rÞ   n  s   € ÷ 
ñ 
 ñ 
r`   c                óž   €  V P                  V4      #   \        \        3 d     Mi ; i\        R\	        T 4      P
                   RT R24      h)z$allow attribute access to get storesÚ'z' object has no attribute ')rÿ   ÚKeyErrorr   rˆ   ÚtypeÚ__name__)ré   ri   s   &&r^   Ú__getattr__ÚHDFStore.__getattr__n  sW   € ð	Ø—8‘8˜D“>Ð!øÜœ/Ð*ô 	Ùð	úäØ”�T“
×#Ñ#Ð$Ð$?À¸vÀQÐGó
ð 	
s   ‚ “'¦'c               ó    € V ^8„  d   QhRRRR/# )rW   r�   r[   rZ   r˜   r\   )r]   s   "r^   r_   rÞ   x  s   € ÷ 
ñ 
 ð 
¨ñ 
r`   c                ój   € V P                  V4      pVe   VP                  pWVR,          39   d   R# R# )z`
check for existence of this key
can match the exact pathname or the pathnm w/o the leading '/'
r¶   TF)Úget_noderÇ   )ré   r�   Únoderi   s   &&  r^   Ú__contains__ÚHDFStore.__contains__x  s8   € ð
 �}‰}˜SÓ!ˆØÒØ×#Ñ#ˆDØ˜T "�XÐ&Ô&ÙÙr`   c               ó   € V ^8„  d   QhRR/# ©rW   rZ   rn   r\   )r]   s   "r^   r_   rÞ   „  s   € ÷ "ñ "˜ñ "r`   c                	ó4   € \        V P                  4       4      # rb   )rs   rÅ   rð   s   &r^   Ú__len__ÚHDFStore.__len__„  s   € Ü�4—;‘;“=Ó!Ð!r`   c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   rÞ   ‡  s   € ÷ 4ñ 4˜#ñ 4r`   c                	óN   € \        V P                  4      p\        V 4       R V R2# )ú
File path: Ú
)rC   rã   r  )ré   Úpstrs   & r^   Ú__repr__ÚHDFStore.__repr__‡  s'   € Ü˜DŸJ™JÓ'ˆÜ�t“*�˜]¨4¨&°Ð3Ð3r`   c               ó   € V ^8„  d   QhRR/# )rW   rZ   r   r\   )r]   s   "r^   r_   rÞ   ‹  ó   € ÷ ñ ˜4ñ r`   c                	ó   € V # rb   r\   rð   s   &r^   Ú	__enter__ÚHDFStore.__enter__‹  s   € Øˆr`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rW   Úexc_typeztype[BaseException] | NoneÚ	exc_valuezBaseException | NoneÚ	tracebackzTracebackType | NonerZ   r¡   r\   )r]   s   "r^   r_   rÞ   Ž  s2   € ÷ ñ à,ðð (ðð (ð	ð
 
ñr`   c                	ó&   € V P                  4        R # rb   )rÊ   )ré   r-  r.  r/  s   &&&&r^   Ú__exit__ÚHDFStore.__exit__Ž  s   € ð 	�
‰
Žr`   c               ó    € V ^8„  d   QhRRRR/# )rW   Úincluder[   rZ   ú	list[str]r\   )r]   s   "r^   r_   rÞ   –  s   € ÷ .
ñ .
˜Cð .
¨yñ .
r`   c                ó.  € VR8X  d*   V P                  4        Uu. uF  q"P                  NK  	  up# VR8X  dG   V P                  f   Q hV P                  P                  RRR7       Uu. uF  q"P                  NK  	  up# \	        RV R24      hu upi u upi )a†  
Return a list of keys corresponding to objects stored in HDFStore.

Parameters
----------

include : str, default 'pandas'
        When kind equals 'pandas' return pandas objects.
        When kind equals 'native' return native HDF5 Table objects.

Returns
-------
list
    List of ABSOLUTE path-names (e.g. have the leading '/').

Raises
------
raises ValueError if kind has an illegal value

See Also
--------
HDFStore.info : Prints detailed information on the store.
HDFStore.get_node : Returns the node with the key.
HDFStore.get_storer : Returns the storer object for a key.

Examples
--------
>>> df = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])
>>> store = pd.HDFStore("store.h5", "w")  # doctest: +SKIP
>>> store.put("data", df)  # doctest: +SKIP
>>> store.get("data")  # doctest: +SKIP
>>> print(store.keys())  # doctest: +SKIP
['/data1', '/data2']
>>> store.close()  # doctest: +SKIP
r®   ÚnativeÚ/ÚTable)Ú	classnamez8`include` should be either 'pandas' or 'native' but is 'r  )rÅ   rÇ   rÚ   Ú
walk_nodesr¼   )ré   r4  Úns   && r^   ÚkeysÚHDFStore.keys–  sš   € ðH �hÔØ+/¯;©;¬=Ó9©= a—M”M©=Ñ9Ð9à˜Ô Ø—<‘<Ò+Ð+Ð+à'+§|¡|×'>Ñ'>¸sÈgÐ'>Ô'VóÙ'V !—”Ñ'Vñð ô ØFÀwÀiÈqÐQó
ð 	
ùò :ùòs   šBÁ'Bc               ó   € V ^8„  d   QhRR/# )rW   rZ   zIterator[str]r\   )r]   s   "r^   r_   rÞ   Æ  s   € ÷ !ñ !˜-ñ !r`   c                	ó4   € \        V P                  4       4      # rb   )Úiterr=  rð   s   &r^   Ú__iter__ÚHDFStore.__iter__Æ  s   € Ü�D—I‘I“KÓ Ð r`   c               ó   € V ^8„  d   QhRR/# )rW   rZ   zIterator[tuple[str, list]]r\   )r]   s   "r^   r_   rÞ   É  s   € ÷ #ñ #Ð1ñ #r`   c              #  ó\   "  € V P                  4        F  pVP                  V3x € K  	  R# 5i)z
iterate on key->group
N)rÅ   rÇ   ©ré   Úgs   & r^   ÚitemsÚHDFStore.itemsÉ  s&   é € ð —‘–ˆAØ—-‘- Ð"Ô"ó ùs   ‚*,c               ó    € V ^8„  d   QhRRRR/# )rW   r“   r[   rZ   r¡   r\   )r]   s   "r^   r_   rÞ   Ð  s   € ÷ +Jñ +J˜ð +J°ñ +Jr`   c                ó°  € \        4       pV P                  V8w  d_   V P                  R9   d	   VR9   d   M?VR	9   d9   V P                  '       d'   \        RV P                   RV P                   R24      hWn        V P                  '       d   V P                  4        V P                  '       dQ   V P                  ^ 8”  d@   \        4       P                  V P                  V P                  V P                  R7      V n
        \        '       d    V P                  '       d   Rp\        V4      hVP                  ! V P                  V P                  3/ VB V n        R# )
zù
Open the file in the specified mode

Parameters
----------
mode : {'a', 'w', 'r', 'r+'}, default 'a'
    See HDFStore docstring or tables.open_file for info about modes
**kwargs
    These parameters will be passed to the PyTables open_file method.
zRe-opening the file [z] with mode [z] will delete the current file!)rÝ   zGCannot open HDF5 file, which is already opened, even in read-only mode.N)r»   Úw)r¹   rº   )rL  )rŒ   rÛ   r½   r   rã   rÊ   rä   ÚFiltersrå   ræ   rç   r‹   r¼   Ú	open_filerÚ   )ré   r“   rË   r‡   Úmsgs   &&,  r^   rè   ÚHDFStore.openÐ  s  € ô “ˆà�:‰:˜Ôà�z‰z˜ZÔ'¨D°KÔ,?ØØ˜”à—<—<�<Ü/Ø/°·
±
¨|¸=ÈÏÉÈð U8ð 8óð ð
 ŒJð �<�<ˆ<Ø�J‰JŒLà�?�?ˆ?˜tŸ™°Ô2Ü#›I×-Ñ-Ø—‘ §¡¸4×;KÑ;Kð .ó ˆDŒM÷ -Ó,°··°ð*ð ô ˜S“/Ð!à×'Ò'¨¯
©
°D·J±JÑIÀ&ÑIˆŽr`   c               ó   € V ^8„  d   QhRR/# ©rW   rZ   r¡   r\   )r]   s   "r^   r_   rÞ   ý  s   € ÷ ñ �tñ r`   c                ód   € V P                   e   V P                   P                  4        RV n         R# )z 
Close the PyTables file handle
N)rÚ   rÊ   rð   s   &r^   rÊ   ÚHDFStore.closeý  s%   € ð �<‰<Ò#Ø�L‰L×ÑÔ ØˆŽr`   c               ó   € V ^8„  d   QhRR/# ©rW   rZ   r˜   r\   )r]   s   "r^   r_   rÞ     s   € ÷ )ñ )˜ñ )r`   c                ó`   € V P                   f   R# \        V P                   P                  4      # )z6
return a boolean indicating whether the file is open
F)rÚ   r˜   Úisopenrð   s   &r^   r½   ÚHDFStore.is_open  s&   € ð
 �<‰<ÒÙÜ�D—L‘L×'Ñ'Ó(Ð(r`   c               ó    € V ^8„  d   QhRRRR/# )rW   Úfsyncr˜   rZ   r¡   r\   )r]   s   "r^   r_   rÞ     s   € ÷ 4ñ 4˜4ð 4¨Dñ 4r`   c                ó2  € V P                   eu   V P                   P                  4        V'       dQ   \        \        4      ;_uu_ 4        \        P
                  ! V P                   P                  4       4       RRR4       R# R# R#   + '       g   i     R# ; i)a“  
Force all buffered modifications to be written to disk.

Parameters
----------
fsync : bool (default False)
  call ``os.fsync()`` on the file handle to force writing to disk.

Notes
-----
Without ``fsync=True``, flushing may not guarantee that the OS writes
to disk. With fsync, the operation will block until the OS claims the
file has been written; however, other caching layers may still
interfere.
N)rÚ   Úflushr   r¾   rÀ   r[  Úfileno)ré   r[  s   &&r^   r]  ÚHDFStore.flush  sc   € ð  �<‰<Ò#Ø�L‰L×ÑÔ ßÜœg×&Õ&Ü—H’H˜TŸ\™\×0Ñ0Ó2Ô3÷ 'Ñ&ñ ñ $÷ '×&Ð&ús   Á/BÂB	c               ó   € V ^8„  d   QhRR/# rý   r\   )r]   s   "r^   r_   rÞ   $  s   € ÷ !+ñ !+�sñ !+r`   c                óÎ   € \        4       ;_uu_ 4        V P                  V4      pVf   \        RV R24      hV P                  V4      uuRRR4       #   + '       g   i     R# ; i)aL  
Retrieve pandas object stored in file.

Parameters
----------
key : str
    Object to retrieve from file. Raises KeyError if not found.

Returns
-------
object
    Same type as object stored in file.

See Also
--------
HDFStore.get_node : Returns the node with the key.
HDFStore.get_storer : Returns the storer object for a key.

Examples
--------
>>> df = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])
>>> store = pd.HDFStore("store.h5", "w")  # doctest: +SKIP
>>> store.put("data", df)  # doctest: +SKIP
>>> store.get("data")  # doctest: +SKIP
>>> store.close()  # doctest: +SKIP
NúNo object named ú in the file)r   r  r  Ú_read_group©ré   r�   rÐ   s   && r^   rÿ   ÚHDFStore.get$  sO   € ô6 �^�^ð —M‘M #Ó&ˆEØŠ}ÜÐ!1°#°°lÐCÓDÐDØ×#Ñ# EÓ*÷ �^�^‹^ús   “5AÁA$	c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   r�   r[   r³   r˜   r´   r•   r¸   r\   )r]   s   "r^   r_   rÞ   G  s8   € ÷ añ aàðað ðað ðað ñar`   c	                ó  aa€ V P                  V4      p	V	f   \        RV R24      h\        V^R7      pV P                  V	4      oSP	                  4        VV3R lp
\        V SV
VSP                  VVVVVR7
      pVP                  4       # )a«  
Retrieve pandas object stored in file, optionally based on where criteria.

.. warning::

   Pandas uses PyTables for reading and writing HDF5 files, which allows
   serializing object-dtype data with pickle when using the "fixed" format.
   Loading pickled data received from untrusted sources can be unsafe.

   See: https://docs.python.org/3/library/pickle.html for more.

Parameters
----------
key : str
    Object being retrieved from file.
where : list or None
    List of Term (or convertible) objects, optional.
start : int or None
    Row number to start selection.
stop : int, default None
    Row number to stop selection.
columns : list or None
    A list of columns that if not None, will limit the return columns.
iterator : bool or False
    Returns an iterator.
chunksize : int or None
    Number or rows to include in iteration, return an iterator.
auto_close : bool or False
    Should automatically close the store when finished.

Returns
-------
object
    Retrieved object from file.

See Also
--------
HDFStore.select_as_coordinates : Returns the selection as an index.
HDFStore.select_column : Returns a single column from the table.
HDFStore.select_as_multiple : Retrieves pandas objects from multiple tables.

Examples
--------
>>> df = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])
>>> store = pd.HDFStore("store.h5", "w")  # doctest: +SKIP
>>> store.put("data", df)  # doctest: +SKIP
>>> store.get("data")  # doctest: +SKIP
>>> print(store.keys())  # doctest: +SKIP
['/data1', '/data2']
>>> store.select("/data1")  # doctest: +SKIP
   A  B
0  1  2
1  3  4
>>> store.select("/data1", where="columns == A")  # doctest: +SKIP
   A
0  1
1  3
>>> store.close()  # doctest: +SKIP
rb  rc  rp   c                ó,   <€ SP                  WVSR 7      # ))r°   r±   rt   r²   )Úread)Ú_startÚ_stopÚ_wherer²   Úss   &&&€€r^   ÚfuncÚHDFStore.select.<locals>.func—  s   ø€ Ø—6‘6 ¸&È'�6ÓRÐRr`   ©rt   Únrowsr°   r±   r³   r´   r¸   )r  r  rw   Ú_create_storerÚ
infer_axesÚTableIteratorrr  Ú
get_result)ré   r�   rt   r°   r±   r²   r³   r´   r¸   rÐ   ro  Úitrn  s   &&&&&f&&&   @r^   rÈ   ÚHDFStore.selectG  s—   ù€ ðL —‘˜cÓ"ˆØŠ=ÜÐ-¨c¨U°,Ð?Ó@Ð@ô ˜U°Ô2ˆØ×Ñ Ó&ˆØ	�‰Œö	Sô ØØØØØ—'‘'ØØØØØ!ô
ˆð �}‰}‹Ðr`   c               ó$   € V ^8„  d   QhRRRRRR/# ©rW   r�   r[   r°   r•   r±   r\   )r]   s   "r^   r_   rÞ   ª  s-   € ÷ Iñ IàðIð ð	Ið
 ñIr`   c                ó¦   € \        V^R7      pV P                  V4      p\        V\        4      '       g   \	        R4      hVP                  W#VR7      # )a+  
return the selection as an Index

.. warning::

   Pandas uses PyTables for reading and writing HDF5 files, which allows
   serializing object-dtype data with pickle when using the "fixed" format.
   Loading pickled data received from untrusted sources can be unsafe.

   See: https://docs.python.org/3/library/pickle.html for more.


Parameters
----------
key : str
where : list of Term (or convertible) objects, optional
start : integer (defaults to None), row number to start selection
stop  : integer (defaults to None), row number to stop selection
rp   z&can only read_coordinates with a table©rt   r°   r±   )rw   Ú
get_storerrg   r9  rÃ   Úread_coordinates)ré   r�   rt   r°   r±   Útbls   &&&&& r^   Úselect_as_coordinatesÚHDFStore.select_as_coordinatesª  sM   € ô4 ˜U°Ô2ˆØ�o‰o˜cÓ"ˆÜ˜#œu×%Ò%ÜÐDÓEÐEØ×#Ñ#¨%À4Ð#ÓHÐHr`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   r�   r[   Úcolumnr°   r•   r±   r\   )r]   s   "r^   r_   rÞ   Ê  s8   € ÷ &Fñ &Fàð&Fð ð&Fð ð	&Fð
 ñ&Fr`   c                óŒ   € V P                  V4      p\        V\        4      '       g   \        R4      hVP	                  W#VR7      # )aÖ  
return a single column from the table. This is generally only useful to
select an indexable

.. warning::

   Pandas uses PyTables for reading and writing HDF5 files, which allows
   serializing object-dtype data with pickle when using the "fixed" format.
   Loading pickled data received from untrusted sources can be unsafe.

   See: https://docs.python.org/3/library/pickle.html for more.

Parameters
----------
key : str
column : str
    The column of interest.
start : int or None, default None
stop : int or None, default None

Raises
------
raises KeyError if the column is not found (or key is not a valid
    store)
raises ValueError if the column can not be extracted individually (it
    is part of a data block)

z!can only read_column with a table)rƒ  r°   r±   )r}  rg   r9  rÃ   Úread_column)ré   r�   rƒ  r°   r±   r  s   &&&&& r^   Úselect_columnÚHDFStore.select_columnÊ  s?   € ðF �o‰o˜cÓ"ˆÜ˜#œu×%Ò%ÜÐ?Ó@Ð@Ø�‰ fÀˆÓEÐEr`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   r³   r˜   r´   r•   r¸   r\   )r]   s   "r^   r_   rÞ   ò  s/   € ÷ w/ñ w/ð ðw/ð ðw/ð ñw/r`   c
                ó`  aaa€ \        V^R7      p\        V\        \        34      '       d   \	        V4      ^8X  d
   V^ ,          p\        V\
        4      '       d   V P                  VVSVVVVV	R7      # \        V\        \        34      '       g   \        R4      h\	        V4      '       g   \        R4      hVf
   V^ ,          pV U
u. uF  q P                  V
4      NK  	  up
oV P                  V4      pRp\        P                  ! W³3.\        SVRR7      4       Fq  w  rÚVf   \        RV
 R	24      hVP                  '       g   \        R
VP                   R24      hVf   VP                   pKU  VP                   V8w  g   Kh  \        R4      h	  S Uu. uF  p\        V\"        4      '       g   K  VNK  	  ppV Uu0 uF  qÝP$                  ^ ,          ^ ,          kK  	  upP'                  4       oVVV3R lp\)        V VVVVVVVVV	R7
      pVP+                  RR7      # u up
i u upi u upi )a  
Retrieve pandas objects from multiple tables.

.. warning::

   Pandas uses PyTables for reading and writing HDF5 files, which allows
   serializing object-dtype data with pickle when using the "fixed" format.
   Loading pickled data received from untrusted sources can be unsafe.

   See: https://docs.python.org/3/library/pickle.html for more.

Parameters
----------
keys : a list of the tables
selector : the table to apply the where criteria (defaults to keys[0]
    if not supplied)
columns : the columns I want back
start : integer (defaults to None), row number to start selection
stop  : integer (defaults to None), row number to stop selection
iterator : bool, return an iterator, default False
chunksize : nrows to include in iteration, return an iterator
auto_close : bool, default False
    Should automatically close the store when finished.

Raises
------
raises KeyError if keys or selector is not found or keys is empty
raises TypeError if keys is not a list or tuple
raises ValueError if the tables are not ALL THE SAME DIMENSIONS
rp   )r�   rt   r²   r°   r±   r³   r´   r¸   zkeys must be a list/tuplez keys must have a non-zero lengthNT©r†   zInvalid table [Ú]zobject [z>] is not a table, and cannot be used in all select as multiplez,all tables must have exactly the same nrows!c           
     óŒ   <€ S Uu. uF  pVP                  VSWR 7      NK  	  pp\        VSRR7      P                  4       # u upi )©rt   r²   r°   r±   F)ÚaxisÚverify_integrity)rj  r5   Ú_consolidate)rk  rl  rm  r}   ÚobjsrŽ  r²   Útblss   &&&  €€€r^   ro  Ú)HDFStore.select_as_multiple.<locals>.funcP  sS   ø€ ñ
 óá�Að —‘˜V¨W¸F�ÖOÙð ð ô ˜$ T¸EÔB×OÑOÓQÐQùòs   †Arq  )Úcoordinates)rw   rg   rq   rr   rs   r[   rÈ   rÃ   r¼   r}  Ú	itertoolsÚchainÚzipr  Úis_tableÚpathnamerr  r9  Únon_index_axesÚpopru  rv  )ré   r=  rt   Úselectorr²   r°   r±   r³   r´   r¸   Úkrn  rr  r}   ÚxÚ_tblsro  rw  rŽ  r’  s   &&&&f&&&&&        @@r^   Úselect_as_multipleÚHDFStore.select_as_multipleò  s  ú€ ôV ˜U°Ô2ˆÜ�dœT¤5˜M×*Ò*¬s°4«y¸A¬~Ø˜•7ˆDÜ�dœC× Ò Ø—;‘;ØØØØØØ!Ø#Ø%ð ó 	ð 	ô ˜$¤¤u ×.Ò.ÜÐ7Ó8Ð8ä�4�yŠyÜÐ?Ó@Ð@àÒØ˜A•wˆHñ -1Ó1©D q—‘ Ö"©DÑ1ˆØ�O‰O˜HÓ%ˆð ˆÜ—O’O a ] O´S¸¸tÈDÔ5QÖR‰DˆAØŠyÜ °°°1Ð5Ó6Ð6Ø—:—:�:ÜØ˜qŸz™z˜lð +)ð )óð ð
 Š}ØŸ™’Ø—‘˜EÖ!Ü Ð!OÓPÐPñ Sñ  !Ó9™D�q¤J¨q´%×$8—�™DˆÐ9ñ 16Ó6±¨1× Ñ  Õ# A×&Ð&±Ñ6×:Ñ:Ó<ˆ÷		Rô ØØØØØØØØØØ!ô
ˆð �}‰}¨ˆ}Ó.Ð.ùòg 2ùò* :ùò 7s   Ã	H!ÆH&Æ3H&Æ?"H+c               óD   € V ^8„  d   QhRRRRRRRRRR	R
RRRRRRRRRRR/# )rW   r�   r[   r‘   r’   r™   r˜   r—   r”   r•   rš   r›   rž   rŸ   r    Útrack_timesrœ   rZ   r¡   r\   )r]   s   "r^   r_   rÞ   k  s…   € ÷ f
ñ f
àðf
ð "ðf
ð
 ðf
ð ðf
ð ðf
ð 2ðf
ð 7ðf
ð ðf
ð ðf
ð ðf
ð  
ñ!f
r`   c                ó˜   € Vf   \        R4      ;'       g    RpV P                  V4      pV P                  VVVVVVVVV	V
VVVVR7       R# )ad
  
Store object in HDFStore.

This method writes a pandas DataFrame or Series into an HDF5 file using
either the fixed or table format. The `table` format allows additional
operations like incremental appends and queries but may have performance
trade-offs. The `fixed` format provides faster read/write operations but
does not support appends or queries.

Parameters
----------
key : str
    Key of object to store in file.
value : {Series, DataFrame}
    Value of object to store in file.
format : 'fixed(f)|table(t)', default is 'fixed'
    Format to use when storing object in HDFStore. Value can be one of:

    ``'fixed'``
        Fixed format.  Fast writing/reading. Not-appendable, nor searchable.
    ``'table'``
        Table format.  Write as a PyTables Table structure which may perform
        worse but allow more flexible operations like searching / selecting
        subsets of the data.
index : bool, default True
    Write DataFrame index as a column.
append : bool, default False
    This will force Table format, append the input data to the existing.
complib : default None
    This parameter is currently not accepted.
complevel : int, 0-9, default None
    Specifies a compression level for data.
    A value of 0 or None disables compression.
min_itemsize : int, dict, or None
    Dict of columns that specify minimum str sizes.
nan_rep : str
    Str to use as str nan representation.
data_columns : list of columns or True, default None
    List of columns to create as data columns, or True to use all columns.
    See `here
    <https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#query-via-data-columns>`__.
encoding : str, default None
    Provide an encoding for strings.
errors : str, default 'strict'
    The error handling scheme to use for encoding errors.
    The default is 'strict' meaning that encoding errors raise a
    UnicodeEncodeError.  Other possible values are 'ignore', 'replace' and
    'xmlcharrefreplace' as well as any other name registered with
    codecs.register_error that can handle UnicodeEncodeErrors.
track_times : bool, default True
    Parameter is propagated to 'create_table' method of 'PyTables'.
    If set to False it enables to have the same h5 files (same hashes)
    independent on creation time.
dropna : bool, default False, optional
    Remove missing values.

See Also
--------
HDFStore.info : Prints detailed information on the store.
HDFStore.get_storer : Returns the storer object for a key.

Examples
--------
>>> df = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])
>>> store = pd.HDFStore("store.h5", "w")  # doctest: +SKIP
>>> store.put("data", df)  # doctest: +SKIP
Núio.hdf.default_formatr|   )r]   r™   r—   r–   r”   rš   r¤   rž   rX   r    r£  rœ   )r   Ú_validate_formatÚ_write_to_group)ré   r�   r‘   r]   r™   r—   r–   r”   rš   r¤   rž   rX   r    r£  rœ   s   &&&&&&&&&&&&&&&r^   r«   ÚHDFStore.putk  sj   € ðh Š>ÜÐ 7Ó8×CÐC¸GˆFØ×&Ñ& vÓ.ˆØ×ÑØØØØØØØØ%ØØ%ØØØ#Øð 	ö 	
r`   c               ó    € V ^8„  d   QhRRRR/# r  r\   )r]   s   "r^   r_   rÞ   Ó  s   € ÷ 5=ñ 5=˜#ð 5=ÀZñ 5=r`   c                óì  € \        V^R7      p V P                  V4      p\        P                  ! Y#T4      '       d   XP                  P                  RR7       R# XP                  '       g   \        R4      hTP                  Y#TR7      #   \         d    h \         d    h \         dH   pTe   \        R4      ThT P                  T4      pTe   TP                  RR7        Rp?R#  Rp?LÎRp?ii ; i)aÂ  
Remove pandas object partially by specifying the where condition

Parameters
----------
key : str
    Node to remove or delete rows from
where : list of Term (or convertible) objects, optional
start : integer (defaults to None), row number to start selection
stop  : integer (defaults to None), row number to stop selection

Returns
-------
number of rows removed (or None if not a Table)

Raises
------
raises KeyError if key is not a valid store

rp   Nz5trying to remove a node with a non-None where clause!T©Ú	recursivez7can only remove with where on objects written as tablesr|  )rw   r}  r  ÚAssertionErrorÚ	Exceptionr¼   r  Ú	_f_removeÚcomÚall_nonerÐ   r˜  Údelete)ré   r�   rt   r°   r±   rn  Úerrr  s   &&&&&   r^   r
  ÚHDFStore.removeÓ  sç   € ô* ˜U°Ô2ˆð	Ø—‘ Ó$ˆAô. �<Š<˜ d×+Ò+Ø�G‰G×Ñ¨ÐÔ-Ùð �z�zˆzÜÐVÓWÐWØ�x‰x˜e°tˆxÓ<Ð<øô; ô 	àÜô 	àÜô 	ð Ò Ü ØKóàðð
 —=‘= Ó%ˆDØÒØ—‘¨�Ô.Ýô  ûð	ús#   �B ÂC3Â 
C3Â+C3Â,7C.Ã.C3c               óD   € V ^8„  d   QhRRRRRRRRR	R
RRRR
RRRRRRRR/# )rW   r�   r[   r‘   r’   r™   úbool | list[str]r—   r˜   r”   r•   rš   r›   r´   rœ   r�   rž   rŸ   r    rZ   r¡   r\   )r]   s   "r^   r_   rÞ   
  s…   € ÷ ~
ñ ~
àð~
ð "ð~
ð  ð~
ð ð~
ð ð~
ð 2ð~
ð ð~
ð ð~
ð  7ð!~
ð$ ð%~
ð& 
ñ'~
r`   c                óØ   € V	e   \        R4      hVf   \        R4      pVf   \        R4      ;'       g    RpV P                  V4      pV P                  VVVVVVVVV
VVVVVVVR7       R# )a{
  
Append to Table in file.

Node must already exist and be Table format.

Parameters
----------
key : str
    Key of object to append.
value : {Series, DataFrame}
    Value of object to append.
format : 'table' is the default
    Format to use when storing object in HDFStore.  Value can be one of:

    ``'table'``
        Table format. Write as a PyTables Table structure which may perform
        worse but allow more flexible operations like searching / selecting
        subsets of the data.
axes : default None
    This parameter is currently not accepted.
index : bool, default True
    Write DataFrame index as a column.
append : bool, default True
    Append the input data to the existing.
complib : default None
    This parameter is currently not accepted.
complevel : int, 0-9, default None
    Specifies a compression level for data.
    A value of 0 or None disables compression.
columns : default None
    This parameter is currently not accepted, try data_columns.
min_itemsize : int, dict, or None
    Dict of columns that specify minimum str sizes.
nan_rep : str
    Str to use as str nan representation.
chunksize : int or None
    Size to chunk the writing.
expectedrows : int
    Expected TOTAL row size of this table.
dropna : bool, default False, optional
    Do not write an ALL nan row to the store settable
    by the option 'io.hdf.dropna_table'.
data_columns : list of columns, or True, default None
    List of columns to create as indexed data columns for on-disk
    queries, or True to use all columns. By default only the axes
    of the object are indexed. See `here
    <https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#query-via-data-columns>`__.
encoding : default None
    Provide an encoding for str.
errors : str, default 'strict'
    The error handling scheme to use for encoding errors.
    The default is 'strict' meaning that encoding errors raise a
    UnicodeEncodeError.  Other possible values are 'ignore', 'replace' and
    'xmlcharrefreplace' as well as any other name registered with
    codecs.register_error that can handle UnicodeEncodeErrors.

See Also
--------
HDFStore.append_to_multiple : Append to multiple tables.

Notes
-----
Does *not* check if data being appended overlaps with existing
data in the table, so be careful

Examples
--------
>>> df1 = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])
>>> store = pd.HDFStore("store.h5", "w")  # doctest: +SKIP
>>> store.put("data", df1, format="table")  # doctest: +SKIP
>>> df2 = pd.DataFrame([[5, 6], [7, 8]], columns=["A", "B"])
>>> store.append("data", df2)  # doctest: +SKIP
>>> store.close()  # doctest: +SKIP
   A  B
0  1  2
1  3  4
0  5  6
1  7  8
Nz>columns is not a supported keyword in append, try data_columnszio.hdf.dropna_tabler¥  r~   )r]   Úaxesr™   r—   r–   r”   rš   r¤   r´   Úexpectedrowsrœ   rž   rX   r    )rÃ   r   r¦  r§  )ré   r�   r‘   r]   r¸  r™   r—   r–   r”   r²   rš   r¤   r´   r¹  rœ   rž   rX   r    s   &&&&&&&&&&&&&&&&&&r^   r—   ÚHDFStore.append
  s˜   € ðF ÒÜØPóð ð Š>ÜÐ 5Ó6ˆFØŠ>ÜÐ 7Ó8×CÐC¸GˆFØ×&Ñ& vÓ.ˆØ×ÑØØØØØØØØØ%ØØØ%ØØ%ØØð! 	ö 	
r`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   ÚdÚdictrœ   r˜   rZ   r¡   r\   )r]   s   "r^   r_   rÞ   Š  s2   € ÷ _Rñ _Ràð_Rð ð_Rð 
ñ_Rr`   c                óx  a€ Ve   \        R4      h\        V\        4      '       g   \        R4      hW19  d   \        R4      h\	        \        \        \        SP                  4      4      \        \        \        S4      ,          4      ,
          4      4      pRp	. p
VP                  4        F-  w  r¼Vf   V	e   \        R4      hTp	K  V
P                  V4       K/  	  V	e[   SP                  V,          pVP                  \        V
4      4      p\!        VP#                  V4      4      pVP%                  V4      W&   Vf	   W,          pV'       dS   V3R lVP'                  4        4       p\	        V4      pV F  pVP)                  V4      pK  	  SP*                  V,          oVP-                  RR4      pVP                  4        Fn  w  r¼W³8X  d   TMRpSP/                  WÈR7      pVe0   VP                  4        UUu/ uF  w  ppVV9   g   K  VVbK  	  uppMRpV P0                  ! VV3R	VRV/VB  Kp  	  R# u uppi )
a�  
Append to multiple tables

Parameters
----------
d : a dict of table_name to table_columns, None is acceptable as the
    values of one node (this will get all the remaining columns)
value : a pandas object
selector : a string that designates the indexable table; all of its
    columns will be designed as data_columns, unless data_columns is
    passed, in which case these are used
data_columns : list of columns to create as data columns, or True to
    use all columns
dropna : if evaluates to True, drop rows from all tables if any single
         row in each table has all NaN. Default False.

Notes
-----
axes parameter is currently not accepted

Nztaxes is currently not accepted as a parameter to append_to_multiple; you can create the tables independently insteadzQappend_to_multiple must have a dictionary specified as the way to split the valuez=append_to_multiple requires a selector that is in passed dictz<append_to_multiple can only have one value in d that is Nonec              3  ój   <"  € T F(  pSV,          P                  R R7      P                  x € K*  	  R# 5i)Úall)ÚhowN)rœ   r™   )Ú.0Úcolsr‘   s   & €r^   Ú	<genexpr>Ú.HDFStore.append_to_multiple.<locals>.<genexpr>Õ  s)   øé € ÐOÁJ¸D�E˜$•K×&Ñ&¨5Ð&Ó1×7Ö7ÃJùs   ƒ03rš   ©rŽ  rž   )rÃ   rg   r½  r¼   ÚnextrA  ÚsetÚrangeÚndimÚ	_AXES_MAPr  rH  Úextendr¸  Ú
differencer.   ÚsortedÚget_indexerÚtakeÚvaluesÚintersectionÚlocr›  Úreindexr—   )ré   r¼  r‘   rœ  rž   r¸  rœ   rË   rŽ  Ú
remain_keyÚremain_valuesr�  ÚvÚorderedÚorddÚidxsÚvalid_indexr™   rš   ÚdcÚvalr�   Úfiltereds   &&f&&&&,               r^   Úappend_to_multipleÚHDFStore.append_to_multipleŠ  s!  ø€ ð> ÒÜðBóð ô
 ˜!œT×"Ò"Üð)óð ð
 ÔÜØOóð ô
 ”DœœU 5§:¡:Ó.Ó/´#´iÄÀUÃÕ6LÓ2MÕMÓNÓOˆð ˆ
Ø ˆØ—G‘G–I‰DˆAØŠyØÒ)Ü$ØVóð ð ’
à×$Ñ$ QÖ'ñ ð Ò!Ø—j‘j Õ&ˆGØ×%Ñ%¤e¨MÓ&:Ó;ˆDÜ˜'×-Ñ-¨dÓ3Ó4ˆDØ#ŸL™L¨Ó.ˆA‰Mð ÒØ�;ˆL÷ ÜOÀAÇHÁHÄJÓOˆDÜ˜t›*ˆKÛ�Ø)×6Ñ6°uÓ=’ñ à—I‘I˜kÕ*ˆEà—z‘z .°$Ó7ˆð —G‘G–I‰DˆAØ!"¤‘°DˆBð —-‘- �-Ó-ˆCð  Ò+ð 1=×0BÑ0BÔ0DÔQÑ0D¡  eÈÈqÉ”��e’Ñ0DÓQàð ð
 �KŠK˜˜3ÑQ¨RÐQ¸hÐQÈ&ÔQó ùó Rs   Ç:H6ÈH6c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rW   r�   r[   Úoptlevelr•   ÚkindrY   rZ   r¡   r\   )r]   s   "r^   r_   rÞ   ë  s8   € ÷ &Fñ &Fàð&Fð ð	&Fð
 ð&Fð 
ñ&Fr`   c                ó°   € \        4        V P                  V4      pVf   R# \        V\        4      '       g   \	        R4      hVP                  W#VR7       R# )aP  
Create a pytables index on the table.

Parameters
----------
key : str
columns : None, bool, or listlike[str]
    Indicate which columns to create an index on.

    * False : Do not create any indexes.
    * True : Create indexes on all columns.
    * None : Create indexes on all columns.
    * listlike : Create indexes on the given columns.

optlevel : int or None, default None
    Optimization level, if None, pytables defaults to 6.
kind : str or None, default None
    Kind of index, if None, pytables defaults to "medium".

Raises
------
TypeError: raises if the node is not a table
Nz1cannot create table index on a Fixed format store)r²   râ  rã  )rŒ   r}  rg   r9  rÃ   Úcreate_index)ré   r�   r²   râ  rã  rn  s   &&&&& r^   Úcreate_table_indexÚHDFStore.create_table_indexë  sH   € ô> 	Œ	Ø�O‰O˜CÓ ˆØŠ9Ùä˜!œU×#Ò#ÜÐOÓPÐPØ	�‰˜wÀˆÖEr`   c               ó   € V ^8„  d   QhRR/# ©rW   rZ   rq   r\   )r]   s   "r^   r_   rÞ     s   € ÷ )
ñ )
˜ñ )
r`   c                óþ  € \        4        V P                  4        V P                  f   Q h\        f   Q hV P                  P	                  4        Uu. uF   p\        V\        P                  P                  4      '       d   K/  \        VP                  RR4      '       gS   \        VRR4      '       g@   \        V\        P                  P                  4      '       g   K‹  VP                  R8w  g   Kž  VNK¢  	  up# u upi )aM  
Return a list of all the top-level nodes.

Each node returned is not a pandas storage object.

Returns
-------
list
    List of objects.

See Also
--------
HDFStore.get_node : Returns the node with the key.

Examples
--------
>>> df = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])
>>> store = pd.HDFStore("store.h5", "w")  # doctest: +SKIP
>>> store.put("data", df)  # doctest: +SKIP
>>> print(store.groups())  # doctest: +SKIP
>>> store.close()  # doctest: +SKIP
[/data (Group) ''
  children := ['axis0' (Array), 'axis1' (Array), 'block0_values' (Array),
  'block0_items' (Array)]]
NÚpandas_typer~   )rŒ   rô   rÚ   r„   Úwalk_groupsrg   ÚlinkÚLinkÚgetattrÚ_v_attrsr~   r9  rÖ   rF  s   & r^   rÅ   ÚHDFStore.groups  sÏ   € ô4 	Œ	Ø×ÑÔØ�|‰|Ò'Ð'Ð'ÜÒ%Ð%Ð%ð —\‘\×-Ñ-Ô/ó
á/�ä˜q¤*§/¡/×"6Ñ"6×7ô ô
 ˜AŸJ™J¨°t×<Ò<Ü˜q '¨4×0Ò0Ü" 1¤j×&6Ñ&6×&<Ñ&<×=ô ð CDÇ)Á)ÈwÑBV÷ ˆAÙ/ñ
ð 	
ùò 
s   Á,C:ÂAC:ÃC:Ã1C:c               ó    € V ^8„  d   QhRRRR/# )rW   rt   r[   rZ   z*Iterator[tuple[str, list[str], list[str]]]r\   )r]   s   "r^   r_   rÞ   >  s   € ÷ >>ñ >>˜#ð >>Ð(Rñ >>r`   c              #  óv  "  € \        4        V P                  4        V P                  f   Q h\        f   Q hV P                  P	                  V4       Fá  p\        VP                  RR4      e   K  . p. pVP                  P                  4        F‚  p\        VP                  RR4      pVfJ   \        V\        P                  P                  4      '       d   VP                  VP                  4       Ke  Kg  VP                  VP                  4       K„  	  VP                  P                  R4      W43x € Kã  	  R# 5i)aÕ  
Walk the pytables group hierarchy for pandas objects.

This generator will yield the group path, subgroups and pandas object
names for each group.

Any non-pandas PyTables objects that are not a group will be ignored.

The `where` group itself is listed first (preorder), then each of its
child groups (following an alphanumerical order) is also traversed,
following the same procedure.

Parameters
----------
where : str, default "/"
    Group where to start walking.

Yields
------
path : str
    Full path to a group (without trailing '/').
groups : list
    Names (strings) of the groups contained in `path`.
leaves : list
    Names (strings) of the pandas objects contained in `path`.

See Also
--------
HDFStore.info : Prints detailed information on the store.

Examples
--------
>>> df1 = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])
>>> store = pd.HDFStore("store.h5", "w")  # doctest: +SKIP
>>> store.put("data", df1, format="table")  # doctest: +SKIP
>>> df2 = pd.DataFrame([[5, 6], [7, 8]], columns=["A", "B"])
>>> store.append("data", df2)  # doctest: +SKIP
>>> store.close()  # doctest: +SKIP
>>> for group in store.walk():  # doctest: +SKIP
...     print(group)  # doctest: +SKIP
>>> store.close()  # doctest: +SKIP
Nrë  r8  )rŒ   rô   rÚ   r„   rì  rï  rð  Ú_v_childrenrÑ  rg   rÐ   ÚGroupr—   rÖ   rÇ   Úrstrip)ré   rt   rG  rÅ   ÚleavesÚchildrë  s   &&     r^   ÚwalkÚHDFStore.walk>  sú   é € ôV 	Œ	Ø×ÑÔØ�|‰|Ò'Ð'Ð'ÜÒ%Ð%Ð%à—‘×)Ñ)¨%Ö0ˆAÜ�q—z‘z =°$Ó7ÒCÙàˆFØˆFØŸ™×-Ñ-Ö/�Ü% e§n¡n°mÀTÓJ�ØÒ&Ü! %¬×)9Ñ)9×)?Ñ)?×@Ò@ØŸ™ e§m¡mÖ4ñ Að —M‘M %§-¡-Ö0ñ 0ð —=‘=×'Ñ'¨Ó,¨fÐ=Ô=ó 1ùs   ‚D7D9c               ó    € V ^8„  d   QhRRRR/# )rW   r�   r[   rZ   zNode | Noner\   )r]   s   "r^   r_   rÞ   ~  s   € ÷ ñ ˜Cð  Kñ r`   c                ó”  € V P                  4        VP                  R4      '       g
   RV,           pV P                  f   Q h\        f   Q h V P                  P	                  V P
                  V4      p\        T\        P                  4      '       g   Q \        T4      4       hT#   \        P                  P                   d     R# i ; i)z9return the node with the key or None if it does not existr8  N)rô   Ú
startswithrÚ   r„   r  rõ   Ú
exceptionsÚNoSuchNodeErrorrg   rL   r  )ré   r�   r  s   && r^   r  ÚHDFStore.get_node~  s¨   € à×ÑÔØ�~‰~˜c×"Ò"Ø˜•)ˆCà�|‰|Ò'Ð'Ð'ÜÒ%Ð%Ð%ð	Ø—<‘<×(Ñ(¨¯©°CÓ8ˆDô ˜$¤
§¡×0Ò0Ð<´$°t³*Ó<Ð0Øˆøô	 ×$Ñ$×4Ñ4ô 	Úð	ús   Á&B$ Â$CÃCc               ó    € V ^8„  d   QhRRRR/# )rW   r�   r[   rZ   úGenericFixed | Tabler\   )r]   s   "r^   r_   rÞ   Ž  s   € ÷ ñ ˜cð Ð&:ñ r`   c                ó�   € V P                  V4      pVf   \        RV R24      hV P                  V4      pVP                  4        V# )z<return the storer object for a key, raise if not in the filerb  rc  )r  r  rs  rt  )ré   r�   rÐ   rn  s   &&  r^   r}  ÚHDFStore.get_storerŽ  sH   € à—‘˜cÓ"ˆØŠ=ÜÐ-¨c¨U°,Ð?Ó@Ð@à×Ñ Ó&ˆØ	�‰ŒØˆr`   c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )rW   r“   r[   Úpropindexesr˜   r”   r•   rÝ   Ú	overwriterZ   r¬   r\   )r]   s   "r^   r_   rÞ   ˜  sH   € ÷ 9ñ 9ð ð9ð ð	9ð ð9ð ð9ð ð9ð 
ñ9r`   c	                óˆ  € \        WWVVR7      p	Vf   \        V P                  4       4      p\        V\        \        34      '       g   V.pV Fì  p
V P                  V
4      pVf   K  W©9   d   V'       d   V	P                  V
4       V P                  V
4      p\        V\        4      '       dp   RpV'       d9   VP                   Uu. uF"  qîP                  '       g   K  VP                  NK$  	  ppV	P                  V
VV\        VRR4      VP                  R7       KÏ  V	P                  W¬VP                  R7       Kî  	  V	# u upi )aË  
Copy the existing store to a new file, updating in place.

Parameters
----------
propindexes : bool, default True
    Restore indexes in copied file.
keys : list, optional
    List of keys to include in the copy (defaults to all).
overwrite : bool, default True
    Whether to overwrite (remove and replace) existing nodes in the new store.
mode, complib, complevel, fletcher32 same as in HDFStore.__init__

Returns
-------
open file handle of the new store
)r“   r–   r”   rÝ   NFrž   )r™   rž   rX   rd   )r¬   rq   r=  rg   rr   r}  r
  rÈ   r9  r¸  Ú
is_indexedri   r—   rï  rX   r«   )ré   r‰   r“   r  r=  r–   r”   rÝ   r  Ú	new_storer�  rn  Údatar™   r»   s   &&&&&&&&&      r^   ÚcopyÚHDFStore.copy˜  s  € ô8 Ø WÈjô
ˆ	ð Š<Ü˜Ÿ	™	›Ó$ˆDÜ˜$¤¬ ×.Ò.Ø�6ˆDÛˆAØ—‘ Ó"ˆAØŒ}Ø”>ß Ø!×(Ñ(¨Ô+à—{‘{ 1“~�Ü˜a¤×'Ò'Ø.3�Eß"Ø12·²Ó H±¨A¿<½<¤ §¤±˜Ð HØ×$Ñ$ØØØ#Ü%,¨Q°ÀÓ%EØ!"§¡ð %ö ð —M‘M !°A·J±J�MÖ?ñ) ð, Ðùò !Is   ÃD?ÃD?c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   rÞ   Ó  s   € ÷ 9ñ 9�cñ 9r`   c                ó¤  € \        V P                  4      p\        V 4       RV R2pV P                  '       dº   \	        V P                  4       4      pV'       d�   . p. pV Fm  p V P                  V4      pVeU   TP                  \        VP                  ;'       g    T4      4       TP                  \        T;'       g    R4      4       Km  Ko  	  V\        ^WE4      ,          pV# VR,          p V# VR,          pV#   \         d    h \         d=   pTP                  T4       \        T4      p	TP                  RT	 R24        Rp?Kê  Rp?ii ; i)	a/  
Print detailed information on the store.

Returns
-------
str
    A String containing the python pandas class name, filepath to the HDF5
    file and all the object keys along with their respective dataframe shapes.

See Also
--------
HDFStore.get_storer : Returns the storer object for a key.

Examples
--------
>>> df1 = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])
>>> df2 = pd.DataFrame([[5, 6], [7, 8]], columns=["C", "D"])
>>> store = pd.HDFStore("store.h5", "w")  # doctest: +SKIP
>>> store.put("data1", df1)  # doctest: +SKIP
>>> store.put("data2", df2)  # doctest: +SKIP
>>> print(store.info())  # doctest: +SKIP
>>> store.close()  # doctest: +SKIP
<class 'pandas.io.pytables.HDFStore'>
File path: store.h5
/data1            frame        (shape->[2,2])
/data2            frame        (shape->[2,2])
r"  r#  Nzinvalid_HDFStore nodez[invalid_HDFStore node: r‹  ÚEmptyzFile is CLOSED)rC   rã   r  r½   rÎ  r=  r}  r—   r™  r­  r®  rB   )
ré   rÁ   ÚoutputÚlkeysr=  rÑ  r�  rn  ÚdetailÚdstrs
   &         r^   ÚinfoÚHDFStore.infoÓ  s7  € ô8 ˜DŸJ™JÓ'ˆÜ˜“J�<˜}¨T¨F°"Ð5ˆà�<�<ˆ<Ü˜4Ÿ9™9›;Ó'ˆEßØ�Ø�ã�AðJØ ŸO™O¨AÓ.˜Øš=Ø ŸK™K¬°Q·Z±Z·_°_À1Ó(EÔFØ"ŸM™M¬,°q×7SÐ7SÐ<SÓ*TÖUñ )ñ ð œ&  TÓ2Õ2�ð ˆð	 ˜'Õ!‘ð ˆð Ð&Õ&ˆFàˆøô *ô àÜ$ô JØŸ™ AœÜ+¨FÓ3˜ØŸ™Ð(@ÀÀÀaÐ&H×IÒIûðJús*   Á$7C=Â#C=Ã C=Ã=EÄEÄ1E
Å
Ec               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rÞ     s   € ÷ Eñ E ñ Er`   c                	óZ   € V P                   '       g   \        V P                   R 24      hR# )z file is not open!N)r½   r   rã   rð   s   &r^   rô   ÚHDFStore._check_if_open  s'   € Ø�|�|ˆ|Ü! T§Z¡Z LÐ0BÐ"CÓDÐDñ r`   c               ó    € V ^8„  d   QhRRRR/# )rW   r]   r[   rZ   r\   )r]   s   "r^   r_   rÞ     s   € ÷ ñ  sð ¨sñ r`   c                ó„   €  \         VP                  4       ,          pV#   \         d   p\        RT R24      ThRp?ii ; i)zvalidate / deprecate formatsz#invalid HDFStore format specified [r‹  N)Ú_FORMAT_MAPÚlowerr  rÃ   )ré   r]   r³  s   && r^   r¦  ÚHDFStore._validate_format  sK   € ð	VÜ  §¡£Õ0ˆFð ˆøô ô 	VÜÐAÀ&ÀÈÐKÓLÐRUÐUûð	Vús   ‚ Ÿ?ª:º?c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   r‘   zDataFrame | Series | NonerX   r[   r    rZ   r  r\   )r]   s   "r^   r_   rÞ     s@   € ÷ YBñ YBð )ð	YBð
 ðYBð ðYBð 
ñYBr`   c                óp  € Ve(   \        V\        \        34      '       g   \        R4      h\	        VP
                  RR4      p\	        VP
                  RR4      pVf‘   Vfb   \        4        \        f   Q h\	        VRR4      '       g+   \        V\        P                  P                  4      '       d   RpRpM6\        R4      h\        V\        4      '       d   R	pMR
pVR8X  d
   VR,          pRV9  d"   R	\        R
\        /p W†,          p	T	! YYER7      # Vf„   Ve€   VR8X  d:   \	        VRR4      pVe(   VP                  ^8X  d   RpMSVP                  ^8”  d   RpM?VR8X  d9   \	        VRR4      pVe(   VP                  ^8X  d   RpMVP                  ^8”  d   RpR\        R\         R\"        R\$        R\&        R\(        /p WÇ,          p	T	! YYER7      #   \         d$   p
\        RT R\        T4       RT 24      T
hRp
?
ii ; i  \         d$   p
\        RT R\        T4       RT 24      T
hRp
?
ii ; i)z"return a suitable class to operateNz(value must be None, Series, or DataFramerë  Ú
table_typer~   Úframe_tableÚgeneric_tablezKcannot create a storer if the object is not existing nor a value are passedÚseriesÚframeÚ_tablez=cannot properly create the storer for: [_STORER_MAP] [group->ú,value->z	,format->©rX   r    Úseries_tabler™   Úappendable_seriesÚappendable_multiseriesÚappendable_frameÚappendable_multiframeÚwormz<cannot properly create the storer for: [_TABLE_MAP] [group->)rg   r2   r,   rÃ   rï  rð  rŒ   r„   r~   r9  ÚSeriesFixedÚ
FrameFixedr  r  ÚnlevelsÚGenericTableÚAppendableSeriesTableÚAppendableMultiSeriesTableÚAppendableFrameTableÚAppendableMultiFrameTableÚ	WORMTable)ré   rÐ   r]   r‘   rX   r    ÚptÚttÚ_STORER_MAPÚclsr³  r™   Ú
_TABLE_MAPs   &&&&&&       r^   rs  ÚHDFStore._create_storer  sf  € ð Ò¤Z°¼Ä	Ð7J×%KÒ%KÜÐFÓGÐGä�U—^‘^ ]°DÓ9ˆÜ�U—^‘^ \°4Ó8ˆð Š:ØŠ}Ü”	Ü!Ò-Ð-Ð-Ü˜5 '¨4×0Ò0´JØœ:×+Ñ+×1Ñ1÷5ò 5ð '�BØ(‘Bä#ð1óð ô
 ˜e¤V×,Ò,Ø!‘Bà �Bð ˜WÔ$Ø˜(•N�Bð ˜"ÔØ#¤[°'¼:ÐFˆKðØ!•o�ñ �t¨XÔEÐEð Š:àÒ Ø˜Ô'Ü# E¨7°DÓ9�EØÒ(Ø Ÿ=™=¨AÔ-Ø!4™BØ"Ÿ]™]¨QÔ.Ø!9˜BøØ˜=Ô(Ü# E¨7°DÓ9�EØÒ(Ø Ÿ=™=¨AÔ-Ø!3™BØ"Ÿ]™]¨QÔ.Ø!8˜Bð œ\ØÔ!6Ø$Ô&@ØÔ 4Ø#Ô%>Ø”Ið
ˆ
ð	Ø•.ˆCñ �4¨ÔAÐAøôU ô ÜØSØ�g˜X¤d¨5£k ]°)¸F¸8ðEóð ðûðûôH ô 	ÜØNØ�'˜¤$ u£+ ¨i¸°xðAóð ðûð	ús0   ÄG ÇH ÇHÇ!G?Ç?HÈH5ÈH0È0H5c               óD   € V ^8„  d   QhRRRRRRRRR	R
RRRR
RRRRRRRR/# )rW   r�   r[   r‘   r’   r™   r¶  r—   r˜   r”   r•   rš   r›   r´   rœ   r    r£  rZ   r¡   r\   )r]   s   "r^   r_   rÞ   z  sx   € ÷ <*ñ <*àð<*ð "ð<*ð  ð<*ð ð<*ð ð<*ð 2ð<*ð ð<*ð ð<*ð$ ð%<*ð& ð'<*ð( 
ñ)<*r`   c                	óŽ  € \        VR R4      '       d   VR8X  g	   V'       d   R# V P                  W4      pV P                  VW2VVR7      pV'       dl   VP                  '       d,   VP                  '       d%   VR8X  d   VP                  '       d   \        R4      hVP                  '       g   VP                  4        MVP                  4        VP                  '       g   V'       d   \        R4      hVP                  VVVVVV	V
VVVVVVR7       \        V\        4      '       d   V'       d   VP                  VR7       R# R# R# )	ÚemptyNr~   r(  r|   zCan only append to Tablesz0Compression not supported on Fixed format stores)Úobjr¸  r—   r–   r”   rÝ   rš   r´   r¹  rœ   r¤   rž   r£  ©r²   )rï  Ú_identify_grouprs  r˜  Ú	is_existsr¼   Úset_object_infoÚwriterg   r9  rå  )ré   r�   r‘   r]   r¸  r™   r—   r–   r”   rÝ   rš   r´   r¹  rœ   r¤   rž   rX   r    r£  rÐ   rn  s   &&&&&&&&&&&&&&&&&&&  r^   r§  ÚHDFStore._write_to_groupz  s  € ô. �5˜' 4×(Ò(¨f¸Ô.?Ç6Ùà×$Ñ$ SÓ1ˆà×Ñ  v¸xÐPVÐÓWˆßð —:—:�: !§*§* *°¸7Ô1BÀqÇ{Ç{À{Ü Ð!<Ó=Ð=Ø—;—;�;Ø×!Ñ!Ô#øà×ÑÔà�z�zˆzŸgÜÐOÓPÐPð 	
�‰ØØØØØØ!Ø%ØØ%ØØØ%Ø#ð 	ô 	
ô  �aœ×Ò§EØ�N‰N 5ˆNÖ)ñ %*Ñr`   c               ó   € V ^8„  d   QhRR/# )rW   rÐ   rL   r\   )r]   s   "r^   r_   rÞ   ¸  s   € ÷ ñ  ñ r`   c                	ód   € V P                  V4      pVP                  4        VP                  4       # rb   )rs  rt  rj  )ré   rÐ   rn  s   && r^   rd  ÚHDFStore._read_group¸  s&   € Ø×Ñ Ó&ˆØ	�‰ŒØ�v‰v‹xˆr`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   r�   r[   r—   r˜   rZ   rL   r\   )r]   s   "r^   r_   rÞ   ½  s!   € ÷ ñ  3ð °ð ¸ñ r`   c                óÈ   € V P                  V4      pV P                  f   Q hVe(   V'       g    V P                  P                  VRR7       RpVf   V P                  V4      pV# )z@Identify HDF5 group based on key, delete/create group if needed.NTr«  )r  rÚ   Úremove_nodeÚ_create_nodes_and_group)ré   r�   r—   rÐ   s   &&& r^   rC  ÚHDFStore._identify_group½  sb   € à—‘˜cÓ"ˆð �|‰|Ò'Ð'Ð'ð Ò§VØ�L‰L×$Ñ$ U°dÐ$Ô;ØˆEàŠ=Ø×0Ñ0°Ó5ˆEàˆr`   c               ó    € V ^8„  d   QhRRRR/# )rW   r�   r[   rZ   rL   r\   )r]   s   "r^   r_   rÞ   Ï  s   € ÷ ñ ¨3ð °4ñ r`   c                ó<  € V P                   f   Q hVP                  R4      pRpV Fr  p\        V4      '       g   K  TpVP                  R4      '       g
   VR,          pWT,          pV P	                  V4      pVf   V P                   P                  W44      pTpKt  	  X# )z,Create nodes from key and return group name.r8  )rÚ   Úsplitrs   Úendswithr  Úcreate_group)ré   r�   ÚpathsrÁ   ÚpÚnew_pathrÐ   s   &&     r^   rN  Ú HDFStore._create_nodes_and_groupÏ  s“   € ð �|‰|Ò'Ð'Ð'à—	‘	˜#“ˆàˆÛˆAÜ�q—6’6ÙØˆHØ—=‘= ×%Ò%Ø˜C•�Ø�MˆHØ—M‘M (Ó+ˆEØŠ}ØŸ™×1Ñ1°$Ó:�ØŠDñ ð ˆr`   )rä   rå   rç   ræ   rÚ   rÛ   rã   )r»   NNF)r®   )r»   ©F)NNNNFNF©NNN©NN)NNNNNFNF)NTFNNNNNNr†   TF)NNTTNNNNNNNNNNr†   )NNF)r8  )rL  TNNNFT)NNrU   r†   )NTFNNNNNNFNNNr†   T)3r  Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__rê   rñ   Úpropertyrõ   rù   r  r  r  r  r  r  r%  r*  r1  r=  rB  rH  rè   rÊ   r½   r]  rÿ   rÈ   r€  r†  r   r«   r
  r—   rß  ræ  rÅ   rù  r  r}  r  r  rô   r¦  rs  r§  rd  rC  rN  Ú__static_attributes__r\   r`   r^   r¬   r¬   ð  s>  ‡ ñ?ðB ÓØƒJ÷'õBð ñ!ó ð!ð ôó ðõõõ õ
õ
õ"õ4õõ÷.
õ`!õ#÷+JõZð ô)ó ð)÷4õ,!+÷Fa÷FI÷@&F÷Pw/÷rf
÷P5=÷n~
÷@_R÷B&FõP)
÷V>>õ@õ ÷9õv9õ|Eõ÷YB÷v<*õ|õ
÷$ñ r`   r¬   c                  ór   € ] tR tRt$ RtR]R&   R]R&   R]R&   RR
 R lltR R ltR R ltRR R llt	Rt
R	# )ru  iå  a!  
Define the iteration interface on a table

Parameters
----------
store : HDFStore
s     : the referred storer
func  : the function to execute the query
where : the where of the query
nrows : the rows to iterate on
start : the passed start value (default is None)
stop  : the passed stop value (default is None)
iterator : bool, default False
    Whether to use the default iterator.
chunksize : the passed chunking value (default is 100000)
auto_close : bool, default False
    Whether to automatically close the store at the end of iteration.
r•   r´   r¬   r¦   r  rn  Nc               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )rW   r¦   r¬   rn  r  r³   r˜   r´   r•   r¸   rZ   r¡   r\   )r]   s   "r^   r_   ÚTableIterator.__annotate__ý  sF   € ÷ (%ñ (%àð(%ð  ð(%ð ð(%ð ð(%ð ð(%ð 
ñ(%r`   c                	ó:  € Wn         W n        W0n        W@n        V P                  P                  '       d   Vf   ^ pVf   ^ pVf   Tp\        WW4      pWPn        W`n        Wpn        R V n	        V'       g   V	e   V	f   Rp	\        V	4      V n        MR V n        W n        R # )Né † )r¦   rn  ro  rt   r˜  Úminrr  r°   r±   r”  rn   r´   r¸   )ré   r¦   rn  ro  rt   rr  r°   r±   r³   r´   r¸   s   &&&&&&&&&&&r^   rê   ÚTableIterator.__init__ý  s�   € ð Œ
ØŒØŒ	ØŒ
ð �6‰6�?�?ˆ?ØŠ}Ø�ØŠ}Ø�ØŠ|Ø�Ü�uÓ#ˆDàŒ
ØŒ
ØŒ	àˆÔß�yÒ,ØÒ Ø"�	Ü  ›^ˆD�Nà!ˆDŒNà$Žr`   c               ó   € V ^8„  d   QhRR/# ©rW   rZ   rF   r\   )r]   s   "r^   r_   re  '  s   € ÷ ñ ˜(ñ r`   c              #  	ó`  "  € V P                   pV P                  f   \        R4      hWP                  8  de   \	        WP
                  ,           V P                  4      pV P                  R R V P                  W 4      pTpVe   \        V4      '       g   Kn  Vx € Kt  V P                  4        R # 5i)Nz*Cannot iterate until get_result is called.)	r°   r”  r¼   r±   rh  r´   ro  rs   rÊ   )ré   r×   r±   r‘   s   &   r^   rB  ÚTableIterator.__iter__'  s‡   é € à—*‘*ˆØ×ÑÒ#ÜÐIÓJÐJØŸ	™	Ô!Ü�w§¡Õ/°·±Ó;ˆDØ—I‘I˜d D¨$×*:Ñ*:¸7Ð*HÓIˆEØˆGØŠ}¤C¨§J¢JÙàŒKà�
‰
Žùs   ‚B,B.c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   re  7  s   € ÷ ñ �tñ r`   c                	ób   € V P                   '       d   V P                  P                  4        R # R # rb   )r¸   r¦   rÊ   rð   s   &r^   rÊ   ÚTableIterator.close7  s    € Ø�?�?ˆ?Ø�J‰J×ÑÖñ r`   c               ó   € V ^8„  d   QhRR/# )rW   r”  r˜   r\   )r]   s   "r^   r_   re  ;  s   € ÷ ñ  dñ r`   c                	ó8  € V P                   eY   \        V P                  \        4      '       g   \	        R4      hV P                  P                  V P                  R7      V n        V # V'       di   \        V P                  \        4      '       g   \	        R4      hV P                  P                  V P                  V P                  V P                  R7      pMV P                  pV P                  V P                  V P                  V4      pV P                  4        V# )Nz0can only use an iterator or chunksize on a table)rt   z$can only read_coordinates on a tabler|  )r´   rg   rn  r9  rÃ   r~  rt   r”  r°   r±   ro  rÊ   )ré   r”  rt   Úresultss   &&  r^   rv  ÚTableIterator.get_result;  sÏ   € à�>‰>Ò%Ü˜dŸf™f¤e×,Ò,ÜÐ RÓSÐSà#Ÿv™v×6Ñ6¸T¿Z¹ZÐ6ÓHˆDÔàˆK÷ Ü˜dŸf™f¤e×,Ò,ÜÐ FÓGÐGØ—F‘F×+Ñ+Ø—j‘j¨¯
©
¸¿¹ð ,ó ‰Eð —J‘JˆEð —)‘)˜DŸJ™J¨¯	©	°5Ó9ˆØ�
‰
ŒØˆr`   )
r¸   r´   r”  ro  rr  rn  r°   r±   r¦   rt   )NNFNFrY  )r  r\  r]  r^  r_  r`  rê   rB  rÊ   rv  rb  r\   r`   r^   ru  ru  å  s4   ‡ ñð& ÓØƒOØÓ÷(%õTõ ÷ó r`   ru  c                  óš  € ] tR tRt$ RtRtR]R&   RtR]R&   . R5OtR6R R	 llt	]
R
 R l4       t]
R R l4       tR R ltR R ltR R ltR R lt]
R R l4       tR R ltR t]
R 4       t]
R 4       t]
R 4       t]
R 4       tR R  ltR7R! R" lltR# R$ ltR% R& ltR7R' ltR( R) ltR* R+ ltR, R- ltR. R/ lt R0 R1 lt!R2 R3 lt"R4t#R# )8ÚIndexColiU  zò
an index column description class

Parameters
----------
axis   : axis which I reference
values : the ndarray like converted values
kind   : a string description of this type
typ    : the pytables type
pos    : the position in the pytables

Tr˜   Úis_an_indexableÚis_data_indexableNc               ó$   € V ^8„  d   QhRRRRRR/# )rW   ri   r[   ÚcnamerY   rZ   r¡   r\   )r]   s   "r^   r_   ÚIndexCol.__annotate__g  s(   € ÷ )+ñ )+àð)+ð ð)+ð  
ñ!)+r`   c                	ó¸  € \        V\        4      '       g   \        R 4      hW n        W0n        W@n        Wn        T;'       g    TV n        W`n        Wpn	        W€n
        W�n        W n        W°n        WÀn        WÐn        Wàn        Ve   V P#                  V4       \        V P                  \        4      '       g   Q h\        V P                  \        4      '       g   Q hR# )z`name` must be a str.N)rg   r[   r¼   rÑ  rã  Útypri   rz  rŽ  ÚposÚfreqÚtzÚ
index_namerØ  r~   rÓ   ÚmetadataÚset_pos)ré   ri   rÑ  rã  r}  rz  rŽ  r~  r  r€  r�  rØ  r~   rÓ   r‚  s   &&&&&&&&&&&&&&&r^   rê   ÚIndexCol.__init__g  s¬   € ô" ˜$¤×$Ò$ÜÐ4Ó5Ð5àŒØŒ	ØŒØŒ	Ø—]�]˜dˆŒ
ØŒ	ØŒØŒ	ØŒØ$ŒØŒØŒ
ØŒ	Ø ŒàŠ?Ø�L‰L˜Ôô ˜$Ÿ)™)¤S×)Ò)Ð)Ð)Ü˜$Ÿ*™*¤c×*Ò*Ð*Ò*r`   c               ó   € V ^8„  d   QhRR/# r  r\   )r]   s   "r^   r_   r{  “  s   € ÷ !ñ !˜#ñ !r`   c                	ó.   € V P                   P                  # rb   )r}  Úitemsizerð   s   &r^   r‡  ÚIndexCol.itemsize’  s   € ð �x‰x× Ñ Ð r`   c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   r{  ˜  ó   € ÷ #ñ #˜3ñ #r`   c                	ó    € V P                    R 2# )Ú_kindrh   rð   s   &r^   Ú	kind_attrÚIndexCol.kind_attr—  ó   € à—)‘)�˜EÐ"Ð"r`   c               ó    € V ^8„  d   QhRRRR/# )rW   r~  rn   rZ   r¡   r\   )r]   s   "r^   r_   r{  ›  s   € ÷ "ñ "˜3ð " 4ñ "r`   c                ó^   € Wn         Ve#   V P                  e   WP                  n        R# R# R# )z,set the position of this column in the TableN)r~  r}  Ú_v_pos)ré   r~  s   &&r^   rƒ  ÚIndexCol.set_pos›  s%   € àŒØŠ?˜tŸx™xÒ3Ø!�H‰HŽOñ  4‰?r`   c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   r{  ¡  s   € ÷ 
ñ 
˜#ñ 
r`   c           
     	ó  € \        \        \        V P                  V P                  V P
                  V P                  V P                  34      4      pR P                  \        . ROVRR7       UUu. uF  w  r#V RV 2NK  	  upp4      # u uppi )Ú,TrŠ  ú->)ri   rz  rŽ  r~  rã  )
rr   ÚmaprC   ri   rz  rŽ  r~  rã  Újoinr—  ©ré   Útempr�   r‘   s   &   r^   r%  ÚIndexCol.__repr__¡  s‡   € ÜÜ”˜tŸy™y¨$¯*©*°d·i±iÀÇÁÈ4Ï9É9ÐUÓVó
ˆð �x‰xô #&Ú<¸dÈ4õ#ôñ#‘J�Cð �%�r˜%˜Ó!ñ#òó
ð 	
ùóó   Á/B	
c               ó    € V ^8„  d   QhRRRR/# ©rW   ÚotherÚobjectrZ   r˜   r\   )r]   s   "r^   r_   r{  ®  ó   € ÷ 
ñ 
˜Fð 
 tñ 
r`   c                ó~   a a€ \         ;QJ d     VV 3R lR 4       F  '       d   K   R# 	  R# ! VV 3R lR 4       4      # )úcompare 2 col itemsc              3  óZ   <"  € T F   p\        SVR 4      \        SVR 4      8H  x € K"  	  R # 5irb   ©rï  ©rÂ  r»   r   ré   s   & €€r^   rÄ  Ú"IndexCol.__eq__.<locals>.<genexpr>°  s/   øé € ð 
á5�ô �D˜!˜TÓ"¤g¨e°Q¸Ó&=Ö=Û5ùó   ƒ(+FT)ri   rz  rŽ  r~  ©rÀ  ©ré   r   s   ffr^   Ú__eq__ÚIndexCol.__eq__®  s>   ù€ ç‹sõ 
á5ó
�sŒsð 	
Šsð 	
ˆsõ 
á5ó
ó 
ð 	
r`   c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   r{  µ  s   € ÷ &ñ &˜tñ &r`   c                	ó.   € V P                  V4      '       * # rb   )r¬  r«  s   &&r^   Ú__ne__ÚIndexCol.__ne__µ  s   € Ø—;‘;˜uÓ%Ô%Ð%r`   c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   r{  ¹  s   € ÷ ?ñ ?˜Dñ ?r`   c                ó¦   € \        V P                  R4      '       g   R# \        V P                  P                  V P                  4      P
                  # )z%return whether I am an indexed columnrÃ  F)Úhasattrr~   rï  rÃ  rz  r	  rð   s   &r^   r	  ÚIndexCol.is_indexed¸  s7   € ô �t—z‘z 6×*Ò*áÜ�t—z‘z—‘¨¯
©
Ó3×>Ñ>Ð>r`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   rÑ  ú
np.ndarrayrX   r[   r    rZ   z3tuple[np.ndarray, np.ndarray] | tuple[Index, Index]r\   )r]   s   "r^   r_   r{  À  s2   € ÷ A.ñ A.Ø ðA.Ø58ðA.ØBEðA.à	<ñA.r`   c           
     ó>  € \        V\        P                  4      '       g   Q \        V4      4       hVP                  P
                  e!   WP                  ,          P                  4       pV P                  p\        WW44      p/ pV P                  VR&   V P                  e   V P                  VR&   \        p\        P                  ! VP                  R4      '       g!   \        VP                  \        4      '       d   \         pMVP                  R8X  d   RV9   d   R p V! V3/ VB pT P2                  eD   \        T\         4      '       d.   TP5                  R4      P7                  T P2                  4      p
Yª3# Tp
Yª3#   \"         ds   p	TR8X  df   \%        4       '       dV   \'        T	4      P)                  R4      '       d6   \*        '       d*   T! T3R	\-        R
\        P.                  R7      /TB p Rp	?	LÍh Rp	?	i\0         d    RT9   d   RTR&   T! T3/ TB p Lói ; i)zF
Convert the data from this selection to the appropriate pandas type.
Nri   r  ÚMÚi8c                ó|   € \         P                  ! WP                  R R4      R7      P                  VR,          4      # )r  N)r  ri   )r0   Úfrom_ordinalsrÿ   Ú_rename)rž  Úkwdss   &,r^   r§   Ú"IndexCol.convert.<locals>.<lambda>à  s0   € ¬×(AÒ(AØŸ™ ¨Ó.ô)ç‰g�d˜6•lÓ#ð)$r`   Úsurrogatepassúsurrogates not allowedÚdtypeÚpython©ÚstorageÚna_valueÚUTC)rg   ÚnpÚndarrayr  rÂ  Úfieldsrz  r  rã  Ú_maybe_convertr�  r  r.   r   Úis_np_dtyper(   r-   ÚUnicodeEncodeErrorr   r[   rS  r   r3   Únanr¼   r€  Útz_localizeÚ
tz_convert)ré   rÑ  r¤   rX   r    Úval_kindrË   ÚfactoryÚnew_pd_indexr³  Úfinal_pd_indexs   &&&&&      r^   ÚconvertÚIndexCol.convertÀ  sØ  € ô ˜&¤"§*¡*×-Ò-Ð;¬t°F«|Ó;Ð-ð �<‰<×ÑÒ*ð ŸJ™JÕ'×,Ñ,Ó.ˆFà—9‘9ˆÜ °(ÓCˆØˆØŸ™ˆˆv‰à�9‰9Ò Ø!ŸY™YˆF�6‰Nä/4ˆÜ�?Š?˜6Ÿ<™<¨×-Ò-´Ø�L‰Lœ/÷2
ò 2
ô $‰GØ�\‰\˜TÔ! f°Ô&6ñ
$ˆGð
	5Ù" 6Ñ4¨VÑ4ˆLð. �7‰7Ò¤:¨l¼M×#JÒ#JØ)×5Ñ5°eÓ<×GÑGÈÏÉÓPˆNð Ð-Ð-ð *ˆNØÐ-Ð-øô5 "ô 	à˜/Ô)Ü&×(Ò(Ü˜“H×%Ñ%Ð&>×?Ò?ß“Ká&Øñ ä%¨hÄÇÁÔHð ð ñ •ð ûÜô 	5ð ˜ÔØ!%��v‘Ù" 6Ñ4¨VÑ4ŠLð	5ús1   Ä	E> Å>HÆ	AG6Ç$G6Ç5G6Ç6HÈHÈHc                ó   € V P                   # )zreturn the values©rÑ  rð   s   &r^   Ú	take_dataÚIndexCol.take_data	  s   € à�{‰{Ðr`   c                	ó.   € V P                   P                  # rb   )r~   rð  rð   s   &r^   ÚattrsÚIndexCol.attrs	  ó   € à�z‰z×"Ñ"Ð"r`   c                	ó.   € V P                   P                  # rb   ©r~   Údescriptionrð   s   &r^   rá  ÚIndexCol.description	  ó   € à�z‰z×%Ñ%Ð%r`   c                óD   € \        V P                  V P                  R4      # )z!return my current col descriptionN)rï  rá  rz  rð   s   &r^   ÚcolÚIndexCol.col	  s   € ô �t×'Ñ'¨¯©°TÓ:Ð:r`   c                ó   € V P                   # ©zreturn my cython valuesrØ  rð   s   &r^   ÚcvaluesÚIndexCol.cvalues	  s   € ð �{‰{Ðr`   c               ó   € V ^8„  d   QhRR/# rk  r\   )r]   s   "r^   r_   r{  	  s   € ÷ !ñ !˜(ñ !r`   c                	ó,   € \        V P                  4      # rb   )rA  rÑ  rð   s   &r^   rB  ÚIndexCol.__iter__	  s   € Ü�D—K‘KÓ Ð r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r{  	  s   € ÷ Tñ T°4ñ Tr`   c                ó&  € V P                   R8X  d€   \        V\        4      '       d   VP                  V P                  4      pVeI   V P
                  P                  V8  d,   \        4       P                  WP                  R7      V n        R# R# R# R# )z
maybe set a string col itemsize:
    min_itemsize can be an integer or a dict with this columns name
    with an integer size
ÚstringN)r‡  r~  )
rã  rg   r½  rÿ   ri   r}  r‡  rŒ   Ú	StringColr~  )ré   rš   s   &&r^   Úmaybe_set_sizeÚIndexCol.maybe_set_size	  sq   € ð �9‰9˜Ô Ü˜,¬×-Ò-Ø+×/Ñ/°·	±	Ó:�àÒ'¨D¯H©H×,=Ñ,=ÀÔ,LÜ"›9×.Ñ.¸Ï(É(Ð.ÓS�–ñ -MÑ'ñ	 !r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r{  )	  s   € ÷ ñ  ñ r`   c                	ó   € R # rb   r\   rð   s   &r^   Úvalidate_namesÚIndexCol.validate_names)	  ó   € Ùr`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   ÚhandlerÚAppendableTabler—   r˜   rZ   r¡   r\   )r]   s   "r^   r_   r{  ,	  s!   € ÷ ñ ¨ð Àð È$ñ r`   c                	óÎ   € VP                   V n         V P                  4        V P                  V4       V P                  V4       V P	                  V4       V P                  4        R # rb   )r~   Úvalidate_colÚvalidate_attrÚvalidate_metadataÚwrite_metadataÚset_attr)ré   rú  r—   s   &&&r^   Úvalidate_and_setÚIndexCol.validate_and_set,	  sL   € Ø—]‘]ˆŒ
Ø×ÑÔØ×Ñ˜6Ô"Ø×Ñ˜wÔ'Ø×Ñ˜GÔ$Ø�‰Žr`   c           	     óô   € V P                   R8X  dg   V P                  pVeW   Vf   V P                  pVP                  V8  d*   \        RV RV P                   RVP                   R24      hVP                  # R# )z:validate this column: return the compared against itemsizerð  Nz#Trying to store a string with len [z] in [z)] column but
this column has a limit of [zC]!
Consider using min_itemsize to preset the sizes on these columns)rã  rå  r‡  r¼   rz  )ré   r‡  Úcs   && r^   rý  ÚIndexCol.validate_col4	  sƒ   € ð �9‰9˜Ô Ø—‘ˆAØŠ}ØÒ#Ø#Ÿ}™}�HØ—:‘: Ô(Ü$Ø=¸h¸Zð HØ ŸJ™J˜<ð (ØŸJ™J˜<ð (<ð<óð ð —z‘zÐ!ár`   c               ó    € V ^8„  d   QhRRRR/# )rW   r—   r˜   rZ   r¡   r\   )r]   s   "r^   r_   r{  G	  s   € ÷ ñ  Dð ¨Tñ r`   c                	óÀ   € V'       dV   \        V P                  V P                  R 4      pVe/   W P                  8w  d   \	        RV RV P                   R24      hR # R # R # )Nzincompatible kind in col [ú - r‹  )rï  rÜ  r�  rã  rÃ   )ré   r—   Úexisting_kinds   && r^   rþ  ÚIndexCol.validate_attrG	  s[   € çÜ# D§J¡J°·±ÀÓEˆMØÒ(¨]¿i¹iÔ-GÜØ0°°¸sÀ4Ç9Á9À+ÈQÐOóð ñ .HÑ(ñ r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r{  P	  s   € ÷ !ñ ! 4ñ !r`   c                ó¸  € V P                    FÉ  p\        WR4      pVP                  V P                  / 4      pVP	                  V4      pW$9   dz   Vev   WS8w  dp   VR9   dG   \
        W%V3,          p\        P                  ! V\        \        4       R7       RWB&   \        WR4       K™  \        RV P                   RV RV RV R2	4      hVf   Vf   KÅ  W4V&   KË  	  R# )	zg
set/update the info for this indexable with the key/value
if there is a conflict raise/warn as needed
N©Ú
stacklevelzinvalid info for [z] for [z], existing_value [z] conflicts with new value [r‹  )r  r�  )Ú_info_fieldsrï  Ú
setdefaultri   rÿ   ry   ÚwarningsÚwarnr   r    Úsetattrr¼   )ré   r  r�   r‘   ÚidxÚexisting_valueÚwss   &&     r^   Úupdate_infoÚIndexCol.update_infoP	  sä   € ð
 ×$Ô$ˆCÜ˜D tÓ,ˆEØ—/‘/ $§)¡)¨RÓ0ˆCà ŸW™W S›\ˆNØŒz˜eÒ/°NÔ4KàÐ0Ô0Ü/°3ÈÐ2NÕN�BÜ—M’MØÔ4ÔAQÓASõð
  $�C‘HÜ˜D tÖ,ô %Ø,¨T¯Y©Y¨K°w¸s¸eð D+Ø+9Ð*:ð ;&Ø&+ W¨Að/óð ð
 Ò" nÔ&@Ø �C“ó1 %r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r{  o	  s   € ÷ &ñ & ñ &r`   c                ó~   € VP                  V P                  4      pVe   V P                  P                  V4       R# R# )z!set my state from the passed infoN)rÿ   ri   Ú__dict__Úupdate)ré   r  r  s   && r^   Úset_infoÚIndexCol.set_infoo	  s0   € à�h‰h�t—y‘yÓ!ˆØŠ?Ø�M‰M× Ñ  Ö%ñ r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r{  u	  s   € ÷ 7ñ 7˜$ñ 7r`   c                ó\   € \        V P                  V P                  V P                  4       R# )zset the kind for this columnN)r  rÜ  r�  rã  rð   s   &r^   r  ÚIndexCol.set_attru	  s   € ä�—
‘
˜DŸN™N¨D¯I©IÖ6r`   c               ó    € V ^8„  d   QhRRRR/# ©rW   rú  rû  rZ   r¡   r\   )r]   s   "r^   r_   r{  y	  s   € ÷ ñ ¨ð ¸Tñ r`   c                óÐ   € V P                   R8X  dU   V P                  pVP                  V P                  4      pVe(   Ve"   \	        W#RRR7      '       g   \        R4      hR# R# R# R# )z:validate that kind=category does not change the categoriesÚcategoryNT©Ú
strict_nanÚdtype_equalzEcannot append a categorical with different categories to the existing)rÓ   r‚  Úread_metadatarz  r+   r¼   )ré   rú  Únew_metadataÚcur_metadatas   &&  r^   rÿ  ÚIndexCol.validate_metadatay	  ss   € à�9‰9˜
Ô"ØŸ=™=ˆLØ"×0Ñ0°·±Ó<ˆLàÒ(Ø Ò,Ü(Ø ¸4ÈT÷ó ô !ð;óð ñ	ñ -ñ )ñ	 #r`   c               ó    € V ^8„  d   QhRRRR/# r$  r\   )r]   s   "r^   r_   r{  Š	  s   € ÷ >ñ > oð >¸$ñ >r`   c                ór   € V P                   e)   VP                  V P                  V P                   4       R# R# )zset the meta dataN)r‚  r   rz  )ré   rú  s   &&r^   r   ÚIndexCol.write_metadataŠ	  s)   € à�=‰=Ò$Ø×"Ñ" 4§:¡:¨t¯}©}Ö=ñ %r`   )rŽ  rz  r  r�  rã  rÓ   r‚  ri   rØ  r~  r~   r}  r€  rÑ  )r  r€  r�  )NNNNNNNNNNNNNrb   )$r  r\  r]  r^  r_  rw  r`  rx  r  rê   ra  r‡  r�  rƒ  r%  r¬  r°  r	  rÕ  rÙ  rÜ  rá  rå  ré  rB  rò  rö  r  rý  rþ  r  r  r  rÿ  r   rb  r\   r`   r^   rv  rv  U  s  ‡ ñð !€O�TÓ Ø"Ð�tÓ"Ú/€L÷)+ðV ô!ó ð!ð ô#ó ð#õ"õ
õ
õ&ð ô?ó ð?õA.òFð ñ#ó ð#ð ñ&ó ð&ð ñ;ó ð;ð ñó ðõ!÷Tõõôõ&õ!õ>&õ7õ÷">ñ >r`   rv  c                  óH   € ] tR tRtRt]R R l4       tR R ltR R ltR	t	R
# )ÚGenericIndexColi�	  z:an index which is not represented in the data of the tablec               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   ÚGenericIndexCol.__annotate__”	  s   € ÷ ñ ˜Dñ r`   c                	ó   € R # rY  r\   rð   s   &r^   r	  ÚGenericIndexCol.is_indexed“	  ó   € ár`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   rÑ  r·  rX   r[   r    rZ   ztuple[Index, Index]r\   )r]   s   "r^   r_   r4  —	  s,   € ÷ ñ Ø ðØ58ðØBEðà	ñr`   c                ó�   € \        V\        P                  4      '       g   Q \        V4      4       h\	        \        V4      4      pWU3# )z›
Convert the data from this selection to the appropriate pandas type.

Parameters
----------
values : np.ndarray
nan_rep : str
encoding : str
errors : str
)rg   rÈ  rÉ  r  r1   rs   )ré   rÑ  r¤   rX   r    r™   s   &&&&& r^   rÕ  ÚGenericIndexCol.convert—	  s:   € ô ˜&¤"§*¡*×-Ò-Ð;¬t°F«|Ó;Ð-äœ3˜v›;Ó'ˆØˆ|Ðr`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r4  ©	  s   € ÷ ñ ˜$ñ r`   c                	ó   € R # rb   r\   rð   s   &r^   r  ÚGenericIndexCol.set_attr©	  rø  r`   r\   N)
r  r\  r]  r^  r_  ra  r	  rÕ  r  rb  r\   r`   r^   r2  r2  �	  s&   † ÙDàôó ðõ÷$ñ r`   r2  c                  óR  a € ] tR tRtRtRtRtRR.tR%R V 3R lllt]	R R	 l4       t
]	R
 R l4       tR R ltR R ltR R ltR t]R R l4       t]R 4       t]R R l4       t]R R l4       t]R 4       t]R 4       t]	R 4       t]	R 4       tR R ltR  R! ltR" R# ltR$tV ;t# )&ÚDataColi­	  a  
a data holding column, by definition this is not indexable

Parameters
----------
data   : the actual data
cname  : the column name in the table to hold the data (typically
            values)
meta   : a string description of the metadata
metadata : the actual metadata
Fr€  rØ  c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rW   ri   r[   rz  rY   rÂ  zDtypeArg | NonerZ   r¡   r\   )r]   s   "r^   r_   ÚDataCol.__annotate__¾	  s2   € ÷ ñ àðð ðð ðð 
ñr`   c                	óT   <€ \         SV `  VVVVVVVVV	V
VR 7       WÀn        WÐn        R# ))ri   rÑ  rã  r}  r~  rz  r€  rØ  r~   rÓ   r‚  N)Úsuperrê   rÂ  r  )ré   ri   rÑ  rã  r}  rz  r~  r€  rØ  r~   rÓ   r‚  rÂ  r  Ú	__class__s   &&&&&&&&&&&&&&€r^   rê   ÚDataCol.__init__¾	  sD   ø€ ô  	‰ÑØØØØØØØØØØØð 	ô 	
ð Œ
ØŽ	r`   c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   rA  ß	  s   € ÷ $ñ $˜Cñ $r`   c                	ó    € V P                    R 2# )Ú_dtyperh   rð   s   &r^   Ú
dtype_attrÚDataCol.dtype_attrÞ	  s   € à—)‘)�˜FÐ#Ð#r`   c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   rA  ã	  rŠ  r`   c                	ó    € V P                    R 2# )Ú_metarh   rð   s   &r^   Ú	meta_attrÚDataCol.meta_attrâ	  r�  r`   c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   rA  æ	  s   € ÷ 
ñ 
˜#ñ 
r`   c           
     	ó  € \        \        \        V P                  V P                  V P
                  V P                  V P                  34      4      pR P                  \        . ROVRR7       UUu. uF  w  r#V RV 2NK  	  upp4      # u uppi )r–  TrŠ  r—  )ri   rz  rÂ  rã  Úshape)
rr   r˜  rC   ri   rz  rÂ  rã  rR  r™  r—  rš  s   &   r^   r%  ÚDataCol.__repr__æ	  sŠ   € ÜÜÜ˜tŸy™y¨$¯*©*°d·j±jÀ$Ç)Á)ÈTÏZÉZÐXóó
ˆð
 �x‰xô #&Ú?ÀÈdõ#ôñ#‘J�Cð �%�r˜%˜Ó!ñ#òó
ð 	
ùór�  c               ó    € V ^8„  d   QhRRRR/# rŸ  r\   )r]   s   "r^   r_   rA  õ	  r¢  r`   c                ó~   a a€ \         ;QJ d     VV 3R lR 4       F  '       d   K   R# 	  R# ! VV 3R lR 4       4      # )r¤  c              3  óZ   <"  € T F   p\        SVR 4      \        SVR 4      8H  x € K"  	  R # 5irb   r¦  r§  s   & €€r^   rÄ  Ú!DataCol.__eq__.<locals>.<genexpr>÷	  s/   øé € ð 
á6�ô �D˜!˜TÓ"¤g¨e°Q¸Ó&=Ö=Û6ùr©  FT)ri   rz  rÂ  r~  rª  r«  s   ffr^   r¬  ÚDataCol.__eq__õ	  s>   ù€ ç‹sõ 
á6ó
�sŒsð 	
Šsð 	
ˆsõ 
á6ó
ó 
ð 	
r`   c               ó    € V ^8„  d   QhRRRR/# )rW   r  rN   rZ   r¡   r\   )r]   s   "r^   r_   rA  ü	  s   € ÷ /ñ /˜Yð /¨4ñ /r`   c                	ó„   € Vf   Q hV P                   e   Q h\        V4      w  rWn        W n         \        V4      V n        R # rb   )rÂ  Ú_get_data_and_dtype_namer  Ú_dtype_to_kindrã  )ré   r  Ú
dtype_names   && r^   Úset_dataÚDataCol.set_dataü	  sA   € ØÒÐÐØ�z‰zÒ!Ð!Ð!ä3°DÓ9ÑˆàŒ	ØŒ
Ü" :Ó.ˆŽ	r`   c                ó   € V P                   # )zreturn the data©r  rð   s   &r^   rÙ  ÚDataCol.take_data
  s   € à�y‰yÐr`   c               ó    € V ^8„  d   QhRRRR/# )rW   rÑ  rN   rZ   rJ   r\   )r]   s   "r^   r_   rA  
  s   € ÷ ñ ˜yð ¨Sñ r`   c                óô  € VP                   pVP                  pVP                  pVP                  ^8X  d   ^VP                  3p\        V\        4      '       d5   VP                  pV P                  WEP                   P                  R7      pV# \        P                  ! VR4      '       g   \        V\        4      '       d   V P                  V4      pV# \        P                  ! VR4      '       d   V P                  V4      pV# \        V4      '       d$   \!        4       P#                  W4^ ,          R7      pV# \%        V4      '       d   V P'                  WC4      pV# V P                  WBP                  R7      pV# )zG
Get an appropriately typed and shaped pytables.Col object for values.
©rã  r¹  Úm©r‡  rR  )rÂ  r‡  rR  rÊ  Úsizerg   r7   ÚcodesÚget_atom_datari   r   rÌ  r(   Úget_atom_datetime64Úget_atom_timedelta64r#   rŒ   Ú
ComplexColr%   Úget_atom_string)r;  rÑ  rÂ  r‡  rR  ri  Úatoms   &&     r^   Ú	_get_atomÚDataCol._get_atom

  sF  € ð
 —‘ˆð —>‘>ˆà—‘ˆØ�;‰;˜!Ôð ˜Ÿ™Ð$ˆEä�fœk×*Ò*Ø—L‘LˆEØ×$Ñ$ U·±×1AÑ1AÐ$ÓBˆDð ˆô �_Š_˜U C×(Ò(¬J°u¼o×,NÒ,NØ×*Ñ*¨5Ó1ˆDð ˆô �_Š_˜U C×(Ò(Ø×+Ñ+¨EÓ2ˆDð ˆô ˜e×$Ò$Ü“9×'Ñ'°ÀqÅÐ'ÓJˆDð ˆô ˜U×#Ò#Ø×&Ñ& uÓ7ˆDð ˆð ×$Ñ$ U·±Ð$Ó<ˆDàˆr`   c                	óD   € \        4       P                  W!^ ,          R7      # )é    rg  ©rŒ   rñ  ©r;  rR  r‡  s   &&&r^   rn  ÚDataCol.get_atom_string*
  s   € ä‹y×"Ñ"¨HÀ!½HÐ"ÓEÐEr`   c               ó    € V ^8„  d   QhRRRR/# )rW   rã  r[   rZ   z	type[Col]r\   )r]   s   "r^   r_   rA  /
  s   € ÷ ,ñ , Cð ,¨Iñ ,r`   c                óÖ   € VP                  R4      '       d   VR,          pRV R2pM/VP                  R4      '       d   RpMVP                  4       pV R2p\        \        4       V4      # )z0return the PyTables column class for this columnÚuint:é   NNÚUIntrJ   ÚperiodÚInt64Col)rý  Ú
capitalizerï  rŒ   )r;  rã  Úk4Úcol_nameÚkcaps   &&   r^   Úget_atom_coltypeÚDataCol.get_atom_coltype.
  sc   € ð �?‰?˜6×"Ò"Ø�b•ˆBØ˜b˜T �~‰HØ�_‰_˜X×&Ò&à!‰Hà—?‘?Ó$ˆDØ˜˜s�|ˆHä”w“y (Ó+Ð+r`   c               ó    € V ^8„  d   QhRRRR/# ©rW   rã  r[   rZ   rJ   r\   )r]   s   "r^   r_   rA  >
  s   € ÷ ?ñ ?¨ð ?°ñ ?r`   c                	óB   € V P                  VR 7      ! V^ ,          R7      # )re  ©rR  ©r‚  ©r;  rR  rã  s   &&&r^   rj  ÚDataCol.get_atom_data=
  s   € à×#Ñ#¨Ð#Ô.°U¸1µXÔ>Ð>r`   c                	óD   € \        4       P                  V^ ,          R7      # ©rs  r‡  ©rŒ   r}  ©r;  rR  s   &&r^   rk  ÚDataCol.get_atom_datetime64A
  ó   € ä‹y×!Ñ!¨¨a­Ð!Ó1Ð1r`   c                	óD   € \        4       P                  V^ ,          R7      # rŒ  r�  rŽ  s   &&r^   rl  ÚDataCol.get_atom_timedelta64E
  r�  r`   c                	ó0   € \        V P                  R R4      # )rR  N)rï  r  rð   s   &r^   rR  ÚDataCol.shapeI
  s   € ä�t—y‘y '¨4Ó0Ð0r`   c                ó   € V P                   # rè  ra  rð   s   &r^   ré  ÚDataCol.cvaluesM
  s   € ð �y‰yÐr`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rA  R
  s   € ÷ ñ  tñ r`   c                ó2  € V'       d�   \        V P                  V P                  R4      pVe&   V\        V P                  4      8w  d   \        R4      h\        V P                  V P                  R4      pVe   W0P                  8w  d   \        R4      hR# R# R# )zAvalidate that we have the same order as the existing & same dtypeNz4appended items do not match existing items in table!z@appended items dtype do not match existing items dtype in table!)rï  rÜ  r�  rq   rÑ  r¼   rI  rÂ  )ré   r—   Úexisting_fieldsÚexisting_dtypes   &&  r^   rþ  ÚDataCol.validate_attrR
  s€   € çÜ% d§j¡j°$·.±.À$ÓGˆOØÒ*¨Ä$ÀtÇ{Á{ÓBSÔ/SÜ Ð!WÓXÐXä$ T§Z¡Z°·±À$ÓGˆNØÒ)¨nÇ
Á
Ô.JÜ ØVóð ñ /KÑ)ñ r`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   rÑ  r·  rX   r[   r    r\   )r]   s   "r^   r_   rA  _
  s&   € ÷ h&ñ h&˜jð h&¸Sð h&È#ñ h&r`   c           	     óˆ  € \        V\        P                  4      '       g   Q \        V4      4       hVP                  P
                  e   WP                  ,          pV P                  f   Q hV P                  f   \        V4      w  rV\        V4      pMTpV P                  pV P                  p\        V\        P                  4      '       g   Q hV P                  pV P                  p	V P                  p
V P                  pVf   Q hTpVP                  R4      '       d   VR8X  d   Rp\!        W[V4      pEMnVP                  R4      '       d;   VR8X  d   \        P"                  ! VRR7      pEM6\        P"                  ! W\R7      pEMVR8X  dC    \        P"                  ! V Uu. uF  p\$        P&                  ! V4      NK  	  up\(        R7      pMÔVR8X  dº   T	pVP/                  4       pVf   \1        . \        P2                  R7      pMm\5        V4      pVP7                  4       '       dM   VV( ,          pWÿR8g  ;;,          VP9                  \:        4      P=                  4       P>                  ,          uu&   \@        PB                  ! WþV
RR	7      pM VP9                  VRR
7      pVR8X  d   \G        WRW4R7      pV PH                  V3# u upi   \*         dJ    \        P"                  ! T Uu. uF  p\$        P,                  ! T4      NK  	  Mu upi up\(        R7      p Lzi ; i  \D         d    TP9                  RRR
7      p Lži ; i)zò
Convert the data from this selection to the appropriate pandas type.

Parameters
----------
values : np.ndarray
nan_rep :
encoding : str
errors : str

Returns
-------
index : listlike to become an Index
data : ndarraylike to become a column
Ú
datetime64údatetime64[ns]Útimedelta64úm8[ns]©rÂ  r   r&  F)Ú
categoriesrØ  Úvalidate©r  ÚOrð  ©r¤   rX   r    éÿÿÿÿ)%rg   rÈ  rÉ  r  rÂ  rÊ  rz  r}  r[  r\  rã  rÓ   r‚  rØ  r€  rý  Ú_set_tzÚasarrayr   Úfromordinalr¡  r¼   ÚfromtimestampÚravelr.   Úfloat64r6   ÚanyÚastypern   ÚcumsumÚ_valuesr7   Ú
from_codesrÃ   Ú_unconvert_string_arrayrÑ  )ré   rÑ  r¤   rX   r    Ú	convertedr]  rã  rÓ   r‚  rØ  r€  rÂ  r×  r£  ri  Úmasks   &&&&&            r^   rÕ  ÚDataCol.convert_
  s¹  € ô  ˜&¤"§*¡*×-Ò-Ð;¬t°F«|Ó;Ð-ð �<‰<×ÑÒ*ØŸJ™JÕ'ˆFà�x‰xÒ#Ð#Ð#Ø�:‰:Òô %=¸VÓ$DÑ!ˆIÜ! *Ó-‰DàˆIØŸ™ˆJØ—9‘9ˆDä˜)¤R§Z¡Z×0Ò0Ð0Ð0ð �y‰yˆØ—=‘=ˆØ—,‘,ˆØ�W‰WˆàÒ%Ð%Ð%àˆð ×Ñ˜L×)Ò)à˜Ô$Ø(�Ü 	¨uÓ5ŠIà×Ñ˜m×,Ò,Ø˜Ô%äŸJšJ y¸ÔA’	äŸJšJ yÔ>’	Ø�fŒ_ðÜŸJšJÙ2;Ó<±)¨Q”T×%Ò% aÖ(±)Ñ<ÄFô‘	ð �ZÔà!ˆJØ—O‘OÓ%ˆEð
 Ò!ô
 # 2¬R¯Z©ZÔ8‘
ä˜JÓ'�Ø—8‘8—:’:Ø!+¨T¨EÕ!2�JØ 2™+×&¨$¯+©+´cÓ*:×*AÑ*AÓ*C×*KÑ*KÕKÓ&ä#×.Ò.Ø°gÈô‰Ið
>Ø%×,Ñ,¨U¸Ð,Ó?�	ð
 �8ÔÜ/Ø°XôˆIð �{‰{˜IÐ%Ð%ùòW =øäô ÜŸJšJÙ4=Ó>±I¨q”T×'Ò'¨Ö*²IùÔ>Äfô’	ðûô@ ô >Ø%×,Ñ,¨S°uÐ,Ó=’	ð>úsB   ÆK	 Æ!KÇ K	 ÊL  ËK	 Ë	LË(L
ÌLÌLÌ MÍ Mc               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rA  É
  s   € ÷ 9ñ 9˜$ñ 9r`   c                ó(  € \        V P                  V P                  V P                  4       \        V P                  V P                  V P
                  4       V P                  f   Q h\        V P                  V P                  V P                  4       R# )zset the data for this columnN)r  rÜ  r�  rÑ  rN  rÓ   rÂ  rI  rð   s   &r^   r  ÚDataCol.set_attrÉ
  sZ   € ä�—
‘
˜DŸN™N¨D¯K©KÔ8Ü�—
‘
˜DŸN™N¨D¯I©IÔ6Ø�z‰zÒ%Ð%Ð%Ü�—
‘
˜DŸO™O¨T¯Z©ZÖ8r`   )r  rÂ  rã  )NNNNNNNNNNNN)r  r\  r]  r^  r_  rw  rx  r  rê   ra  rI  rN  r%  r¬  r^  rÙ  Úclassmethodrp  rn  r‚  rj  rk  rl  rR  ré  rþ  rÕ  r  rb  Ú__classcell__©rD  s   @r^   r?  r?  ­	  s  ø† ñ
ð €OØÐØ˜)Ð$€L÷ò ð@ ô$ó ð$ð ô#ó ð#õ
õ
õ/òð ôó ðð> ñFó ðFð ô,ó ð,ð ô?ó ð?ð ñ2ó ð2ð ñ2ó ð2ð ñ1ó ð1ð ñó ðõõh&÷T9ó 9r`   r?  c                  óp   € ] tR tRtRtRtR R lt]R 4       t]R R l4       t	]R	 4       t
]R
 4       tRtR# )ÚDataIndexableColiÑ
  z+represent a data column that can be indexedTc               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   ÚDataIndexableCol.__annotate__Ö
  s   € ÷ Nñ N ñ Nr`   c                	óx   € \        \        V P                  4      P                  4      '       g   \	        R 4      hR# )ú-cannot have non-object label DataIndexableColN)r%   r.   rÑ  rÂ  r¼   rð   s   &r^   rö  ÚDataIndexableCol.validate_namesÖ
  s-   € Üœu T§[¡[Ó1×7Ñ7×8Ò8äÐLÓMÐMñ 9r`   c                	ó6   € \        4       P                  VR 7      # ))r‡  rt  ru  s   &&&r^   rn  Ú DataIndexableCol.get_atom_stringÛ
  s   € ä‹y×"Ñ"¨HÐ"Ó5Ð5r`   c               ó    € V ^8„  d   QhRRRR/# r…  r\   )r]   s   "r^   r_   rÁ  à
  s   € ÷ 1ñ 1¨ð 1°ñ 1r`   c                	ó0   € V P                  VR 7      ! 4       # )re  rˆ  r‰  s   &&&r^   rj  ÚDataIndexableCol.get_atom_dataß
  s   € à×#Ñ#¨Ð#Ô.Ó0Ð0r`   c                	ó2   € \        4       P                  4       # rb   r�  rŽ  s   &&r^   rk  Ú$DataIndexableCol.get_atom_datetime64ã
  ó   € ä‹y×!Ñ!Ó#Ð#r`   c                	ó2   € \        4       P                  4       # rb   r�  rŽ  s   &&r^   rl  Ú%DataIndexableCol.get_atom_timedelta64ç
  rÌ  r`   r\   N)r  r\  r]  r^  r_  rx  rö  r»  rn  rj  rk  rl  rb  r\   r`   r^   r¿  r¿  Ñ
  sa   † Ù5àÐõNð
 ñ6ó ð6ð ô1ó ð1ð ñ$ó ð$ð ñ$ó ô$r`   r¿  c                  ó   € ] tR tRtRtRtR# )ÚGenericDataIndexableColiì
  z(represent a generic pytables data columnr\   N)r  r\  r]  r^  r_  rb  r\   r`   r^   rÐ  rÐ  ì
  s   † Ý2r`   rÐ  c                  óî  € ] tR tRt$ RtR]R&   RtR]R&   R]R&   R	]R
&   R]R&   RtR]R&   R<R R llt]	R R l4       t
]	R R l4       t]	R 4       tR R ltR R ltR R lt]	R 4       t]	R 4       t]	R 4       t]	R  4       t]	R! R" l4       t]	R# R$ l4       t]	R% 4       tR& R' ltR( R) lt]	R* 4       t]	R+ R, l4       t]	R- 4       tR. R/ ltR=R1 R2 lltR3 R4 ltR>R5 R6 lltR7 R8 lt R?R9 R: llt!R;t"R0# )@ÚFixedið
  zÔ
represent an object in my store
facilitate read/write of various types of objects
this is an abstract base class

Parameters
----------
parent : HDFStore
group : Node
    The group node where the table resides.
r[   Úpandas_kindr|   Úformat_typeútype[DataFrame | Series]Úobj_typern   rÊ  r¬   rØ   Fr˜   r˜  c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )rW   rØ   r¬   rÐ   rL   rX   rY   r    r[   rZ   r¡   r\   )r]   s   "r^   r_   ÚFixed.__annotate__  s<   € ÷ ñ àðð ðð ð	ð
 ðð 
ñr`   c                	ó
  € \        V\        4      '       g   Q \        V4      4       h\        f   Q h\        V\        P                  4      '       g   Q \        V4      4       hWn        W n        \        V4      V n        W@n	        R # rb   )
rg   r¬   r  r„   rL   rØ   rÐ   re   rX   r    )ré   rØ   rÐ   rX   r    s   &&&&&r^   rê   ÚFixed.__init__  sg   € ô ˜&¤(×+Ò+Ð9¬T°&«\Ó9Ð+ÜÒ%Ð%Ð%Ü˜%¤§¡×1Ò1Ð>´4¸³;Ó>Ð1ØŒØŒ
Ü(¨Ó2ˆŒØŽr`   c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   rØ    s   € ÷ Vñ V ñ Vr`   c                	ó¦   € V P                   ^ ,          ^ 8*  ;'       d5    V P                   ^,          ^
8*  ;'       d    V P                   ^,          ^8  # ©rs  )Úversionrð   s   &r^   Úis_old_versionÚFixed.is_old_version  s@   € à�|‰|˜A� !Ñ#×UÐU¨¯©°Q­¸2Ñ(=×UÐUÀ$Ç,Á,ÈqÅ/ÐTUÑBUÐUr`   c               ó   € V ^8„  d   QhRR/# )rW   rZ   ztuple[int, int, int]r\   )r]   s   "r^   r_   rØ    s   € ÷ 
ñ 
Ð-ñ 
r`   c                ó^  € \        V P                  P                  RR4      p\        V\        4      '       dv   \
        ;QJ d#    . R VP                  R4       4       F  NK  	  5M! R VP                  R4       4       4      p\        V4      ^8X  d   . VO^ N5p\        V4      ^8X  g   Q hV# R# )zcompute and set our versionÚpandas_versionNc              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irb   )rn   )rÂ  rž  s   & r^   rÄ  Ú Fixed.version.<locals>.<genexpr>  s   é € ÐCÑ0B¨1¤ A§ Ó0Bùs   ‚Ú.)rs  rs  rs  )rï  rÐ   rð  rg   r[   rr   rR  rs   )ré   rÞ  Úversion_tups   &  r^   rÞ  ÚFixed.version  s•   € ô ˜$Ÿ*™*×-Ñ-Ð/?ÀÓFˆÜ�gœs×#Ò#ßœ%ÑC°·±¸cÔ0BÓCŸ%™%ÑC°·±¸cÔ0BÓCÓCˆKÜ�;Ó 1Ô$Ø/ Ð/¨QÑ/�Ü�{Ó# qÔ(Ð(Ð(ØÐàÐr`   c                	óD   € \        V P                  P                  R R4      # )rë  N)rï  rÐ   rð  rð   s   &r^   rë  ÚFixed.pandas_type$  s   € ä�t—z‘z×*Ñ*¨M¸4Ó@Ð@r`   c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   rØ  (  s   € ÷ 	 ñ 	 ˜#ñ 	 r`   c                ó"  € V P                  4        V P                  pVe`   \        V\        \        34      '       d1   RP                  V Uu. uF  p\        V4      NK  	  up4      pRV R2pV P                  R RV R2# V P                  # u upi )ú(return a pretty representation of myselfr–  Ú[r‹  ú12.12z	 (shape->Ú))rt  rR  rg   rq   rr   r™  rC   rë  )ré   rn  rž  Újshapes   &   r^   r%  ÚFixed.__repr__(  s†   € à�‰ÔØ�J‰JˆØŠ=Ü˜!œd¤E˜]×+Ò+ØŸ™¹AÓ">¹A°q¤<°¦?¹AÑ">Ó?�Ø˜�x˜q�M�Ø×&Ñ& uÐ-¨Y°q°c¸Ð;Ð;Ø×ÑÐùò #?s   ÁBc               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rØ  3  s   € ÷ 2ñ 2 ñ 2r`   c                óŠ   € \        V P                  4      V P                  n        \        \        4      V P                  n        R# )zset my pandas type & versionN)r[   rÓ  rÜ  rë  Ú_versionrã  rð   s   &r^   rE  ÚFixed.set_object_info3  s)   € ä!$ T×%5Ñ%5Ó!6ˆ�
‰
ÔÜ$'¬£Mˆ�
‰
Ö!r`   c               ó   € V ^8„  d   QhRR/# )rW   rZ   rÒ  r\   )r]   s   "r^   r_   rØ  8  s   € ÷ ñ �eñ r`   c                	ó2   € \         P                   ! V 4      pV# rb   r¥  )ré   Únew_selfs   & r^   r  Ú
Fixed.copy8  s   € Ü—9’9˜T“?ˆØˆr`   c                	ó   € V P                   # rb   )rr  rð   s   &r^   rR  ÚFixed.shape<  rû   r`   c                	ó.   € V P                   P                  # rb   ©rÐ   rÇ   rð   s   &r^   r™  ÚFixed.pathname@  rã  r`   c                	ó.   € V P                   P                  # rb   )rØ   rÚ   rð   s   &r^   rÚ   ÚFixed._handleD  s   € à�{‰{×"Ñ"Ð"r`   c                	ó.   € V P                   P                  # rb   )rØ   rç   rð   s   &r^   rç   ÚFixed._filtersH  s   € à�{‰{×#Ñ#Ð#r`   c               ó   € V ^8„  d   QhRR/# r  r\   )r]   s   "r^   r_   rØ  M  s   € ÷ &ñ &˜Cñ &r`   c                	ó.   € V P                   P                  # rb   )rØ   rä   rð   s   &r^   rä   ÚFixed._complevelL  s   € à�{‰{×%Ñ%Ð%r`   c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   rØ  Q  s   € ÷ 'ñ '˜Tñ 'r`   c                	ó.   € V P                   P                  # rb   )rØ   ræ   rð   s   &r^   ræ   ÚFixed._fletcher32P  s   € à�{‰{×&Ñ&Ð&r`   c                	ó.   € V P                   P                  # rb   )rÐ   rð  rð   s   &r^   rÜ  ÚFixed.attrsT  rÞ  r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rØ  X  ó   € ÷ (ñ (˜4ñ (r`   c                ó   € R# ©zset our object attributesNr\   rð   s   &r^   Ú	set_attrsÚFixed.set_attrsX  ó   ‚ r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rØ  [  r  r`   c                ó   € R# )zget our object attributesNr\   rð   s   &r^   Ú	get_attrsÚFixed.get_attrs[  r  r`   c                ó   € V P                   # )zreturn my storable©rÐ   rð   s   &r^   ÚstorableÚFixed.storable^  s   € ð �z‰zÐr`   c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   rØ  d  s   € ÷ ñ ˜4ñ r`   c                	ó   € R # rY  r\   rð   s   &r^   rD  ÚFixed.is_existsc  r7  r`   c                	ó0   € \        V P                  R R4      # )rr  N)rï  r  rð   s   &r^   rr  ÚFixed.nrowsg  s   € ä�t—}‘} g¨tÓ4Ð4r`   c               ó   € V ^8„  d   QhRR/# )rW   rZ   zLiteral[True] | Noner\   )r]   s   "r^   r_   rØ  k  s   € ÷ ñ Ð!5ñ r`   c                ó   € Vf   R# R# )z%validate against an existing storableNTr\   r«  s   &&r^   r¤  ÚFixed.validatek  s   € àŠ=ÙÙr`   Nc               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rØ  q  s   € ÷ :ñ :¨dñ :r`   c                ó   € R# )ú+are we trying to operate on an old version?Nr\   ©ré   rt   s   &&r^   Úvalidate_versionÚFixed.validate_versionq  r  r`   c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   rØ  t  s   € ÷ 	ñ 	˜Dñ 	r`   c                óJ   € V P                   pVf   R# V P                  4        R# )zZ
infer the axes of my storer
return a boolean indicating if we have a valid storer or not
FT)r  r  )ré   rn  s   & r^   rt  ÚFixed.infer_axest  s"   € ð
 �M‰MˆØŠ9ÙØ�‰ÔÙr`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   r°   r•   r±   rZ   zSeries | DataFramer\   )r]   s   "r^   r_   rØ    s*   € ÷ 	
ñ 	
ð ð		
ð
 ð	
ð 
ñ	
r`   c                	ó   € \        R 4      h)z>cannot read on an abstract storer: subclasses should implement©r¿   ©ré   rt   r²   r°   r±   s   &&&&&r^   rj  Ú
Fixed.read  s   € ô "ØLó
ð 	
r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rØ  Š  s   € ÷ 
ñ 
 dñ 
r`   c                	ó   € \        R 4      h)z?cannot write on an abstract storer: subclasses should implementr.  ©ré   rA  rË   s   &&,r^   rF  ÚFixed.writeŠ  s   € Ü!ØMó
ð 	
r`   c               ó$   € V ^8„  d   QhRRRRRR/# ©rW   r°   r•   r±   rZ   r\   )r]   s   "r^   r_   rØ  �  s$   € ÷ ?ñ ?Ø!+ð?Ø:Dð?à	ñ?r`   c                ó¤   € \         P                  ! WV4      '       d*   V P                  P                  V P                  RR7       R# \        R4      h)z[
support fully deleting the node in its entirety (only) - where
specification must be None
Tr«  Nz#cannot delete on an abstract storer)r°  r±  rÚ   rM  rÐ   rÃ   )ré   rt   r°   r±   s   &&&&r^   r²  ÚFixed.delete�  s?   € ô �<Š<˜ d×+Ò+Ø�L‰L×$Ñ$ T§Z¡Z¸4Ð$Ô@ÙäÐ=Ó>Ð>r`   )rX   r    rÐ   rØ   )rU   r†   rb   ©NNNNrZ  )#r  r\  r]  r^  r_  r`  rÔ  r˜  rê   ra  rß  rÞ  rë  r%  rE  r  rR  r™  rÚ   rç   rä   ræ   rÜ  r  r  r  rD  rr  r¤  r'  rt  rj  rF  r²  rb  r\   r`   r^   rÒ  rÒ  ð
  s}  ‡ ñ
ð ÓØ€K�ÓØ&Ó&Ø
ƒIØÓØ€HˆdÓ÷ð ôVó ðVð ô
ó ð
ð ñAó ðAõ	 õ2õ
ð ñó ðð ñ&ó ð&ð ñ#ó ð#ð ñ$ó ð$ð ô&ó ð&ð ô'ó ð'ð ñ#ó ð#õ(õ(ð ñó ðð ôó ðð ñ5ó ð5õ÷:õ	÷	
õ
÷
?ó ?r`   rÒ  c                  ó\  € ] tR tRt$ Rt]R]R/t]P                  4        U Uu/ uF  w  rWbK	  	  upp t	. t
R]R&   R R ltR	 tR
 tR R lt]R R l4       tR R ltR R ltR R ltR'R R lltR'R R lltR R ltR R ltR'R R lltR'R  R! lltR" R# ltR(R$ R% lltR&tR# u upp i ))ÚGenericFixedi�  za generified fixed versionÚdatetimer|  r5  Ú
attributesc               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   ÚGenericFixed.__annotate__¥  s   € ÷ 1ñ 1 cñ 1r`   c                	ó:   € V P                   P                  VR 4      # )Ú )Ú_index_type_maprÿ   )ré   r;  s   &&r^   Ú_class_to_aliasÚGenericFixed._class_to_alias¥  s   € Ø×#Ñ#×'Ñ'¨¨RÓ0Ð0r`   c                	ór   € \        V\        4      '       d   V# V P                  P                  V\        4      # rb   )rg   r  Ú_reverse_index_maprÿ   r.   )ré   Úaliass   &&r^   Ú_alias_to_classÚGenericFixed._alias_to_class¨  s-   € Ü�eœT×"Ò"àˆLØ×&Ñ&×*Ñ*¨5´%Ó8Ð8r`   c                	ó"  € V P                  \        VR R4      4      p/ pV\        8X  d	   RR lpTpMV\        8X  d	   RR lpTpMTpRVR&   RV9   d   VR,          VR&   V\        J d   \
        pRV9   d   VR,          VR&   V\        J g   Q hWS3# )	Úindex_classrA  c                óØ   € \         P                  ! V P                  V P                  VR 7      p\        P                  ! VRR7      pVe!   VP                  R4      P                  V4      pV# ))rÂ  r  Nrh   rÇ  )r8   Ú_simple_newrÑ  rÂ  r-   rÏ  rÐ  )rÑ  r  r€  ÚdtaÚresults   &&&  r^   r{   Ú*GenericFixed._get_index_factory.<locals>.f¶  sZ   € ä#×/Ò/Ø—M‘M¨¯©¸Dô�ô '×2Ò2°3¸TÔB�Ø’>Ø#×/Ñ/°Ó6×AÑAÀ"ÓE�FØ�r`   c                óv   € \        V4      p\        P                  ! WR 7      p\        P                  ! VRR7      # )r¢  Nrh   )r*   r9   rM  r0   )rÑ  r  r€  rÂ  Úparrs   &&&  r^   r{   rP  Ã  s/   € Ü# DÓ)�Ü"×.Ò.¨vÔC�Ü"×.Ò.¨t¸$Ô?Ð?r`   Fr  r  r€  r[  )rH  rï  r-   r0   r.   r4   )ré   rÜ  rK  rË   r{   rÒ  s   &&    r^   Ú_get_index_factoryÚGenericFixed._get_index_factory®  s¤   € Ø×*Ñ*¬7°5¸-ÈÓ+LÓMˆð ˆØœ-Ô'ôð ‰GØœKÔ'ô@ð
 ‰Gà!ˆGØ"ˆF�6‰Nà�UŒ?Ø" 6�]ˆF�6‰NØœeÓ#ä(�à�5Œ=Ø  �;ˆF�4‰LØ¤-Ó/Ð/Ð/àˆÐr`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r?  Ù  s   € ÷ ñ ¨tñ r`   c                óB   € Ve   \        R4      hVe   \        R4      hR# )z5
raise if any keywords are passed which are not-None
Nzqcannot pass a column specification when reading a Fixed format store. this store must be selected in its entiretyzucannot pass a where specification when reading from a Fixed format store. this store must be selected in its entirety)rÃ   )ré   r²   rt   s   &&&r^   Úvalidate_readÚGenericFixed.validate_readÙ  s=   € ð ÒÜðTóð ð ÒÜðYóð ñ r`   c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   r?  é  r(  r`   c                	ó   € R # )Tr\   rð   s   &r^   rD  ÚGenericFixed.is_existsè  s   € ár`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r?  ì  s   € ÷ (ñ (˜4ñ (r`   c                ór   € V P                   V P                  n         V P                  V P                  n        R# r  )rX   rÜ  r    rð   s   &r^   r  ÚGenericFixed.set_attrsì  s"   € à"Ÿm™mˆ�
‰
ÔØ ŸK™Kˆ�
‰
Ör`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r?  ñ  s   € ÷ ;ñ ;˜4ñ ;r`   c           
     óð   € \        \        V P                  RR4      4      V n        \        V P                  RR4      V n        V P
                   F$  p\        W\        V P                  VR4      4       K&  	  R# )úretrieve our attributesrX   Nr    r†   )re   rï  rÜ  rX   r    r=  r  )ré   r<  s   & r^   r  ÚGenericFixed.get_attrsñ  sT   € ä(¬°·±¸ZÈÓ)NÓOˆŒÜ˜dŸj™j¨(°HÓ=ˆŒØ—”ˆAÜ�DœW T§Z¡Z°°DÓ9Ö:ó !r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r?  ø  s   € ÷ ñ  dñ r`   c                	ó&   € V P                  4        R # rb   )r  r3  s   &&,r^   rF  ÚGenericFixed.writeø  s   € Ø�‰Ör`   Nc               ó$   € V ^8„  d   QhRRRRRR/# rz  r\   )r]   s   "r^   r_   r?  û  s!   € ÷ *ñ *˜cð *¨*ð *À:ñ *r`   c                óÀ  € ^ RI p\        V P                  V4      pVP                  p\        VRR4      p\	        WTP
                  4      '       d*   V^ ,          W# p\        VRR4      p	V	e   \        W‰R7      pMÒ\        VRR4      p	\        VRR4      p
V
e   \        P                  ! W©R7      pMWRV pV	'       d;   V	P                  R4      '       d$   V	R8X  d   Rp	\        VR	R4      p\        W‹V	4      pMVV	'       dO   V	P                  R
4      '       d8   V	R
8X  d   \        P                  ! VRR7      pM\        P                  ! W‰R7      pV'       d   VP                  # V# )z2read an array for the specified node (off of groupNÚ
transposedFÚ
value_typer¢  rR  rž  rŸ  r€  r   r¡  )r‡   rï  rÐ   rð  rg   ÚVLArrayÚpd_arrayrÈ  r@  rý  r©  rª  ÚT)ré   r�   r°   r±   r‡   r  rÜ  rh  ÚretrÂ  rR  r€  s   &&&&        r^   Ú
read_arrayÚGenericFixed.read_arrayû  s(  € ãä�t—z‘z 3Ó'ˆØ—‘ˆä˜U L°%Ó8ˆ
ä�dŸN™N×+Ò+Ø�q•'˜%Ð%ˆCÜ˜E <°Ó6ˆEØÒ Ü˜sÔ0�øä˜E <°Ó6ˆEÜ˜E 7¨DÓ1ˆEàÒ ä—h’h˜uÔ2‘à Ð&�ç˜×)Ñ)¨,×7Ò7à˜LÔ(Ø,�EÜ˜U D¨$Ó/�Ü˜c uÓ-‘ç˜5×+Ñ+¨M×:Ò:Ø˜MÔ)ô Ÿ*š* S°Ô9‘CäŸ*š* SÔ6�CçØ—5‘5ˆLàˆJr`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   r�   r[   r°   r•   r±   rZ   r.   r\   )r]   s   "r^   r_   r?  '  s2   € ÷ Fñ FØðFØ)ðFØ8BðFà	ñFr`   c                	óè   € \        V P                  V R 24      pVR8X  d   V P                  WVR7      # VR8X  d,   \        V P                  V4      pV P	                  WRVR7      pV# \        RV 24      h)Ú_varietyÚmulti©r°   r±   Úregularzunrecognized index variety: )rï  rÜ  Úread_multi_indexrÐ   Úread_index_noderÃ   )ré   r�   r°   r±   Úvarietyr  r™   s   &&&&   r^   Ú
read_indexÚGenericFixed.read_index'  s~   € ô ˜$Ÿ*™*¨¨¨XÐ&6Ó7ˆà�gÔØ×(Ñ(¨ÀÐ(ÓEÐEØ˜	Ô!Ü˜4Ÿ:™: sÓ+ˆDØ×(Ñ(¨ÀÐ(ÓFˆEØˆLäÐ:¸7¸)ÐDÓEÐEr`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   r�   r[   r™   r.   rZ   r¡   r\   )r]   s   "r^   r_   r?  5  s!   € ÷ 5ñ 5˜sð 5¨5ð 5°Tñ 5r`   c                	ój  € \        V\        4      '       d.   \        V P                  V R 2R4       V P	                  W4       R# \        V P                  V R 2R4       \        RW P                  V P                  4      pV P                  WP                  4       \        V P                  V4      pVP                  VP                  n        VP                  VP                  n        \        V\        \         34      '       d*   V P#                  \%        V4      4      VP                  n        \        V\        \         \(        34      '       d   VP*                  VP                  n        \        V\        4      '       d7   VP,                  e'   \/        VP,                  4      VP                  n        R# R# R# )rr  rs  ru  r™   N)rg   r/   r  rÜ  Úwrite_multi_indexÚ_convert_indexrX   r    Úwrite_arrayrÑ  rï  rÐ   rã  rð  ri   r-   r0   rC  r  rK  r4   r  r€  Ú_get_tz)ré   r�   r™   rµ  r  s   &&&  r^   Úwrite_indexÚGenericFixed.write_index5  s*  € Ü�eœZ×(Ò(Ü�D—J‘J 3 % xÐ 0°'Ô:Ø×"Ñ" 3Ö.ä�D—J‘J 3 % xÐ 0°)Ô<Ü& w°·}±}ÀdÇkÁkÓRˆIà×Ñ˜S×"2Ñ"2Ô3ä˜4Ÿ:™: sÓ+ˆDØ!*§¡ˆD�M‰MÔØ!&§¡ˆD�M‰MÔä˜%¤-´Ð!=×>Ò>Ø,0×,@Ñ,@ÄÀeÃÓ,M�—‘Ô)ä˜%¤-´¼nÐ!M×NÒNØ%*§Z¡Z�—‘Ô"ä˜%¤×/Ò/°E·H±HÒ4HÜ#*¨5¯8©8Ó#4�—‘Ö ñ 5IÑ/r`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   r�   r[   r™   r/   rZ   r¡   r\   )r]   s   "r^   r_   r?  L  s!   € ÷ 5ñ 5 Sð 5°ð 5Àñ 5r`   c           	     	óÞ  € \        V P                  V R 2VP                  4       \        \	        VP
                  VP                  VP                  RR7      4       EF  w  pw  rEp\        VP                  \        4      '       d,   \        VP                  \        4      '       g   \        R4      hV RV 2p\        WtV P                  V P                  4      pV P!                  WxP"                  4       \%        V P&                  V4      p	VP(                  V	P*                  n        WiP*                  n        \        V	P*                  V RV 2V4       V RV 2p
V P!                  W¥4       EK  	  R# )Ú_nlevelsTrŠ  z=Saving a MultiIndex with an extension dtype is not supported.Ú_levelÚ_nameÚ_labelN)r  rÜ  r1  Ú	enumerater—  Úlevelsri  Únamesrg   rÂ  r)   r3   r¿   r~  rX   r    r  rÑ  rï  rÐ   rã  rð  ri   )ré   r�   r™   ÚiÚlevÚlevel_codesri   Ú	level_keyÚ
conv_levelr  Ú	label_keys   &&&        r^   r}  ÚGenericFixed.write_multi_indexL  s-  € Ü�—
‘
˜s˜e 8Ð,¨e¯m©mÔ<ä+4Ü�—‘˜eŸk™k¨5¯;©;¸tÔD÷,
Ñ'ˆAÑ'� $ô ˜#Ÿ)™)¤^×4Ò4¼ZØ—	‘	œ;÷>ò >ô *ØSóð ð ˜%˜v a SÐ)ˆIÜ'¨	¸¿¹ÀtÇ{Á{ÓSˆJØ×Ñ˜Y×(9Ñ(9Ô:Ü˜4Ÿ:™: yÓ1ˆDØ!+§¡ˆD�M‰MÔØ!%�M‰MÔô �D—M‘M c U¨%°¨vÐ#6¸Ô=ð ˜%˜v a SÐ)ˆIØ×Ñ˜Y×4ó-,
r`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   r�   r[   r°   r•   r±   rZ   r/   r\   )r]   s   "r^   r_   r?  g  s,   € ÷ 
ñ 
Øð
Ø)ð
Ø8Bð
à	ñ
r`   c                	óŽ  € \        V P                  V R 24      p. p. p. p\        V4       FŠ  pV RV 2p	\        V P                  V	4      p
V P	                  W¢VR7      pVP                  V4       VP                  VP                  4       V RV 2pV P                  WÂVR7      pVP                  V4       KŒ  	  \        WVVRR7      # )r…  r†  rt  rˆ  T)rŠ  ri  r‹  r�  )	rï  rÜ  rÉ  rÐ   rw  r—   ri   rn  r/   )ré   r�   r°   r±   r1  rŠ  ri  r‹  rŒ  r�  r  r�  r‘  rŽ  s   &&&&          r^   rv  ÚGenericFixed.read_multi_indexg  sÍ   € ô ˜$Ÿ*™*¨¨¨XÐ&6Ó7ˆàˆØˆØ "ˆÜ�w–ˆAØ˜%˜v a SÐ)ˆIÜ˜4Ÿ:™: yÓ1ˆDØ×&Ñ& t¸tÐ&ÓDˆCØ�M‰M˜#ÔØ�L‰L˜Ÿ™Ô"à˜%˜v a SÐ)ˆIØŸ/™/¨)Àt˜/ÓLˆKØ�L‰L˜Ö%ñ  ô Ø¨eÀdô
ð 	
r`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   r  rL   r°   r•   r±   rZ   r.   r\   )r]   s   "r^   r_   r?  ~  s,   € ÷ 4ñ 4Øð4Ø!+ð4Ø:Dð4à	ñ4r`   c           
     	óþ  € WV pR VP                   9   dp   \        P                  ! VP                   P                  4      ^ 8X  dA   \        P                  ! VP                   P                  VP                   P
                  R7      pVP                   P                  pRpRVP                   9   d    \        VP                   P                  4      pVP                   pV P                  V4      w  r‰VR
9   d1   V! \        WEV P                  V P                  R7      3R\        /V	B p
M* V! \        WEV P                  V P                  R7      3/ V	B p
Wjn        V
#   \         d�   pT P                  R8X  d†   \        4       '       dv   \!        T4      P#                  R4      '       dV   \$        '       dJ   T! \        YET P                  T P                  R7      3R\'        R\        P(                  R	7      /T	B p
 Rp?L©h Rp?ii ; i)rR  r¢  Nri   r(  rÂ  rÀ  rÁ  rÃ  rÄ  )r   r¡  )rð  rÈ  ÚprodrR  r@  ri  rã  rj   ri   rS  Ú_unconvert_indexrX   r    r¡  rÍ  r   r[   rS  r   r3   rÎ  )ré   r  r°   r±   r  rã  ri   rÜ  rÒ  rË   r™   r³  s   &&&&        r^   rw  ÚGenericFixed.read_index_node~  sª  € ð ˜$Ðˆð �d—m‘mÔ#¬¯ª°·±×0CÑ0CÓ(DÈÔ(IÜ—8’8˜DŸM™M×/Ñ/°t·}±}×7OÑ7OÔPˆDØ�}‰}×!Ñ!ˆØˆà�T—]‘]Ô"Ü˜tŸ}™}×1Ñ1Ó2ˆDà—‘ˆØ×1Ñ1°%Ó8‰ˆàÐ%Ô%ÙÜ Ø¨¯©¸t¿{¹{ôñô ð	ð
 ñ‰EðÙÜ$Ø¨T¯]©]À4Ç;Á;ôñð ñ	�ð. Œ
àˆøô' &ô à—K‘K ?Ô2Ü*×,Ò,Ü˜C›×)Ñ)Ð*B×CÒCß#›á#Ü(Ø °·±ÀtÇ{Á{ôñô *°(ÄRÇVÁVÔLð	ð
 !ñ•Eð ûðús&   Ä$)E ÅG<Å AG7Æ-AG7Ç6G7Ç7G<c               ó$   € V ^8„  d   QhRRRRRR/# )rW   r�   r[   r‘   rN   rZ   r¡   r\   )r]   s   "r^   r_   r?  ´  s!   € ÷ *ñ * Sð *°ð *¸tñ *r`   c                óJ  € \         P                  ! RVP                  ,          4      pV P                  P	                  V P
                  W4       \        V P
                  V4      p\        VP                  4      VP                  n
        VP                  VP                  n        R# )zwrite a 0-len arrayN)r·   )rÈ  r@  rÊ  rÚ   Úcreate_arrayrÐ   rï  r[   rÂ  rð  ri  rR  )ré   r�   r‘   Úarrr  s   &&&  r^   Úwrite_array_emptyÚGenericFixed.write_array_empty´  sh   € ô �hŠh�t˜eŸj™jÕ(Ó)ˆØ�‰×!Ñ! $§*¡*¨cÔ7Ü�t—z‘z 3Ó'ˆÜ#& u§{¡{Ó#3ˆ�‰Ô Ø#Ÿk™kˆ�‰Ör`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rW   r�   r[   rA  rM   rH  zIndex | NonerZ   r¡   r\   )r]   s   "r^   r_   r?  ½  s8   € ÷ aBñ aBØðaBØ)ðaBØ2>ðaBà	ñaBr`   c                	óÆ
  € \        VR R7      pWP                  9   d'   V P                  P                  V P                  V4       VP                  ^ 8H  pRp\        VP                  \        4      '       d   \        R4      hV'       g!   \        VR4      '       d   VP                  pR p\        V\        4      '       d¥   V P                  P                  V P                  V\        4       P                  4       V P                  R7      pVP!                  VP#                  4       4       \%        V P                  V4      p\'        VP                  4      VP(                  n        EMÆRp	V P                  eN   \-        \.        4      ;_uu_ 4        \        4       P0                  P3                  VP                  4      p	RRR4       V	e_   V'       gD   V P                  P5                  V P                  WVP6                  V P                  R7      p
WJR&   EMV P9                  W4       EMVP                  P:                  \<        P>                  8X  d¿   \@        PB                  ! VRR7      pV'       d   MMVR	8X  d   ME\E        R
4      '       d5   \F        W±V3,          p\H        PJ                  ! V\L        \O        4       R7       V P                  P                  V P                  V\        4       P                  4       4      pVP!                  V4       EM \@        PP                  ! VP                  R4      '       dp   V P                  PS                  V P                  WPU                  R4      4       \'        VP                  4      \%        V P                  V4      P(                  n        EMŠ\        VP                  \V        4      '       d–   V P                  PS                  V P                  VVPX                  4       \%        V P                  V4      p\[        VP\                  4      VP(                  n.        RVP                  P^                   R2VP(                  n        MÕ\@        PP                  ! VP                  R4      '       do   V P                  PS                  V P                  WPU                  R4      4       \'        VP                  4      \%        V P                  V4      P(                  n        M@V'       d   V P9                  W4       M&V P                  PS                  V P                  W4       V\%        V P                  V4      P(                  n0        R#   + '       g   i     EL¡; i)T)Úextract_numpyFz^Cannot store a category dtype in an HDF5 dataset that uses format="fixed". Use format="table".rl  )rà   NºNNN©Úskipnarð  Úperformance_warningsr  r¹  rº  údatetime64[r‹  rf  )1r?   rÐ   rÚ   rM  rh  rg   rÂ  r'   r¿   r´  rl  r;   Úcreate_vlarrayrŒ   Ú
ObjectAtomrç   r—   Úto_numpyrï  r[   rð  ri  r   r¼   ÚAtomÚ
from_dtypeÚcreate_carrayrR  rŸ  r  rÈ  Úobject_r   Úinfer_dtyper   rz   r  r  r   r    rÌ  r�  Úviewr(   Úasi8r€  r€  Úunitrh  )ré   r�   rA  rH  r‘   Úempty_arrayrh  Úvlarrr  ro  ÚcaÚinferred_typer  s   &&&&         r^   r  ÚGenericFixed.write_array½  s´  € ô ˜c°Ô6ˆà—*‘*ÔØ�L‰L×$Ñ$ T§Z¡Z°Ô5ð —j‘j A‘oˆØˆ
ä�e—k‘kÔ#3×4Ò4Ü%ð/óð ÷ Ü�u˜c×"Ò"àŸ™�Ø!�
ä�eœ_×-Ò-ð —L‘L×/Ñ/Ø—
‘
˜C¤£×!5Ñ!5Ó!7ÀÇÁð 0ó ˆEð �L‰L˜Ÿ™Ó)Ô*Ü˜4Ÿ:™: sÓ+ˆDÜ'*¨5¯;©;Ó'7ˆD�M‰MÖ$ð ˆDØ�}‰}Ò(Üœj×)Õ)ä"›9Ÿ>™>×4Ñ4°U·[±[ÓA�D÷ *ð Ò÷
 #ØŸ™×3Ñ3ØŸ
™
 C¨u¯{©{ÀDÇMÁMð 4ó �Bð "�q“Eð ×*Ñ*¨3Ö6à—‘×!Ñ!¤R§Z¡ZÔ/ô !$§¢°¸eÔ D�ßØØ" hÔ.ØÜÐ 6×7Ò7Ü(¨MÀÐ+FÕF�BÜ—M’M "Ô&8ÔEUÓEWÕXàŸ™×3Ñ3Ø—J‘J ¤W£Y×%9Ñ%9Ó%;ó�ð —‘˜UÖ#ä—’ §¡¨c×2Ò2Ø—‘×)Ñ)¨$¯*©*°c¿:¹:ÀdÓ;KÔLÜ?BÀ5Ç;Á;Ó?O”˜Ÿ
™
 CÓ(×1Ñ1Ö<Ü˜EŸK™K¬×9Ò9ð
 —‘×)Ñ)Ø—J‘JØØ—J‘Jôô ˜tŸz™z¨3Ó/�ä#*¨5¯8©8Ó#4�—‘Ô Ø-8¸¿¹×9IÑ9IÐ8JÈ!Ð+L�—‘Õ(Ü—’ §¡¨c×2Ò2Ø—‘×)Ñ)¨$¯*©*°c¿:¹:ÀdÓ;KÔLÜ?BÀ5Ç;Á;Ó?O”˜Ÿ
™
 CÓ(×1Ñ1Õ<ßØ×&Ñ& sÕ2à—‘×)Ñ)¨$¯*©*°cÔAà7AŒ�—
‘
˜CÓ ×)Ñ)Ö4÷{ *×)Ð)ús   Æ	.UÕU 	r(  r[  rb   )r  r\  r]  r^  r_  r-   r0   rB  rH  rF  r=  r`  rC  rH  rS  rW  ra  rD  r  r  rF  rn  ry  r�  r}  rv  rw  rŸ  r  rb  )r�  r×  s   00r^   r;  r;  �  s´   ‡ Ù$à$ j°+¸xÐH€OØ+:×+@Ñ+@Ô+BÔCÑ+B¡4 1˜!š$Ñ+BÒCÐØ€J�	Óõ1ò9ò)õVð ôó ðõ(õ
;õ÷*÷XFõ5õ.5÷6
÷.4õl*÷aBó aBùóy Ds   £B(r;  c                  ój   a € ] tR tRt$ RtR.tR]R&   ]R R l4       tRR R llt	R	 V 3R
 llt
RtV ;t# )r/  i!  r$  ri   rE   c               ó   € V ^8„  d   QhRR/# )rW   rZ   ztuple[int] | Noner\   )r]   s   "r^   r_   ÚSeriesFixed.__annotate__(  s   € ÷ ñ Ð(ñ r`   c                	ót   €  \        V P                  P                  4      3#   \        \        3 d     R # i ; irb   )rs   rÐ   rÑ  rÃ   rˆ   rð   s   &r^   rR  ÚSeriesFixed.shape'  s6   € ð	Ü˜Ÿ
™
×)Ñ)Ó*Ð,Ð,øÜœ>Ð*ô 	Úð	ús   ‚" ¢7¶7c               ó$   € V ^8„  d   QhRRRRRR/# ©rW   r°   r•   r±   rZ   r2   r\   )r]   s   "r^   r_   r»  .  s*   € ÷ ñ ð ð	ð
 ðð 
ñr`   c                	óÚ  € V P                  W!4       V P                  R W4R7      pV P                  RW4R7      p \        WeV P                  RR7      pV#   \
         d�   pT P                  R8X  dv   \        4       '       df   \        T4      P                  R4      '       dF   \        '       d:   \        TTT P                  R\        R\        P                  R7      R	7      p R
p?T# h R
p?ii ; i)r™   rt  rÑ  F)r™   ri   r  rÀ  rÁ  rÃ  rÄ  )r™   ri   r  rÂ  N)rW  ry  rn  r2   ri   rÍ  r    r   r[   rS  r   r3   rÈ  rÎ  )	ré   rt   r²   r°   r±   r™   rÑ  rO  r³  s	   &&&&&    r^   rj  ÚSeriesFixed.read.  sÊ   € ð 	×Ñ˜7Ô*Ø—‘ ¨u�Ó@ˆØ—‘ °�ÓBˆð	Ü˜F°d·i±iÀeÔLˆFð" ˆøô! "ô 	à—‘˜Ô.Ü&×(Ò(Ü˜“H×%Ñ%Ð&>×?Ò?ß“KäØØØŸ™ØÜ%¨hÄÇÁÔHô”ð ˆð ûð	ús$   ¹A ÁC*ÁAC%Â+3C%Ã$C%Ã%C*c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r»  L  s   € ÷ #ñ # dñ #r`   c                	ó¼   <€ \         SV `  ! V3/ VB  V P                  R VP                  4       V P	                  RV4       VP
                  V P                  n        R# )r™   rÑ  N)rC  rF  r�  r™   r  ri   rÜ  )ré   rA  rË   rD  s   &&,€r^   rF  ÚSeriesFixed.writeL  sG   ø€ Ü‰Š�cÑ$˜VÒ$Ø×Ñ˜ #§)¡)Ô,Ø×Ñ˜ 3Ô'ØŸ(™(ˆ�
‰
Žr`   r\   r9  )r  r\  r]  r^  rÓ  r=  r`  ra  rR  rj  rF  rb  r¼  r½  s   @r^   r/  r/  !  s5   ø‡ Ø€KØ�€Jà
ƒNàôó ð÷÷<#ö #r`   r/  c                  óh   a € ] tR tRt$ RR.tR]R&   ]R R l4       tRR R lltR	 V 3R
 llt	Rt
V ;t# )ÚBlockManagerFixediS  rÊ  Únblocksrn   c               ó   € V ^8„  d   QhRR/# )rW   rZ   zlist[int] | Noner\   )r]   s   "r^   r_   ÚBlockManagerFixed.__annotate__Y  s   € ÷ ñ Ð'ñ r`   c                	ó˜  €  V P                   p^ p\        V P                  4       F?  p\        V P                  RV R24      p\        VRR4      pVf   K0  W%^ ,          ,          pKA  	  V P                  P
                  p\        VRR4      pVe   \        V^ V^,
           4      pM. pVP                  V4       V#   \         d     R# i ; i)rs  ÚblockÚ_itemsrR  N)	rÊ  rÉ  rÇ  rï  rÐ   Úblock0_valuesrq   r—   rˆ   )ré   rÊ  rH  rŒ  r  rR  s   &     r^   rR  ÚBlockManagerFixed.shapeX  sÅ   € ð	Ø—9‘9ˆDð ˆEÜ˜4Ÿ<™<Ö(�Ü˜tŸz™z¨U°1°#°VÐ+<Ó=�Ü  g¨tÓ4�ØÔ$Ø 1�XÕ%’Eñ	 )ð —:‘:×+Ñ+ˆDÜ˜D '¨4Ó0ˆEØÒ Ü˜U 1¨¨q­Ð2Ó3‘à�à�L‰L˜ÔàˆLøÜô 	Úð	ús   ‚AB: ÁA$B: Â:C	ÃC	c               ó$   € V ^8„  d   QhRRRRRR/# ©rW   r°   r•   r±   rZ   r,   r\   )r]   s   "r^   r_   rÉ  s  s*   € ÷ &9ñ &9ð ð	&9ð
 ð&9ð 
ñ&9r`   c                	óÄ  € V P                  W!4       V P                  4       P                  ^ 4      p. p\        V P                  4       F7  pWu8X  d   W43MRw  r‰V P                  RV 2W‰R7      p
VP                  V
4       K9  	  V^ ,          p. p\        V P                  4       Fã  pV P                  RV R24      pV P                  RV R2XX	R7      pW»P                  V4      ,          p\        VP                  W&^,          RR7      p\        4       '       d]   \        V\        P                  4      '       d=   \!        VRR	7      '       d*   VP#                  \%        \        P&                  R
7      4      pVP                  V4       Kå  	  \)        V4      ^ 8”  d.   \+        V^R7      P-                  4       pVP/                  VR7      # \        V^ ,          V^,          R7      # )rs  rŽ  rt  rË  rÌ  r²  F©r²   r™   r  Tr¥  )rÆ  rÆ  rB  ©r²   r™   r[  )rW  rÖ  Ú_get_block_manager_axisrÉ  rÊ  ry  r—   rÇ  rn  rÏ  r,   rl  r   rg   rÈ  rÉ  r   r°  r3   rÎ  rs   r5   r  rÔ  )ré   rt   r²   r°   r±   Úselect_axisr¸  rŒ  rk  rl  ÚaxrH  ÚdfsÚ	blk_itemsrÑ  ÚdfÚouts   &&&&&            r^   rj  ÚBlockManagerFixed.reads  s„  € ð 	×Ñ˜7Ô*Ø—m‘m“o×=Ñ=¸aÓ@ˆàˆÜ�t—y‘yÖ!ˆAØ-.Ô-=˜U™MÀ<‰MˆFØ—‘ 4¨ s °6�ÓFˆBØ�K‰K˜ŽOñ "ð
 �Q•ˆØˆä�t—|‘|Ö$ˆAØŸ™¨%°¨s°&Ð(9Ó:ˆIØ—_‘_ u¨Q¨C¨wÐ%7¸vÈE�_ÓRˆFà×-Ñ-¨iÓ8Õ9ˆGÜ˜6Ÿ8™8¨WÀ½GÈ%ÔPˆBä"×$Ò$Ü˜v¤r§z¡z×2Ò2Ü# F°4×8Ó8à—Y‘Yœ{´B·F±FÔ;Ó<�Ø�J‰J�rŽNñ %ô ˆs‹8�aŒ<Ü˜ 1Ô%×*Ñ*Ó,ˆCØ—;‘; u�;Ó-Ð-ä  a¥°°QµÔ8Ð8r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rÉ  ›  s   € ÷ ;ñ ; dñ ;r`   c                	ó°  <€ \         SV `  ! V3/ VB  VP                  pVP                  4       '       g   VP	                  4       pVP
                  V P                  n        \        VP                  4       F>  w  rEV^ 8X  d   VP                  '       g   \        R4      hV P                  RV 2V4       K@  	  \        VP                  4      V P                  n        \        VP                  4       Fb  w  rFVP                  P!                  VP"                  4      pV P%                  RV R2VP&                  VR7       V P                  RV R2V4       Kd  	  R# )rs  z/Columns index has to be unique for fixed formatrŽ  rË  r²  )rH  rÌ  N)rC  rF  Ú_mgrÚis_consolidatedÚconsolidaterÊ  rÜ  r‰  r¸  Ú	is_uniquer¼   r�  rs   ÚblocksrÇ  rH  rÐ  Úmgr_locsr  rÑ  )	ré   rA  rË   r  rŒ  rÖ  ÚblkrØ  rD  s	   &&,     €r^   rF  ÚBlockManagerFixed.write›  s  ø€ Ü‰Š�cÑ$˜VÒ$à�x‰xˆØ×#Ñ#×%Ò%Ø×#Ñ#Ó%ˆDàŸ)™)ˆ�
‰
ŒÜ˜tŸy™yÖ)‰EˆAØ�AŒv˜rŸ|Ÿ|˜|Ü Ð!RÓSÐSØ×Ñ˜t A 3˜Z¨Ö,ñ *ô ! §¡Ó-ˆ�
‰
ÔÜ §¡Ö,‰FˆAàŸ
™
Ÿ™¨¯©Ó5ˆIØ×Ñ˜u Q C wÐ/°·±À9ÐÔMØ×Ñ˜u Q C vÐ.°	Ö:ó	 -r`   r\   r9  )r  r\  r]  r^  r=  r`  ra  rR  rj  rF  rb  r¼  r½  s   @r^   rÆ  rÆ  S  s4   ø‡ Ø˜)Ð$€JàƒLàôó ð÷4&9÷P;ö ;r`   rÆ  c                  ó   € ] tR tRtRt]tRtR# )r0  i±  r%  r\   N)r  r\  r]  r^  rÓ  r,   rÖ  rb  r\   r`   r^   r0  r0  ±  s   † Ø€KØ„Hr`   r0  c                  óÀ  a € ] tR tRt$ RtRtRtR]R&   R]R&   ^tR]R	&   R
t	R]R&   RUR V 3R lllt
]R R l4       tR R ltR R ltR R lt]R R l4       tR R lt]R R l4       t]R R l4       t]R 4       t]R  4       t]R! 4       t]R" 4       t]R# R$ l4       t]R% R& l4       t]R' R( l4       t]R) R* l4       tR+ R, ltR- R. ltR/ R0 ltR1 R2 ltR3 R4 lt R5 R6 lt!R7 R8 lt"R9 R: lt#RVR; R< llt$R= R> lt%]&R? 4       t'RWR@ RA llt(RXRB RC llt)]*RD RE l4       t+RF RG lt,RYRH RI llt-].RJ RK l4       t/RVRL RM llt0RN RO lt1RWRP RQ llt2RWRR RS llt3RTt4V ;t5# )Zr9  i¶  a  
represent a table:
    facilitate read/write of various types of tables

Attrs in Table Node
-------------------
These are attributes that are store in the main table node, they are
necessary to recreate these tables when read back in.

index_axes    : a list of tuples of the (original indexing axis and
    index column)
non_index_axes: a list of tuples of the (original index axis and
    columns on a non-indexing axis)
values_axes   : a list of the columns which comprise the data of this
    table
data_columns  : a list of the columns that we are allowing indexing
    (these become single columns in values_axes)
nan_rep       : the string to use for nan representations for string
    objects
levels        : the names of levels
metadata      : the names of the metadata columns
Ú
wide_tabler~   r[   rÔ  r!  zint | list[Hashable]rŠ  Trq   r‚  c               ó@   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRR/
# )rW   rØ   r¬   rÐ   rL   rX   rY   r    r[   Ú
index_axeszlist[IndexCol] | Nonerš  z list[tuple[AxisInt, Any]] | NoneÚvalues_axeszlist[DataCol] | Nonerž   zlist | Noner  zdict | NonerZ   r¡   r\   )r]   s   "r^   r_   ÚTable.__annotate__Ö  sn   € ÷ ñ àðð ðð ð	ð
 ðð *ðð 9ðð *ðð "ðð ðð 
ñr`   c                	óà   <€ \         SV `  WW4R 7       T;'       g    . V n        T;'       g    . V n        T;'       g    . V n        T;'       g    . V n        T	;'       g    / V n        W n        R# )r(  N)rC  rê   rê  rš  rë  rž   r  r¤   )ré   rØ   rÐ   rX   r    rê  rš  rë  rž   r  r¤   rD  s   &&&&&&&&&&&€r^   rê   ÚTable.__init__Ö  sh   ø€ ô 	‰Ñ˜°ÐÔIØ$×*Ð*¨ˆŒØ,×2Ð2°ˆÔØ&×,Ð,¨"ˆÔØ(×.Ð.¨BˆÔØ—J�J˜BˆŒ	ØŽr`   c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   rì  ì  s   € ÷ -ñ - #ñ -r`   c                	óF   € V P                   P                  R 4      ^ ,          # )Ú_)r!  rR  rð   s   &r^   Útable_type_shortÚTable.table_type_shortë  s   € à�‰×$Ñ$ SÓ)¨!Õ,Ð,r`   c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   rì  ï  s   € ÷ 
ñ 
˜#ñ 
r`   c                ó4  € V P                  4        \        V P                  4      '       d   RP                  V P                  4      MRpRV R2pRpV P                  '       d;   RP                  V P
                   Uu. uF  p\        V4      NK  	  up4      pRV R2pRP                  V P                   Uu. uF  qfP                  NK  	  up4      pV P                  R V RV P                   R	V P                   R
V P                   RV RV R2# u upi u upi )rí  r–  rA  z,dc->[r‹  ræ  rî  rï  z (typ->z,nrows->z,ncols->z,indexers->[rð  )rt  rs   rž   r™  rß  rÞ  r[   rê  ri   rë  rò  rr  Úncols)ré   ÚjdcrÜ  Úverrž  Újverr»   Újindex_axess   &       r^   r%  ÚTable.__repr__ï  s  € à�‰ÔÜ-0°×1BÑ1B×-CÒ-Cˆc�h‰h�t×(Ñ(Ô)ÈˆØ�c�U˜!ˆ_ˆàˆØ××ÐØ—8‘8¨T¯\ª\Ó:©\¨œS žV©\Ñ:Ó;ˆDØ�d�V˜1�+ˆCà—h‘h°·²Ó@±¨1§¤±Ñ@ÓAˆà×Ñ Ð& s eð ,Ø×*Ñ*Ð+¨8°D·J±J°<ð @Ø—j‘j�\ ¨k¨]¸!¸B¸4¸qðBð	
ùò	 ;ùò  As   Á<DÂ6Dc               ó   € V ^8„  d   QhRR/# )rW   r  r[   r\   )r]   s   "r^   r_   rì    s   € ÷ ñ ˜Sñ r`   c                óT   € V P                    F  pWP                  8X  g   K  Vu # 	  R# )zreturn the axis for cN)r¸  ri   )ré   r  r»   s   && r^   r  ÚTable.__getitem__  s#   € à—”ˆAØ—F‘FŽ{Ø’ñ ñ r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rì    s   € ÷ %ñ % ñ %r`   c                ó2  € Vf   R# VP                   V P                   8w  d'   \        RVP                    RV P                    R24      hR FÉ  p\        WR4      p\        WR4      pW48w  g   K#  \        V4       F„  w  rVWE,          pWg8w  g   K  VR8X  dV   VP                  VP                  8w  d;   \        RVP                  ^ ,           RVP                   RVP                   R	24      h\        R
V RV RV R24      h	  \        R
V RV RV R24      h	  R# )z"validate against an existing tableNz'incompatible table_type with existing [r	  r‹  rë  úCannot serialize the column [z%] because its data contents are not [z] but [ú] object dtypezinvalid combination of [z] on appending data [z] vs current table [)rê  rš  rë  )r!  rÃ   rï  r‰  rã  r¼   rÑ  r®  )ré   r   r  ÚsvÚovrŒ  ÚsaxÚoaxs   &&      r^   r¤  ÚTable.validate  sM  € àŠ=Ùà×Ñ˜tŸ™Ô.ÜðØ×$Ñ$Ð% S¨¯©Ð(9¸ð<óð ó
 AˆAÜ˜ $Ó'ˆBÜ˜ 4Ó(ˆBØŽxô (¨žm‘F�Aà�%�CØ–zØ Ô-°#·(±(¸c¿h¹hÔ2FÜ",Ø"?ÀÇ
Á
È1Å¸ð OFØFIÇhÁhÀZð P(Ø(+¯© z°ð!Aó#ð ô
 )Ø6°q°cð : Ø #˜uÐ$8¸¸¸Qð@óð ñ ,ô   Ø.¨q¨cÐ1FÀrÀdð K&Ø&( T¨ð,óð ó/ Ar`   c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   rì  0  s   € ÷ -ñ - ñ -r`   c                ó6   € \        V P                  \        4      # )z@the levels attribute is 1 or a list in the case of a multi-index)rg   rŠ  rq   rð   s   &r^   Úis_multi_indexÚTable.is_multi_index/  s   € ô ˜$Ÿ+™+¤tÓ,Ð,r`   c               ó    € V ^8„  d   QhRRRR/# )rW   rA  r’   rZ   z tuple[DataFrame, list[Hashable]]r\   )r]   s   "r^   r_   rì  4  s   € ÷ !ñ !Ø%ð!à	)ñ!r`   c                óì   € \         P                  ! VP                  P                  4      p VP	                  4       p\        T\        4      '       g   Q hY23#   \
         d   p\        R4      ThRp?ii ; i)zM
validate that we can store the multi-index; reset and return the
new object
zBduplicate names/columns in the multi-index when storing as a tableN)r°  Úfill_missing_namesr™   r‹  Úreset_indexr¼   rg   r,   )ré   rA  rŠ  Ú	reset_objr³  s   &&   r^   Úvalidate_multiindexÚTable.validate_multiindex4  sp   € ô ×'Ò'¨¯	©	¯©Ó8ˆð	ØŸ™Ó)ˆIô
 ˜)¤Y×/Ò/Ð/Ð/ØÐ Ð øô ô 	ÜØTóàðûð	ús   ¬A ÁA3Á"A.Á.A3c               ó   € V ^8„  d   QhRR/# r  r\   )r]   s   "r^   r_   rì  F  s   € ÷ Fñ F ñ Fr`   c                ó    € \         P                  ! V P                   Uu. uF  qP                  P                  ^ ,          NK!  	  up4      # u upi )z-based on our axes, compute the expected nrows)rÈ  r˜  rê  ré  rR  ©ré   rŒ  s   & r^   Únrows_expectedÚTable.nrows_expectedE  s7   € ô �wŠw°D·O²OÓD±O¨qŸ	™	Ÿ™¨×*Ð*±OÑDÓEÐEùÒDs   Ÿ%Ac               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   rì  K  s   € ÷ %ñ %˜4ñ %r`   c                ó    € RV P                   9   # )zhas this table been createdr~   r  rð   s   &r^   rD  ÚTable.is_existsJ  s   € ð ˜$Ÿ*™*Ñ$Ð$r`   c                	ó0   € \        V P                  R R4      # ©r~   N©rï  rÐ   rð   s   &r^   r  ÚTable.storableO  s   € ä�t—z‘z 7¨DÓ1Ð1r`   c                ó   € V P                   # )z,return the table group (this is my storable))r  rð   s   &r^   r~   ÚTable.tableS  s   € ð �}‰}Ðr`   c                	ó.   € V P                   P                  # rb   )r~   rÂ  rð   s   &r^   rÂ  ÚTable.dtypeX  s   € à�z‰z×ÑÐr`   c                	ó.   € V P                   P                  # rb   rà  rð   s   &r^   rá  ÚTable.description\  rã  r`   c               ó   € V ^8„  d   QhRR/# )rW   rZ   zitertools.chain[IndexCol]r\   )r]   s   "r^   r_   rì  a  s   € ÷ Bñ BÐ/ñ Br`   c                	óX   € \         P                  ! V P                  V P                  4      # rb   )r•  r–  rê  rë  rð   s   &r^   r¸  Ú
Table.axes`  s   € ä�Š˜tŸ™°×0@Ñ0@ÓAÐAr`   c               ó   € V ^8„  d   QhRR/# r  r\   )r]   s   "r^   r_   rì  e  s   € ÷ <ñ <�sñ <r`   c                ó:   € \        R V P                   4       4      # )z.the number of total columns in the values axesc              3  óL   "  € T F  p\        VP                  4      x € K  	  R # 5irb   )rs   rÑ  )rÂ  r»   s   & r^   rÄ  ÚTable.ncols.<locals>.<genexpr>g  s   é € Ð;Ñ*: Q”3�q—x‘x—=�=Ó*:ùs   ‚"$)Úsumrë  rð   s   &r^   rö  ÚTable.ncolsd  s   € ô Ñ;¨$×*:Ò*:Ó;Ó;Ð;r`   c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   rì  j  ó   € ÷ ñ ˜tñ r`   c                	ó   € R # rY  r\   rð   s   &r^   Úis_transposedÚTable.is_transposedi  r7  r`   c               ó   € V ^8„  d   QhRR/# )rW   rZ   ztuple[int, ...]r\   )r]   s   "r^   r_   rì  n  s   € ÷ 
ñ 
 /ñ 
r`   c                ó  € \        \        P                  ! V P                   Uu. uF  p\	        V^ ,          4      NK  	  upV P
                   Uu. uF  p\	        VP                  4      NK  	  up4      4      # u upi u upi )z@return a tuple of my permutated axes, non_indexable at the front)rr   r•  r–  rš  rn   rê  rŽ  ©ré   r»   s   & r^   Údata_orientationÚTable.data_orientationm  sc   € ô Ü�OŠOØ$(×$7Ò$7Ó8Ñ$7˜q”�Q�q•T–Ñ$7Ñ8Ø&*§o¢oÓ6¡o ”�Q—V‘V–¡oÑ6óó
ð 	
ùâ8ùÚ6s   ¤A8ÁA=c               ó   € V ^8„  d   QhRR/# )rW   rZ   údict[str, Any]r\   )r]   s   "r^   r_   rì  w  s   € ÷ "ñ "˜Nñ "r`   c                ó�  € ^ R^R/pV P                    Uu. uF  q"P                  V3NK  	  ppV P                   UUu. uF  w  rEW,          R3NK  	  pppV P                   Uu. uF6  qwP                  \        V P                  4      9   g   K(  VP                  V3NK8  	  pp\        W6,           V,           4      # u upi u uppi u upi )z<return a dict of the kinds allowable columns for this objectr™   r²   N)rê  rz  rš  rë  ri   rÈ  rž   r½  )	ré   Ú
axis_namesr»   Úd1rŽ  rÑ  Úd2r×  Úd3s	   &        r^   Ú
queryablesÚTable.queryablesw  s¹   € ð ˜ ! YÐ/ˆ
ð %)§O¢OÓ4¡O˜q�w‰w˜‹l¡OˆÐ4Ø;?×;NÒ;NÔOÑ;N©<¨4ˆzÕ Ó&Ñ;NˆÑOà"&×"2Ò"2ó
Ù"2˜Q·f±fÄÀD×DUÑDUÓ@VÑ6VŒLˆQ�W‰W�a‹LÑ"2ð 	ð 
ô �B•G˜b•LÓ!Ð!ùò 5ùÛOùò
s   •B8¼B=Á"%CÂCc               ó   € V ^8„  d   QhRR/# )rW   rZ   zlist[tuple[Any, Any]]r\   )r]   s   "r^   r_   rì  …  s   € ÷ <ñ <Ð1ñ <r`   c                ón   € V P                    Uu. uF  qP                  VP                  3NK  	  up# u upi )zreturn a list of my index cols)rê  rŽ  rz  r  s   & r^   Ú
index_colsÚTable.index_cols…  s+   € ð ,0¯?ª?Ó;©? a—‘˜Ÿ™Ó!©?Ñ;Ð;ùÒ;s   � 2c               ó   € V ^8„  d   QhRR/# )rW   rZ   r5  r\   )r]   s   "r^   r_   rì  Š  s   € ÷ 3ñ 3˜Yñ 3r`   c                óV   € V P                    Uu. uF  qP                  NK  	  up# u upi )zreturn a list of my values cols)rë  rz  r  s   & r^   Úvalues_colsÚTable.values_colsŠ  s$   € à!%×!1Ò!1Ó2Ñ!1˜A—”Ñ!1Ñ2Ð2ùÒ2s   �&c               ó    € V ^8„  d   QhRRRR/# )rW   r�   r[   rZ   r\   )r]   s   "r^   r_   rì  Ž  s   € ÷ *ñ * cð *¨cñ *r`   c                ó>   € V P                   P                  pV RV R2# )z)return the metadata pathname for this keyz/meta/z/metarþ  re  s   && r^   Ú_get_metadata_pathÚTable._get_metadata_pathŽ  s$   € à—
‘
×&Ñ&ˆØ�˜˜s˜e 5Ð)Ð)r`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   r�   r[   rÑ  r·  rZ   r¡   r\   )r]   s   "r^   r_   rì  “  s!   € ÷ 
ñ 
 #ð 
¨zð 
¸dñ 
r`   c           	     ó¸   € V P                   P                  V P                  V4      \        VRR7      RV P                  V P
                  V P                  R7       R# )zs
Write out a metadata array to the key as a fixed-format Series.

Parameters
----------
key : str
values : ndarray
Fr¥  r~   )r]   rX   r    r¤   N)rØ   r«   rK  r2   rX   r    r¤   )ré   r�   rÑ  s   &&&r^   r   ÚTable.write_metadata“  sI   € ð 	�‰�‰Ø×#Ñ# CÓ(Ü�6 Ô&ØØ—]‘]Ø—;‘;Ø—L‘Lð 	ö 	
r`   c               ó   € V ^8„  d   QhRR/# rý   r\   )r]   s   "r^   r_   rì  ¥  s   € ÷ ñ  ñ r`   c                ó¢   € \        \        V P                  RR4      VR4      e+   V P                  P                  V P	                  V4      4      # R# )z'return the meta data array for this keyrÓ   N)rï  rÐ   rØ   rÈ   rK  r   s   &&r^   r*  ÚTable.read_metadata¥  sA   € ä”7˜4Ÿ:™: v¨tÓ4°c¸4Ó@ÒLØ—;‘;×%Ñ% d×&=Ñ&=¸cÓ&BÓCÐCÙr`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rì  «  s   € ÷ $ñ $˜4ñ $r`   c                óD  € \        V P                  4      V P                  n        V P                  4       V P                  n        V P	                  4       V P                  n        V P
                  V P                  n        V P                  V P                  n        V P                  V P                  n        V P                  V P                  n        V P                  V P                  n	        V P                  V P                  n
        V P                  V P                  n        R# )zset our table type & indexablesN)r[   r!  rÜ  rC  rG  rš  rž   r¤   rX   r    rŠ  r  rð   s   &r^   r  ÚTable.set_attrs«  s²   € ä # D§O¡OÓ 4ˆ�
‰
ÔØ $§¡Ó 1ˆ�
‰
ÔØ!%×!1Ñ!1Ó!3ˆ�
‰
ÔØ$(×$7Ñ$7ˆ�
‰
Ô!Ø"&×"3Ñ"3ˆ�
‰
ÔØ!Ÿ\™\ˆ�
‰
ÔØ"Ÿm™mˆ�
‰
ÔØ ŸK™Kˆ�
‰
ÔØ ŸK™Kˆ�
‰
ÔØŸ)™)ˆ�
‰
Žr`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rì  ¸  s   € ÷ 
Qñ 
Q˜4ñ 
Qr`   c                óÔ  € \        V P                  RR4      ;'       g    . V n        \        V P                  RR4      ;'       g    . V n        \        V P                  RR4      ;'       g    / V n        \        V P                  RR4      V n        \        \        V P                  RR4      4      V n        \        V P                  RR4      V n        \        V P                  R	R4      ;'       g    . V n	        V P                   Uu. uF  qP                  '       g   K  VNK  	  upV n        V P                   Uu. uF  qP                  '       d   K  VNK  	  upV n        R# u upi u upi )
ra  rš  Nrž   r  r¤   rX   r    r†   rŠ  )rï  rÜ  rš  rž   r  r¤   re   rX   r    rŠ  Ú
indexablesrw  rê  rë  r5  s   & r^   r  ÚTable.get_attrs¸  s  € ä% d§j¡jÐ2BÀDÓI×OÐOÈRˆÔÜ# D§J¡J°ÀÓE×KÐKÈˆÔÜ˜DŸJ™J¨°Ó5×;Ð;¸ˆŒ	Ü˜tŸz™z¨9°dÓ;ˆŒÜ(¬°·±¸ZÈÓ)NÓOˆŒÜ˜dŸj™j¨(°HÓ=ˆŒÜ&-¨d¯j©j¸(ÀDÓ&I×&OÐ&OÈRˆŒØ&*§o¢oÓK¡o ×9JÕ9JŸ1˜1¡oÑKˆŒØ'+§¢ÓP¡ !×>OÕ>OŸA˜A¡ÑPˆÖùò LùÚPs   ÄE ÄE Ä8E%ÅE%c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rì  Ä  s   € ÷ 	ñ 	¨dñ 	r`   c           	     ó  € Ve{   V P                   '       dg   \        RP                  V P                   Uu. uF  p\	        V4      NK  	  up4      ,          p\
        P                  ! V\        \        4       R7       R# R# R# u upi )r%  Nræ  r  )	rß  rx   r™  rÞ  r[   r  r  r   r    )ré   rt   rž  r  s   &&  r^   r'  ÚTable.validate_versionÄ  sc   € àÒØ×"×"Ð"Ü(¨3¯8©8ÀTÇ\Â\Ó4RÁ\À´S¸¶VÁ\Ñ4RÓ+SÕS�Ü—’ØÜ*Ü/Ó1÷ñ #ñ ùâ4Rs   µB
c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rì  Ï  s   € ÷ ñ °Tñ r`   c                ó°   € Vf   R# \        V\        4      '       g   R# V P                  4       pV F!  pVR8X  d   K  W29  g   K  \        RV R24      h	  R# )zp
validate the min_itemsize doesn't contain items that are not in the
axes this needs data_columns to be defined
NrÑ  zmin_itemsize has the key [z%] which is not an axis or data_column)rg   r½  r?  r¼   )ré   rš   Úqr�  s   &&  r^   Úvalidate_min_itemsizeÚTable.validate_min_itemsizeÏ  s`   € ð
 ÒÙÜ˜,¬×-Ò-Ùà�O‰OÓˆÛˆAà�HŒ}ÙØŽzÜ Ø0°°ð 4"ð "óð ó r`   c                ón  a aaaa€ . pS P                   oS P                  P                  o\        S P                  P                  4       Fm  w  pw  r4\        SV4      pS P                  V4      pVe   RMRpV R2p\        SVR4      p	\        VVVV	VS P                  VVR7      p
VP                  V
4       Ko  	  \        S P                  4      o\        V4      oR VVVV V3R llpTP                  \        S P                  P                  4       UUu. uF  w  r,V! W,4      NK  	  upp4       V# u uppi )z/create/cache the indexables if they don't existNr&  rŒ  )ri   rŽ  r~  rã  r}  r~   rÓ   r‚  c               ó    € V ^8„  d   QhRRRR/# )rW   r  r[   rZ   r?  r\   )r]   s   "r^   r_   Ú&Table.indexables.<locals>.__annotate__  s   € ÷ !	ñ !	�Cð !	˜Gñ !	r`   c                ó€  <€ \        V\        4      '       g   Q h\        pVS9   d   \        p\	        SV4      p\        VSP                  4      p\	        SV R 2R4      p\	        SV R2R4      p\        V4      pSP                  V4      p\	        SV R2R4      p	V! VVVVSV ,           VSP                  V	VVR7
      p
V
# )rŒ  NrH  rM  )
ri   rz  rÑ  rã  r~  r}  r~   rÓ   r‚  rÂ  )
rg   r[   r?  r¿  rï  Ú_maybe_adjust_namerÞ  r\  r*  r~   )rŒ  r  Úklassro  Úadj_namerÑ  rÂ  rã  ÚmdrÓ   rA  Úbase_posrÜ  Údescré   Útable_attrss   &&         €€€€€r^   r{   ÚTable.indexables.<locals>.f  sÙ   ø€ Ü˜a¤×%Ò%Ð%Ð%ÜˆEØ�BŒwÜ(�ä˜4 Ó#ˆDÜ)¨!¨T¯\©\Ó:ˆHô ˜[¨X¨J°eÐ*<¸dÓCˆFÜ˜K¨H¨:°VÐ)<¸dÓCˆEô " %Ó(ˆDà×#Ñ# AÓ&ˆBô ˜;¨8¨*°EÐ(:¸DÓAˆDáØØØØØ˜q•LØØ—j‘jØØØôˆCð ˆJr`   )rá  r~   rÜ  r‰  rC  rï  r*  rv  r—   rÈ  rž   rs   rÌ  rG  )ré   Ú_indexablesrŒ  rŽ  ri   ro  ri  rÓ   r�  rã  Ú	index_colr{   r  rj  rÜ  rk  rl  s   f            @@@@r^   rX  ÚTable.indexablesä  s%  ü€ ð ˆà×ÑˆØ—j‘j×&Ñ&ˆô
  )¨¯©×)>Ñ)>Ö?‰OˆA‰|�Ü˜4 Ó&ˆDØ×#Ñ# DÓ)ˆBØ!#¢‘:°TˆDà˜& ˜ˆIÜ˜;¨	°4Ó8ˆDä ØØØØØØ—j‘jØØô	ˆIð ×Ñ˜yÖ)ñ%  @ô* �×"Ñ"Ó#ˆÜ�{Ó#ˆ÷!	ô !	ðJ 	×Ñ´	¸$¿*¹*×:PÑ:PÔ0QÔRÑ0Q©¨™A˜ažGÑ0QÒRÔSàÐùó Ss   ÄD1
c               ó    € V ^8„  d   QhRRRR/# )rW   rã  rY   rZ   r¡   r\   )r]   s   "r^   r_   rì  0  s    € ÷ Tñ TØ1;ðTà	ñTr`   c           
     ó�  € V P                  4       '       g   R# VRJ d   R# Ve   VRJ d9   V P                   Uu. uF"  qDP                  '       g   K  VP                  NK$  	  pp\	        V\
        \        34      '       g   V.p/ pVe   W%R&   Ve   W5R&   V P                  pV EF  p\        VP                  VR4      pVeÉ   VP                  '       dc   VP                  p	V	P                  p
V	P                  pVe   W³8w  d   VP                  4        MWµR&   Ve   W¢8w  d   VP                  4        MW¥R&   VP                  '       gA   VP                  P!                  R4      '       d   \#        R4      hVP$                  ! R/ VB  Kå  Kç  WpP&                  ^ ,          ^,          9   g   EK  \)        RV R	V R
V R24      h	  R# u upi )a²  
Create a pytables index on the specified columns.

Parameters
----------
columns : None, bool, or listlike[str]
    Indicate which columns to create an index on.

    * False : Do not create any indexes.
    * True : Create indexes on all columns.
    * None : Create indexes on all columns.
    * listlike : Create indexes on the given columns.

optlevel : int or None, default None
    Optimization level, if None, pytables defaults to 6.
kind : str or None, default None
    Kind of index, if None, pytables defaults to "medium".

Raises
------
TypeError if trying to create an index on a complex-type column.

Notes
-----
Cannot index Time64Col or ComplexCol.
Pytables must be >= 3.0.
NFTrâ  rã  ÚcomplexzíColumns containing complex values can be stored but cannot be indexed when using table format. Either use fixed format, set index=False, or do not include the columns containing complex values to data_columns when initializing the table.zcolumn z/ is not a data_column.
In order to read column z: you must reload the dataframe 
into HDFStore and include z  with the data_columns argument.r\   )rt  r¸  rx  rz  rg   rr   rq   r~   rï  rÃ  r	  r™   râ  rã  Úremove_indexr  rý  rÃ   rå  rš  rˆ   )ré   r²   râ  rã  r»   Úkwr~   r  r×  r™   Úcur_optlevelÚcur_kinds   &&&&        r^   rå  ÚTable.create_index0  s¦  € ð< �‰× Ò ÙØ�eÓÙð Š?˜g¨›oØ(,¯	ª	ÓI©	 1×5HÕ5H”w�q—w”w©	ˆGÐIÜ˜'¤E¬4 =×1Ò1Ø�iˆGàˆØÒØ%ˆz‰NØÒØˆv‰Jà—
‘
ˆÜˆAÜ˜Ÿ
™
 A tÓ,ˆAØŠ}à—<—<�<ØŸG™G�EØ#(§>¡>�LØ$Ÿz™z�HàÒ'¨HÔ,<ØŸ™Õ(à%-˜6™
àÒ+°Ô0HØŸ™Õ(à)5˜:™ð —|—|�|Ø—v‘v×(Ñ(¨×3Ò3Ü'ðHóð ð —N’NÑ( RÔ(ñ $ð ×)Ñ)¨!Õ,¨QÕ/×/ä$Ø˜a˜Sð !/Ø/0¨cð 21Ø12°Ð3SðUóð óA ùò Js   ¹GÁGc               ó$   € V ^8„  d   QhRRRRRR/# )rW   r°   r•   r±   rZ   z9list[tuple[np.ndarray, np.ndarray] | tuple[Index, Index]]r\   )r]   s   "r^   r_   rì  †  s$   € ÷  ñ  Ø&ð Ø5?ð à	Bñ r`   c                ó(  € \        WW#R7      pVP                  4       p. pV P                   Fb  pVP                  V P                  4       VP                  VV P                  V P                  V P                  R7      pVP                  V4       Kd  	  V# )zÉ
Create the axes sniffed from the table.

Parameters
----------
where : ???
start : int or None, default None
stop : int or None, default None

Returns
-------
List[Tuple[index_values, column_values]]
r|  r§  )
Ú	SelectionrÈ   r¸  r  r  rÕ  r¤   rX   r    r—   )	ré   rt   r°   r±   Ú	selectionrÑ  rs  r»   Úress	   &&&&     r^   Ú
_read_axesÚTable._read_axes†  s�   € ô" ˜d°uÔHˆ	Ø×!Ñ!Ó#ˆàˆà—”ˆAØ�J‰J�t—y‘yÔ!Ø—)‘)ØØŸ™ØŸ™Ø—{‘{ð	 ó ˆCð �N‰N˜3Öñ ð ˆr`   c               ó   € V ^8„  d   QhRR/# ©rW   rh  r˜   r\   )r]   s   "r^   r_   rì  ©  s   € ÷ ñ ¨ñ r`   c                ó   € V# )zreturn the data for this objr\   ©r;  rA  rh  s   &&&r^   Ú
get_objectÚTable.get_object¨  s	   € ð ˆ
r`   c               ó   € V ^8„  d   QhRR/# ré  r\   )r]   s   "r^   r_   rì  ­  s   € ÷ $=ñ $=ÐSWñ $=r`   c                ó$  € \        V4      '       g   . # V^ ,          w  rEV P                  P                  V/ 4      pVP                  R4      R8X  d   V'       d   \        RV RV 24      hVRJ d   \	        V4      pMVf   . p\        V\        4      '       dW   \        V4      p\	        V4      pTP                  VP                  4        Uu. uF  pVR8w  g   K  W‡9  g   K  VNK  	  up4       V U	u. uF  q™V9   g   K  V	NK  	  up	# u upi u up	i )zL
take the input data_columns and min_itemize and create a data
columns spec
r  r/   z"cannot use a multi-index on axis [z] with data_columns TrÑ  )
rs   r  rÿ   r¼   rq   rg   r½  rÈ  rÌ  r=  )
ré   rž   rš   rš  rŽ  Úaxis_labelsr  Úexisting_data_columnsr�  r  s
   &&&&      r^   Úvalidate_data_columnsÚTable.validate_data_columns­  s  € ô
 �>×"Ò"ØˆIà*¨1Õ-ÑˆØ�y‰y�}‰}˜T 2Ó&ˆØ�8‰8�FÓ˜|Ô+·ÜØ4°T°Fð ; Ø ,˜~ð/óð ð ˜4ÓÜ Ó,‰LØÒ!ØˆLô �l¤D×)Ò)Ü$'¨Ó$5Ð!Ü Ó-ˆLØ×Ñð *×.Ñ.Ô0óá0˜Ø˜H‘}ô à)*Ñ)G÷ �AÙ0ñôñ (Ó<™<�a°Ñ+;—�™<Ñ<Ð<ùòùò =s   Ã	DÃDÃ!DÃ2DÃ?Dc               ó    € V ^8„  d   QhRRRR/# )rW   rA  r,   r¤  r˜   r\   )r]   s   "r^   r_   rì  Ó  s$   € ÷ pñ pð ðpð ñ	pr`   c                óê  a€ \        V\        4      '       g2   V P                  P                  p\	        RV R\        V4       R24      hSf   ^ .oS Uu. uF  q‚P                  V4      NK  	  upoV P                  4       '       dJ   Rp	V P                   Uu. uF  qˆP                  NK  	  upo\        V P                  4      pV P                  pMRp	V P                  p
V P                  ^8X  g   Q h\        S4      V P                  ^,
          8w  d   \!        R4      h. pVf   Rp\#        V3R	 lR 4       4      pVP$                  V,          p\        V4      pV	'       d´   \        V4      pV P&                  V,          ^,          p\)        \*        P,                  ! V4      \*        P,                  ! V4      RRR
7      '       gR   \)        \*        P,                  ! \/        V4      4      \*        P,                  ! \/        V4      4      RRR
7      '       d   TpV
P1                  V/ 4      p\        VP2                  4      VR&   \        V4      P4                  VR&   VP7                  WÍ34       S^ ,          pVP$                  V,          pVP9                  V4      p\;        VW€P<                  V P>                  4      pVVn	        VPA                  ^ 4       VPC                  V
4       VPE                  V4       V.p\        V4      pV^8X  g   Q h\        V4      ^8X  g   Q hV F  p\G        W(^ ,          V^,          4      pK  	  VP                  ^8H  pV PI                  WVV4      pV PK                  VV4      PM                  4       pV PO                  VW›V PP                  V4      w  pp. p\S        \U        VVRR7      4       EF-  w  pw  pp\V        pRpV'       dS   \        V4      ^8X  dC   V^ ,          V9   d5   \X        pV^ ,          pVe"   \        V\Z        4      '       g   \!        R4      hV	'       d   V'       d    V PP                  V,          pMRpT;'       g    RV 2p!\a        V!VPb                  VVVV P<                  V P>                  VR7      p"\e        V!V Pf                  4      p#VPi                  V"4      p$\k        V"Pl                  Pn                  4      p%Rp&\q        V"RR4      e   \s        V"Pt                  4      p&R;p';p(p)\        V"Pl                  \v        4      '       d>   V"Px                  p)Rp'\*        Pz                  ! V"P|                  4      P                  4       p(M5\        VPl                  \€        4      '       d   \[        VPl                  4      p'\ƒ        V"4      w  p*p+V! V#V!\        V4      V$VV%V&V)V'V(V+V*R7      p,V,PC                  V
4       VP7                  V,4       V^,          pEK0  	  V U,u. uF#  p,V,P„                  '       g   K  V,Pn                  NK%  	  p-p,\        V 4      ! V P†                  V P                  V P<                  V P>                  VVVV-V
VR7
      p.\‰        V R4      '       d   V PŠ                  V.nE        V.P�                  V4       V'       d   V	'       d   V.P�                  V 4       V.# u upi u upi   \\        \^        3 d#   p \!        RT RT PP                   R24      T hRp ? ii ; iu up,i )a˜  
Create and return the axes.

Parameters
----------
axes: list or None
    The names or numbers of the axes to create.
obj : DataFrame
    The object to create axes on.
validate: bool, default True
    Whether to validate the obj against an existing object already written.
nan_rep :
    A value to use for string column nan_rep.
data_columns : List[str], True, or None, default None
    Specify the columns that we want to create to allow indexing on.

    * True : Use all available columns.
    * None : Use no columns.
    * List[str] : Use the specified columns.

min_itemsize: Dict[str, int] or None, default None
    The min itemsize for a column in bytes.
z/cannot properly create the storer for: [group->r'  r‹  NTFz<currently only support ndim-1 indexers in an AppendableTablerÎ  c              3  ó8   <"  € T F  qS9  g   K  Vx € K  	  R # 5irb   r\   )rÂ  rž  r¸  s   & €r^   rÄ  Ú%Table._create_axes.<locals>.<genexpr>  s   øé € Ð6™f˜°©—1’1›fùs   ƒ�
r'  r‹  r  rŠ  rÃ  zIncompatible appended table [z]with existing table [Úvalues_block_)Úexisting_colrš   r¤   rX   r    r²   r€  r&  )ri   rz  rÑ  r}  r~  rã  r€  rØ  rÓ   r‚  rÂ  r  )
rØ   rÐ   rX   r    rê  rš  rë  rž   r  r¤   rŠ  )rs  r·   )Hrg   r,   rÐ   rÖ   rÃ   r  Ú_get_axis_numberrt  rê  rŽ  rq   rž   r¤   r  rÊ  rs   r¼   rÇ  r¸  rš  r+   rÈ  r>   rÎ  r  r‹  r  r—   Ú_get_axis_namer~  rX   r    rƒ  r  rò  Ú_reindex_axisrŠ  r„  r�  Ú_get_blocks_and_itemsrë  r‰  r—  r?  r¿  r[   Ú
IndexErrorr  Ú_maybe_convert_for_string_atomrÑ  rf  rÞ  rp  r\  rÂ  ri   rï  r€  r€  r'   rØ  rª  r£  r­  r3   r[  rx  rØ   r´  rŠ  r`  r¤  )/ré   r¸  rA  r¤  r¤   rž   rš   rÐ   r»   Útable_existsÚnew_infoÚnew_non_index_axesr  Úappend_axisÚindexerÚ
exist_axisr  Ú	axis_nameÚ	new_indexÚnew_index_axesÚjrh  r%  râ  rØ  ÚvaxesrŒ  rä  Úb_itemsrg  ri   r‘  r³  Únew_nameÚdata_convertedrh  r}  rã  r€  rÓ   r‚  rØ  r  r]  rå  ÚdcsÚ	new_tables/   &f&&&&&                                        r^   Ú_create_axesÚTable._create_axesÓ  sG  ø€ ô@ ˜#œy×)Ò)Ø—J‘J×&Ñ&ˆEÜØAÀ%Àð IÜ˜s›)˜ Að'óð ð Š<Ø�3ˆDñ 26Ó6±¨A×$Ñ$ QÖ'±Ñ6ˆð �?‰?×ÒØˆLØ$(§O¢OÓ4¡O˜q—F”F¡OÑ4ˆDÜ × 1Ñ 1Ó2ˆLØ—l‘l‰Gð !ˆLà—9‘9ˆà�y‰y˜AŒ~Ðˆ~äˆt‹9˜Ÿ	™	 A�Ô%ÜØNóð ð
 $&Ðð Š?ØˆGô Ô6™fÓ6Ó6ˆà�H‰H�S�Mˆä˜1“gˆßÜÐ,Ó-ˆGØ×,Ñ,¨WÕ5°aÕ8ˆJÜ#Ü—’˜Ó%Ü—’˜Ó$ØØ ÷	ó ô $Ü—H’HœV KÓ0Ó1Ü—H’HœV JÓ/Ó0Ø#Ø $÷	ó ð #-�Kð ×"Ñ" 3¨Ó+ˆÜ˜QŸW™W›ˆˆW‰Ü˜A“w×'Ñ'ˆˆV‰à×!Ñ! 3Ð"4Ô5ð �1�gˆØ�H‰H�S�MˆØ×&Ñ& sÓ+ˆ	Ü" 9¨a·±ÀÇÁÓLˆ	Øˆ	Œð 	×Ñ˜!ÔØ×Ñ˜hÔ'Ø× Ñ  Ô.à#˜ˆÜ�ÓˆØ�AŒvˆˆvô Ð%Ó&¨!Ô+Ð+Ð+Û#ˆAÜ  q¥T¨1¨Q­4Ó0ŠCñ $ð —^‘^ qÑ(ˆ
ð ×1Ñ1ØÐ(:ó
ˆð —‘  ZÓ0×=Ñ=Ó?ˆà ×6Ñ6Ø�<°T×5EÑ5EÀ|ó
Ñˆ�	ð
 ˆÜ!*¬3¨v°yÈÔ+N×!OÑˆA‰~��WäˆEØˆD÷ ¤ G£°Ô 1°g¸aµjÀLÔ6PÜ(�Ø˜q•z�Øš¬
°4¼×(=Ò(=ä$Ð%TÓUÐU÷ §ðØ#'×#3Ñ#3°AÕ#6‘Lð  $�à×2Ð2 ¨q¨cÐ2ˆHÜ;ØØ—
‘
Ø)Ø)ØØŸ™Ø—{‘{Øô	ˆNô *¨(°D·L±LÓAˆHà—/‘/ .Ó1ˆCÜ! .×"6Ñ"6×";Ñ";Ó<ˆDØˆBÜ�~ t¨TÓ2Ò>Ü˜^×.Ñ.Ó/�à(,Ð,ˆDÐ,�8˜gÜ˜.×.Ñ.Ô0@×AÒAØ(×0Ñ0�Ø!�ÜŸ:š: n×&?Ñ&?Ó@×FÑFÓH‘Ü˜CŸI™I¤{×3Ò3Ü˜3Ÿ9™9“~�ä7¸ÓGÑˆD�*áØØÜ˜G“}ØØØØØØØ!Ø ØôˆCð �O‰O˜HÔ%à�L‰L˜Ôà��F‹AñW "PñZ $)ÓB¡5˜C¨C×,AÕ,AŒxˆs�xŒx¡5ˆÐBä˜”JØ—;‘;Ø—*‘*Ø—]‘]Ø—;‘;Ø%Ø-ØØØØô
ˆ	ô �4˜×"Ò"à#Ÿ{™{ˆIÔà×'Ñ'¨Ô5çŸØ×Ñ˜tÔ$àÐùòI 7ùò
 5øô^ #¤HÐ-ô Ü$Ø7¸°xð @0Ø04×0@Ñ0@Ð/AÀðDóð ðûðüòr Cs0   ÁZ0ÂZ5Ð2Z:×+[0Ø[0Ú:[-Û[(Û([-c               ó    € V ^8„  d   QhRRRR/# )rW   r%  r,   r˜  r˜   r\   )r]   s   "r^   r_   rì  Æ  s   € ÷ 9!ñ 9!Øð9!àñ9!r`   c           
     	óú  € R  pV P                   p\        VP                  4      pV! V4      p\        V4      '       dÁ   V^ ,          w  rš\	        V
4      P                  \	        V4      4      pV P                  W¹R7      P                   p\        VP                  4      pV! V4      pV FS  pV P                  V.V	R7      P                   pVP                  VP                  4       VP                  V! V4      4       KU  	  V'       d–   \        WxRR7       UUu/ uF   w  rÞ\        VP                  4       4      WÞ3bK"  	  ppp. p. pV FN  p\        VP                  4      p VP                  V4      w  rÞVP                  V4       VP                  V4       KP  	  TpTpWx3# u uppi   \        \        3 dF   pRP!                  T Uu. uF  p\#        T4      NK  	  Mu upi up4      p\%        RT R24      ThRp?ii ; i)c                óˆ   € V P                    Uu. uF'  qP                  P                  VP                  4      NK)  	  up# u upi rb   )râ  rH  rÐ  rã  )Úmgrrä  s   & r^   Úget_blk_itemsÚ2Table._get_blocks_and_items.<locals>.get_blk_itemsÎ  s-   € Ø<?¿JºJÓG¹J°S—I‘I—N‘N 3§<¡<Ö0¹JÑGÐGùÒGs   �-?rÆ  TrŠ  r–  z+cannot match existing table structure for [z] on appending dataN)rÞ  rq   râ  rs   r.   rÍ  rÔ  rÌ  r—  rr   ÚtolistrÑ  r›  r—   r–  r  r™  rC   r¼   )r%  r˜  rš  rë  rž   r®  r­  râ  rØ  rŽ  rˆ  Ú
new_labelsr  Úbr£  Úby_itemsÚ
new_blocksÚnew_blk_itemsÚearH  r³  ÚitemÚjitemss   &&&&&                  r^   r•  ÚTable._get_blocks_and_itemsÅ  så  € ò	Hð �j‰jˆÜ" 3§:¡:Ó.ˆÙ!.¨sÓ!3ˆ	äˆ|×Òð
 !3°1Õ 5ÑˆDÜ˜{Ó+×6Ñ6´u¸\Ó7JÓKˆJØ—-‘- 
�-Ó6×;Ñ;ˆCä˜#Ÿ*™*Ó%ˆFÙ% cÓ*ˆIÛ!�ð —m‘m Q C¨d�mÓ3×8Ñ8�Ø—‘˜cŸj™jÔ)Ø× Ñ ¡¨sÓ!3Ö4ñ "÷ ô #& fÀÕ"Eôá"E‘J�Aô �g—n‘nÓ&Ó'¨!¨Ò5Ù"Eð ñ ð ')ˆJØˆMÛ!�Ü˜bŸi™iÓ(�ð	Ø!)§¡¨eÓ!4‘J�AØ×%Ñ% aÔ(Ø!×(Ñ(¨Ö1ñ "ð  ˆFØ%ˆIàÐ Ð ùó+øô #¤HÐ-ô Ø ŸX™XÁeÓ&LÁe¸d¤|°DÖ'9ÂeùÔ&LÓM�FÜ$ØEÀfÀXð N,ð ,óð ðûðús*   Ä&FÅ5F$Æ$G:Æ5G5ÇGÇG5Ç5G:c               ó    € V ^8„  d   QhRRRR/# )rW   r|  r{  rZ   r,   r\   )r]   s   "r^   r_   rì    s   € ÷ 5ñ 5¨9ð 5Àyñ 5r`   c                óº  a a€ Ve   \        V4      pVeb   S P                  '       dP   \        S P                  \         4      '       g   Q hS P                   F  pWC9  g   K  VP	                  ^ V4       K  	  S P
                   F  w  rV\        SWVV4      oVV 3R lpK  	  VP                  e.   VP                  P                  4        F  w  r‰p
X! WŠV	4      oK  	  S# )zprocess axes filtersc                ó:  <€ SP                    Fü  pSP                  V4      pSP                  V4      pVf   Q hW8X  dZ   S	P                  '       d%   VP	                  \        S	P                  4      4      pV! WQ4      pSP                  VR7      V,          u # W9   g   K’  \        \        SV 4      P                  4      p\        V4      p\        S\        4      '       d
   ^V,
          pV! Wq4      pSP                  VR7      V,          u # 	  \        RV  R24      h)NrÆ  zcannot find the field [z] for filtering!)Ú_AXIS_ORDERSr’  Ú	_get_axisr
  Úunionr.   rŠ  rÓ  r@   rï  rÑ  rg   r,   r¼   )
ÚfieldÚfiltÚoprž  Úaxis_numberÚaxis_valuesÚtakersrÑ  rA  ré   s
   &&&     €€r^   Úprocess_filterÚ*Table.process_axes.<locals>.process_filter  s  ø€ Ø!$×!1Ô!1�IØ"%×"6Ñ"6°yÓ"A�KØ"%§-¡-°	Ó":�KØ&Ò2Ð2Ð2ð Ô)ð  ×.×.Ð.Ø#'§:¡:¬e°D·K±KÓ.@Ó#A˜Dá!# KÓ!6˜Ø"Ÿw™w¨K˜wÓ8¸Õ@Ò@ð Ö-ä!-¬g°c¸5Ó.A×.HÑ.HÓ!I˜Ü+¨DÓ1˜ô & c¬9×5Ò5Ø*+¨k­/˜Ká!# FÓ!1˜Ø"Ÿw™w¨K˜wÓ8¸Õ@Ò@ñ5 "2ô8 !Ð#:¸5¸'ÐAQÐ!RÓSÐSr`   )	rq   r
  rg   rŠ  Úinsertrš  r”  Úfilterr]   )ré   rA  r|  r²   r<  rŽ  ÚlabelsrÆ  rÀ  rÂ  rÁ  s   ff&&       r^   Úprocess_axesÚTable.process_axes  sÍ   ù€ ð ÒÜ˜7“mˆGð Ò 4×#6×#6Ð#6Ü˜dŸk™k¬4×0Ò0Ð0Ð0Ø—[”[�ØÖ#Ø—N‘N 1 aÖ(ñ !ð
 !×/Ô/‰LˆDÜ  T°7Ó;ˆC÷Tð Tñ 0ðF ×ÑÒ'Ø#,×#3Ñ#3×#:Ñ#:Ö#<‘�˜4Ù$ U°"Ó5’ñ $=ð ˆ
r`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   r”   r•   rÝ   r˜   r¹  rZ   r9  r\   )r]   s   "r^   r_   rì  8  s4   € ÷ ñ ð ðð ð	ð
 !ðð 
ñr`   c                ó   € Vf   \        V P                  R4      pRRRV/pV P                   Uu/ uF  qfP                  VP                  bK  	  upVR&   V'       dQ   Vf   V P
                  ;'       g    ^	p\        4       P                  TTT;'       g    V P                  R7      pWuR&   V# V P                  e   V P                  VR&   V# u upi )z:create the description of the table from the axes & valuesi'  ri   r~   r¹  rá  )r”   r–   rÝ   rà   )
Úmaxr  r¸  rz  r}  rä   rŒ   rM  ræ   rç   )ré   r–   r”   rÝ   r¹  r¼  r»   rà   s   &&&&&   r^   Úcreate_descriptionÚTable.create_description8  sÎ   € ð ÒÜ˜t×2Ñ2°EÓ:ˆLà�W˜n¨lÐ;ˆð 59·I²IÓ>±I¨qŸG™G Q§U¡UšN±IÑ>ˆˆ-ÑçØÒ Ø ŸO™O×0Ð0¨q�	Ü“i×'Ñ'Ø#ØØ%×9Ð9¨×)9Ñ)9ð (ó ˆGð
 #ˆi‰Lð ˆð �]‰]Ò&ØŸ=™=ˆAˆi‰Làˆùò ?s   ¯Cc               ó    € V ^8„  d   QhRRRR/# ©rW   r°   r•   r±   r\   )r]   s   "r^   r_   rì  W  s   € ÷ )ñ )Ø!+ð)Ø:Dñ)r`   c                óô  € V P                  V4       V P                  4       '       g   R# \        WW#R7      pVP                  4       pVP                  e™   VP                  P                  4        Fz  w  rgpV P                  WeP                  4       VP                  4       ^,           R7      p	WW! V	P                  WUP                  4       ,
          ,          V4      P                  ,          pK|  	  \        VRR7      # )zN
select coordinates (row numbers) from a table; return the
coordinates object
Fr|  rt  r¥  )r'  rt  r{  Úselect_coordsrÉ  r]   r…  rh  rÏ  ÚilocrÑ  r.   )
ré   rt   r°   r±   r|  ÚcoordsrÀ  rÂ  rÁ  r  s
   &&&&      r^   r~  ÚTable.read_coordinatesW  sÎ   € ð 	×Ñ˜eÔ$ð �‰× Ò Ùô ˜d°uÔHˆ	Ø×(Ñ(Ó*ˆØ×ÑÒ'Ø#,×#3Ñ#3×#:Ñ#:Ö#<‘�˜4Ø×'Ñ'Ø§¡£°F·J±J³LÀ1Õ4Dð (ó �ð    4§9¡9¨V·j±j³lÕ-BÕ#CÀTÓ J× QÑ QÕR’ñ	 $=ô �V %Ô(Ð(r`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   rƒ  r[   r°   r•   r±   r\   )r]   s   "r^   r_   rì  q  s-   € ÷ +Dñ +Dàð+Dð ð	+Dð
 ñ+Dr`   c                óp  € V P                  4        V P                  4       '       g   R# Ve   \        R4      hV P                   Fá  pWP                  8X  g   K  VP
                  '       g   \        RV R24      h\        V P                  P                  V4      pVP                  V P                  4       VP                  WcV V P                  V P                  V P                  R7      pV^,          p\        V P                  P                   V R2R4      p	\#        W�RV	R7      u # 	  \%        RV R	24      h)
zR
return a single column from the table, generally only indexables
are interesting
FNz4read_column does not currently accept a where clausezcolumn [z=] can not be extracted individually; it is not data indexabler§  rM  )ri   r  rÂ  z] not found in the table)r'  rt  rÃ   r¸  ri   rx  r¼   rï  r~   rÃ  r  r  rÕ  r¤   rX   r    rÜ  r2   r  )
ré   rƒ  rt   r°   r±   r»   r  Ú
col_valuesÚcvsrÂ  s
   &&&&&     r^   r…  ÚTable.read_columnq  s  € ð 	×ÑÔð �‰× Ò ÙàÒÜÐRÓSÐSð —”ˆAØŸ™ÖØ×*×*Ð*Ü$Ø" 6 (ð +3ð 3óð ô ˜DŸJ™JŸO™O¨VÓ4�Ø—
‘
˜4Ÿ9™9Ô%ØŸY™YØ˜D�MØ ŸL™LØ!Ÿ]™]ØŸ;™;ð	 'ó �
ð ! •m�Ü §
¡
× 0Ñ 0°V°H¸EÐ2BÀDÓI�Ü˜c°UÀ%ÔHÒHñ' ô* ˜ & Ð)AÐBÓCÐCr`   )	rž   rX   r    rê  r  rŠ  r¤   rš  rë  )Nr†   NNNNNNrb   rZ  r[  )TNNN)6r  r\  r]  r^  r_  rÓ  rÔ  r`  rŠ  r˜  rê   ra  rò  r%  r  r¤  r
  r  r  rD  r  r~   rÂ  rá  r¸  rö  r1  r6  r?  rC  rG  rK  r   r*  r  r  r'  r`  r   rX  rå  r~  r»  r„  rŠ  r¨  Ústaticmethodr•  rË  rÐ  r~  r…  rb  r¼  r½  s   @r^   r9  r9  ¶  sï  ø‡ ñð. €KØ€K�ÓØƒOØ#$€FÐ Ó$Ø€HàƒN÷ò ð* ô-ó ð-õ
õ$õ%ðN ô-ó ð-õ!ð" ôFó ðFð ô%ó ð%ð ñ2ó ð2ð ñó ðð ñ ó ð ð ñ&ó ð&ð ôBó ðBð ô<ó ð<ð ôó ðð ô
ó ð
õ"õ<õ
3õ*õ

õ$õ$õ
Q÷	õð* ñIó ðI÷VT÷l ðD ôó ðõ$=÷Lpðd ô9!ó ð9!÷v5õn÷>)÷4+Dõ +Dr`   r9  c                  ó:   € ] tR tRtRtRtR
R R lltR R ltR	tR# )r7  iŸ  z»
a write-once read-many table: this format DOES NOT ALLOW appending to a
table. writing is a one-time operation the data are stored in a format
that allows for searching the data on disk
r.  Nc               ó    € V ^8„  d   QhRRRR/# rÓ  r\   )r]   s   "r^   r_   ÚWORMTable.__annotate__¨  s$   € ÷ 
Gñ 
Gð ð	
Gð
 ñ
Gr`   c                ó   € \        R4      h)zK
read the indices and the indexing array, calculate offset rows and return
z!WORMTable needs to implement readr.  r/  s   &&&&&r^   rj  ÚWORMTable.read¨  s   € ô "Ð"EÓFÐFr`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rá  ´  s   € ÷ Hñ H dñ Hr`   c                ó   € \        R4      h)z¾
write in a format that we can search later on (but cannot append
to): write out the indices and the values using _write_array
(e.g. a CArray) create an indexing table so that we can search
z"WORMTable needs to implement writer.  r3  s   &&,r^   rF  ÚWORMTable.write´  s   € ô "Ð"FÓGÐGr`   r\   r9  )	r  r\  r]  r^  r_  r!  rj  rF  rb  r\   r`   r^   r7  r7  Ÿ  s    † ñð €J÷
G÷Hñ Hr`   r7  c                  óZ   € ] tR tRtRtRtRR R lltRR R lltR	 R
 ltRR R llt	Rt
R# )rû  i½  ú(support the new appendable table formatsÚ
appendableNc          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	rW   r—   r˜   r´   r•   rœ   r£  rZ   r¡   r\   )r]   s   "r^   r_   ÚAppendableTable.__annotate__Ã  s>   € ÷ 93ñ 93ð ð	93ð ð93ð ð93ð ð93ð 
ñ93r`   c           	     	ób  € V'       g9   V P                   '       d'   V P                  P                  V P                  R 4       V P	                  VVVVVVR7      pVP
                   F  pVP                  4        K  	  VP                   '       gR   VP                  VVVV	R7      pVP                  4        VVR&   VP                  P                  ! VP                  3/ VB  VP                  VP                  n
        VP
                   F  pVP                  Wã4       K  	  VP                  WŠR7       R# )r~   )r¸  rA  r¤  rš   r¤   rž   )r–   r”   rÝ   r¹  r£  )rœ   N)rD  rÚ   rM  rÐ   r¨  r¸  rö  rÐ  r  Úcreate_tabler  rÜ  r  Ú
write_data)ré   rA  r¸  r—   r–   r”   rÝ   rš   r´   r¹  rœ   r¤   rž   r£  r~   r»   Úoptionss   &&&&&&&&&&&&&&   r^   rF  ÚAppendableTable.writeÃ  s  € ÷  ˜$Ÿ.Ÿ.˜.Ø�L‰L×$Ñ$ T§Z¡Z°Ô9ð ×!Ñ!ØØØØ%ØØ%ð "ó 
ˆð —”ˆAØ×ÑÖñ ð ��ˆà×.Ñ.ØØ#Ø%Ø)ð	 /ó ˆGð �O‰OÔà%0ˆG�MÑ"ð �M‰M×&Ò& u§{¡{Ñ>°gÒ>ð !Ÿ:™:ˆ�‰Ôð —”ˆAØ×Ñ˜uÖ-ñ ð 	×Ñ˜ÐÖ2r`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   r´   r•   rœ   r˜   rZ   r¡   r\   )r]   s   "r^   r_   rë  þ  s!   € ÷ 9ñ 9 Jð 9¸ð 9Èñ 9r`   c                óØ  € V P                   P                  pV P                  p. pV'       d}   V P                   Fl  p\	        VP
                  4      P                  ^ R7      p\        V\        P                  4      '       g   KJ  VP                  VP                  RRR7      4       Kn  	  V'       d3   V^ ,          pVR,           F  pWx,          pK  	  VP                  4       pMRpV P                   Uu. uF  qfP                  NK  	  p	p\        V	4      p
V
^8X  g   Q V
4       hV P                   Uu. uF  qfP!                  4       NK  	  ppV Uu. uFW  qÌP#                  \        P$                  ! \        P&                  ! VP(                  4      VP(                  ^,
          4      4      NKY  	  pp. p\+        V4       FS  w  rìV.V P                   W:V,           ,          ,          P,                  O5pVP                  VP/                  V4      4       KU  	  Vf   Rp\        P0                  ! \3        W4      V P                   R7      pWA,          ^,           p\5        V4       Fq  pWá,          p\3        V^,           V,          V4      pVV8¼  d    R# T P7                  TV	 Uu. uF  qfVV NK	  	  upVe   VVV MRV Uu. uF  qÌVV NK	  	  upR	7       Ks  	  R# u upi u upi u upi u upi u upi )
zP
we form the data into a 2-d including indexes,values,mask write chunk-by-chunk
rÆ  Úu1Fr¥  r¶   Nrg  r¢  )Úindexesr¶  rÑ  )rÂ  r‹  r  rë  r6   r  rÀ  rg   rÈ  rÉ  r—   r°  r­  rê  ré  rs   rÙ  Ú	transposeÚrollÚarangerÊ  r‰  rR  Úreshaper@  rh  rÉ  Úwrite_data_chunk)ré   r´   rœ   r‹  rr  Úmasksr»   r¶  rf  rô  ÚnindexesrÑ  r×  ÚbvaluesrŒ  Ú	new_shapeÚrowsÚchunksÚstart_iÚend_is   &&&                 r^   rî  ÚAppendableTable.write_dataþ  sg  € ð —
‘
× Ñ ˆØ×#Ñ#ˆð ˆßØ×%Ô%�ô ˜AŸF™F“|×'Ñ'¨QÐ'Ó/�Ü˜d¤B§J¡J×/Ô/Ø—L‘L §¡¨T¸ Ó!>Ö?ñ &÷ Ø˜•8ˆDØ˜2—Y�Y�Ø•x’ñ à—:‘:“<‰DàˆDð '+§o¢oÓ6¡o —9”9¡oˆÐ6Ü�w“<ˆØ˜1Œ}Ð&˜hÓ&ˆ}ð *.×)9Ò)9Ó:Ñ)9 A—+‘+–-Ñ)9ˆÐ:ÙOUÓVÉvÈ!—+‘+œbŸgšg¤b§i¢i°·±Ó&7¸¿¹À!½ÓDÖEÉvˆÐVØˆÜ˜fÖ%‰DˆAØÐG §¡¨E¸Qµ,Õ,?Õ!@×!FÑ!FÑGˆIØ�N‰N˜1Ÿ9™9 YÓ/Ö0ñ &ð
 ÒØˆIä�xŠxœ˜IÓ-°T·Z±ZÔ@ˆØÕ# aÕ'ˆÜ�v–ˆAØ•mˆGÜ˜˜Q� )Õ+¨UÓ3ˆEØ˜%ÔÚà×!Ñ!ØÙ3:Ó;±7¨a˜7 5Ó)±7Ñ;Ø,0Ò,<�T˜' %Ñ(À$Ù29Ó:±'¨Q˜' %Ó(±'Ñ:ð	 "ö ó ùò' 7ùò ;ùÚVùò( <ùâ:s   Ã3KÄ0KÅAKÊK"Ê8K'c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
rW   rþ  r·  rô  zlist[np.ndarray]r¶  znpt.NDArray[np.bool_] | NonerÑ  rZ   r¡   r\   )r]   s   "r^   r_   rë  9  s<   € ÷ *ñ *àð*ð "ð*ð +ð	*ð
 !ð*ð 
ñ*r`   c                óè  € V F,  p\         P                  ! VP                  4      '       d   K+   R# 	  V^ ,          P                  ^ ,          pV\        V4      8w  d"   \         P                  ! W`P
                  R7      pV P
                  P                  p\        V4      p\        V4       F  w  ršW¡Wy,          &   K  	  \        V4       F  w  r•WQWyV,           ,          &   K  	  VeE   VP                  4       P                  \        RR7      ( pVP                  4       '       g	   W,          p\        V4      '       d8   V P                  P                  V4       V P                  P                  4        R# R# )z²
Parameters
----------
rows : an empty memory space where we are putting the chunk
indexes : an array of the indexes
mask : an array of the masks
values : an array of the values
Nr¢  Fr¥  )rÈ  r˜  rR  rs   r@  rÂ  r‹  r‰  r­  r°  r˜   rÀ  r~   r—   r]  )ré   rþ  rô  r¶  rÑ  r×  rr  r‹  rû  rŒ  r  rf  s   &&&&&       r^   rù  Ú AppendableTable.write_data_chunk9  s  € ó  ˆAÜ—7’7˜1Ÿ7™7×#Ô#Úñ ð ˜•
× Ñ  Õ#ˆØ”C˜“IÔÜ—8’8˜E¯©Ô4ˆDØ—
‘
× Ñ ˆÜ�w“<ˆô   Ö(‰FˆAØ �•‹Nñ )ô ˜fÖ%‰DˆAØ()�˜8•|Õ$Ó%ñ &ð ÒØ—‘“×$Ñ$¤T°Ð$Ó6Ð6ˆAØ—5‘5—7’7Ø•w�äˆt�9Š9Ø�J‰J×Ñ˜dÔ#Ø�J‰J×ÑÖñ r`   c               ó$   € V ^8„  d   QhRRRRRR/# r6  r\   )r]   s   "r^   r_   rë  e  s$   € ÷ :ñ :Ø!+ð:Ø:Dð:à	ñ:r`   c                	óJ  € Ve   \        V4      '       g†   Vf:   Vf6   V P                  pV P                  P                  V P                  RR7       V# Vf   V P                  pV P
                  P                  W#R7      pV P
                  P                  4        V# V P                  4       '       g   R # V P
                  p\        WW#R7      pVP                  4       p\        VRR7      P                  4       p\        V4      p	V	'       Ed   VP                  4       p
\        Wª^8„  ,          P                  4      pV'       g   ^ .pVR,          V	8w  d   VP!                  V	4       V^ ,          ^ 8w  d   VP#                  ^ ^ 4       VP%                  4       p\'        V4       Fg  pVP)                  \+        WÜ4      4      pVP                  WîP                  ^ ,          ,          WîP                  R,          ,          ^,           R7       TpKi  	  V P
                  P                  4        V	# )NTr«  rt  Fr¥  r¨  )rs   rr  rÚ   rM  rÐ   r~   Úremove_rowsr]  rt  r{  rÕ  r2   Úsort_valuesÚdiffrq   r™   r—   rÈ  r›  ÚreversedrÐ  rÉ  )ré   rt   r°   r±   rr  r~   r|  rÑ  Úsorted_seriesÚlnr
  rÅ   ÚpgrG  rþ  s   &&&&           r^   r²  ÚAppendableTable.deletee  sÆ  € ð Š=¤ E§
¢
ØŠ} ¢ØŸ
™
�Ø—‘×(Ñ(¨¯©¸tÐ(ÔDð ˆLð	 ’<ØŸ:™:�DØŸ
™
×.Ñ.°UÐ.ÓF�Ø—
‘
× Ñ Ô"ØˆLð �‰× Ò Ùð —
‘
ˆÜ˜d°ÔBˆ	Ø×(Ñ(Ó*ˆô ˜v¨EÔ2×>Ñ>Ó@ˆÜ�Óˆçˆ2à ×%Ñ%Ó'ˆDÜ˜$ a™x�.×.Ñ.Ó/ˆF÷ Ø˜�ð �b�z˜RÔØ—‘˜bÔ!ð �a�y˜AŒ~Ø—‘˜a Ô#ð —‘“ˆBÜ˜fÖ%�Ø$×)Ñ)¬%°«,Ó7�Ø×!Ñ!ØŸz™z¨!�}Õ-°D¿¹ÀB½Õ4HÈ1Õ4Lð "ô ð ’ñ &ð �J‰J×ÑÔð ˆ	r`   r\   )NFNNNNNNFNNTrY  rZ  )r  r\  r]  r^  r_  r!  rF  rî  rù  r²  rb  r\   r`   r^   rû  rû  ½  s&   † Ù2à€J÷93÷v9õv*÷X:ó :r`   rû  c                  ór   € ] tR tRt$ RtRtRt^t]t	R]
R&   ]R R l4       t]R	 R
 l4       tRR R lltRtR# )r5  i¢  rè  r"  r,  rÕ  rÖ  c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   Ú!AppendableFrameTable.__annotate__«  s   € ÷ ,ñ ,˜tñ ,r`   c                	óB   € V P                   ^ ,          P                  ^8H  # rÝ  )rê  rŽ  rð   s   &r^   r1  Ú"AppendableFrameTable.is_transposedª  s   € à�‰˜qÕ!×&Ñ&¨!Ñ+Ð+r`   c               ó   € V ^8„  d   QhRR/# r�  r\   )r]   s   "r^   r_   r  ¯  s   € ÷ ñ ¨ñ r`   c                ó.   € V'       d   VP                   pV# )zthese are written transposed)rl  rƒ  s   &&&r^   r„  ÚAppendableFrameTable.get_object®  s   € ÷ Ø—%‘%ˆCØˆ
r`   Nc               ó    € V ^8„  d   QhRRRR/# rÓ  r\   )r]   s   "r^   r_   r  µ  s$   € ÷ dñ dð ð	dð
 ñdr`   c                	ó	  € V P                  V4       V P                  4       '       g   R # V P                  WVR7      p\        V P                  4      '       d5   V P
                  P                  V P                  ^ ,          ^ ,          / 4      M/ p\        V P                  4       UUu. uF  w  rxW€P                  ^ ,          J g   K  VNK!  	  p	pp\        V	4      ^8X  g   Q hV	^ ,          p
WZ,          ^ ,          p. p\        V P                  4       EFƒ  w  r}WÐP                  9  d   K  WW,          w  rïVP                  R4      R8w  d   \        V4      pM\        P                  ! V4      pVP                  R4      pVe   VP                  VRR7       V P                  '       d   TpTp\        V\!        VRR 4      R7      pM&VP"                  p\        V\!        VRR 4      R7      pTpVP$                  ^8X  dE   \'        V\(        P*                  4      '       d%   VP-                  ^VP.                  ^ ,          34      p\'        V\(        P*                  \0        34      '       d    \3        VP"                  VVR	R
7      pM?\'        V\        4      '       d   \3        VVVR7      pM\2        PD                  ! V.VVR7      p\9        4       '       d   VPF                  PH                  R8X  gK   VPJ                  VPF                  8H  PM                  4       '       g   Q VPJ                  VPF                  34       hV FK  p\!        V PN                  PP                  V R2R 4      pVR9   g   K0  VV,          PS                  V4      VV&   KM  	  VPU                  V4       EK†  	  \        V4      ^8X  d   V^ ,          pM\W        V^R7      p\Y        WW4R7      pV P[                  VVVR7      pV# u uppi   \4         d�   pT P6                  R8X  dv   \9        4       '       df   \;        T4      P=                  R4      '       dF   \>        '       d:   \3        TP"                  TTR	\A        R\(        PB                  R7      R7      p R p?EL½h R p?ii ; i)Nr|  r  r/   r‹  T©Úinplaceri   rh   FrÒ  rÀ  rÁ  rÃ  rÄ  )r²   r™   r  rÂ  rÓ  r¦  rM  rÆ  )r|  r²   )r[   rð  ).r'  rt  r~  rs   rš  r  rÿ   r‰  r¸  rê  rë  r.   r/   Úfrom_tuplesÚ	set_namesr1  rï  rl  rÊ  rg   rÈ  rÉ  rø  rR  r8   r,   rÍ  r    r   r[   rS  r   r3   rÎ  Ú_from_arraysrÂ  rã  ÚdtypesrÀ  r~   rÜ  r°  r—   r5   r{  rË  )ré   rt   r²   r°   r±   rO  r  rŒ  rÖ  ÚindsÚindr™   Úframesr»   Ú
index_valsré  rÃ  r‹  rÑ  Úindex_Úcols_rÙ  r³  rƒ  rÂ  r|  s   &&&&&                     r^   rj  ÚAppendableFrameTable.readµ  s§  € ð 	×Ñ˜eÔ$ð �‰× Ò Ùà—‘ uÀ�ÓEˆô �4×&Ñ&×'Ò'ð �I‰I�M‰M˜$×-Ñ-¨aÕ0°Õ3°RÔ8àð 	ô  )¨¯©Ô3ÔPÑ3‘e�a°r¿_¹_ÈQÕ=OÐ7O—�Ñ3ˆÑPÜ�4‹y˜AŒ~Ðˆ~Ø�1�gˆà•˜A•ˆàˆÜ˜dŸi™i×(‰DˆAØ×(Ñ(Ô(ÙØ"(¥)ÑˆJð �x‰x˜Ó <Ô/Ü˜ZÓ(‘ä!×-Ò-¨jÓ9�à—H‘H˜WÓ%ˆEØÒ Ø—‘˜u¨d�Ô3à×!×!Ð!Ø �Ø�Ü˜e¬'°%¸ÀÓ*FÔG‘à Ÿ™�Ü˜u¬7°5¸&À$Ó+GÔH�Ø�ð �{‰{˜aÔ¤J¨v´r·z±z×$BÒ$BØŸ™¨¨F¯L©L¸­OÐ(<Ó=�ä˜&¤2§:¡:¬}Ð"=×>Ò>ðÜ" 6§8¡8°UÀ&ÈuÔU‘Bô" ˜F¤E×*Ò*Ü˜v¨u¸FÔC‘ô ×+Ò+¨V¨H¸eÈ6ÔR�Ü&×(Ò(¨V¯\©\×->Ñ->À#Ô-EØŸ	™	 V§\¡\Ñ1×6Ñ6×8Ò8ÐS¸2¿9¹9ÀfÇlÁlÐ:SÓSÐ8ó  �Ü §
¡
× 0Ñ 0°V°H¸EÐ2BÀDÓI�ØÐ-Ö-Ø!# F¥×!2Ñ!2°5Ó!9�B�v“Jñ  ð �M‰M˜"×ñ{ )ô~ ˆv‹;˜!ÔØ˜•‰Bä˜ QÔ'ˆBä˜d°uÔHˆ	à×Ñ˜r¨YÀÐÓHˆØˆ	ùó] QøôN *ô àŸ™ Ô6Ü.×0Ò0Ü ›H×-Ñ-Ð.F×GÒGß'›Kä&Ø"ŸH™HØ$)Ø"(Ø!&Ü"-°hÌÏÉÔ"Pôžð ûðús1   Â&O!ÃO!É"O'Ï'Q>Ï2AQ9Ð?3Q9Ñ8Q9Ñ9Q>r\   r9  )r  r\  r]  r^  r_  rÓ  r!  rÊ  r,   rÖ  r`  ra  r1  r»  r„  rj  rb  r\   r`   r^   r5  r5  ¢  sQ   ‡ Ù2à€KØ#€JØ€DØ)2€HÐ&Ó2àô,ó ð,ð ôó ð÷dó dr`   r5  c                  óˆ   a € ] tR tRtRtRtRt^t]t	]
R R l4       t]R R l4       tRR	 V 3R
 llltRR V 3R llltRtV ;t# )r3  i  rè  r)  r*  c               ó   € V ^8„  d   QhRR/# rV  r\   )r]   s   "r^   r_   Ú"AppendableSeriesTable.__annotate__%  r/  r`   c                	ó   € R # rY  r\   rð   s   &r^   r1  Ú#AppendableSeriesTable.is_transposed$  r7  r`   c               ó   € V ^8„  d   QhRR/# r�  r\   )r]   s   "r^   r_   r)  )  s   € ÷ ñ ¨ñ r`   c                	ó   € V# rb   r\   rƒ  s   &&&r^   r„  Ú AppendableSeriesTable.get_object(  s   € àˆ
r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   r)  -  s   € ÷ Lñ L¸ñ Lr`   c                óÚ   <€ \        V\        4      '       g(   VP                  ;'       g    RpVP                  V4      p\        SV `  ! RRVRVP                  P                  4       /VB  R# )ú+we are going to write this as a frame tablerÑ  rA  rž   Nr\   )rg   r,   ri   Úto_framerC  rF  r²   r°  )ré   rA  rž   rË   ri   rD  s   &&&, €r^   rF  ÚAppendableSeriesTable.write-  sU   ø€ ä˜#œy×)Ò)Ø—8‘8×'Ð'˜xˆDØ—,‘,˜tÓ$ˆCÜ‰ŠÑK˜#ÐK¨C¯K©K×,>Ñ,>Ó,@ÐKÀFÔKr`   c               ó$   € V ^8„  d   QhRRRRRR/# r¿  r\   )r]   s   "r^   r_   r)  4  s*   € ÷ ñ ð ð	ð
 ðð 
ñr`   c                	ó˜  <€ V P                   pVeX   V'       dP   \        V P                  \        4      '       g   Q hV P                   F  pWb9  g   K  VP	                  ^ V4       K  	  \
        SV `  WW4R7      pV'       d   VP                  V P                  RR7       VP                  R,          pVP                  R8X  d   R Vn	        V# )Nr�  Tr  rÑ  )r¤  rs  )
r
  rg   rŠ  rq   rÈ  rC  rj  Ú	set_indexrÖ  ri   )	ré   rt   r²   r°   r±   r
  r<  rn  rD  s	   &&&&&   €r^   rj  ÚAppendableSeriesTable.read4  s£   ø€ ð ×,Ñ,ˆØÒ§>Ü˜dŸk™k¬4×0Ò0Ð0Ð0Ø—[”[�ØÖ#Ø—N‘N 1 aÖ(ñ !ô ‰G‰L˜u¸UˆLÓNˆßØ�K‰K˜Ÿ™¨TˆKÔ2à�F‰F�4�Lˆð �6‰6�XÔØˆAŒFØˆr`   r\   rb   r9  )r  r\  r]  r^  r_  rÓ  r!  rÊ  r2   rÖ  ra  r1  r»  r„  rF  rj  rb  r¼  r½  s   @r^   r3  r3    s[   ø† Ù2à €KØ$€JØ€DØ€Hàôó ðð ôó ð÷Lò L÷÷ ð r`   r3  c                  ó:   a € ] tR tRtRtRtRtR V 3R lltRtV ;t	# )r4  iM  rè  r)  r+  c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   Ú'AppendableMultiSeriesTable.__annotate__T  s   € ÷ ,ñ , dñ ,r`   c                ó8  <€ VP                   ;'       g    RpV P                  V4      w  q@n        \        V P                  \        4      '       g   Q h\	        V P                  4      pVP                  V4       \        V4      Vn        \        SV `$  ! RRV/VB  R# )r1  rÑ  rA  Nr\   )
ri   r  rŠ  rg   rq   r—   r.   r²   rC  rF  )ré   rA  rË   ri   ÚnewobjrÃ  rD  s   &&,   €r^   rF  Ú AppendableMultiSeriesTable.writeT  sy   ø€ à�x‰x×#Ð#˜8ˆØ"×6Ñ6°sÓ;Ñˆ”Ü˜$Ÿ+™+¤t×,Ò,Ð,Ð,Ü�D—K‘KÓ ˆØ�‰�DÔÜ˜t›ˆŒÜ‰ŠÑ+˜&Ð+ FÔ+r`   ©rŠ  )
r  r\  r]  r^  r_  rÓ  r!  rF  rb  r¼  r½  s   @r^   r4  r4  M  s   ø† Ù2à €KØ)€J÷,ö ,r`   r4  c                  ó„   € ] tR tRt$ RtRtRt^t]t	R]
R&   ]R R l4       t]R	 4       tR
 R lt]R 4       tR R ltRtR# )r2  i_  z:a table that read/writes the generic pytables table formatr"  r#  zlist[Hashable]rŠ  c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   ÚGenericTable.__annotate__i  s   € ÷  ñ  ˜Sñ  r`   c                	ó   € V P                   # rb   )rÓ  rð   s   &r^   rë  ÚGenericTable.pandas_typeh  s   € à×ÑÐr`   c                	óX   € \        V P                  R R4      ;'       g    V P                  # r  r  rð   s   &r^   r  ÚGenericTable.storablel  s!   € ä�t—z‘z 7¨DÓ1×?Ð?°T·Z±ZÐ?r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rA  p  s   € ÷ ?ñ ?˜4ñ ?r`   c                ór  € . V n         RV n        . V n        V P                   Uu. uF  qP                  '       g   K  VNK  	  upV n        V P                   Uu. uF  qP                  '       d   K  VNK  	  upV n        V P                   Uu. uF  qP                  NK  	  upV n        R# u upi u upi u upi )ra  N)	rš  r¤   rŠ  rX  rw  rê  rë  ri   rž   r5  s   & r^   r  ÚGenericTable.get_attrsp  sŠ   € à ˆÔØˆŒØˆŒà&*§o¢oÓK¡o ×9JÕ9JŸ1˜1¡oÑKˆŒØ'+§¢ÓP¡ !×>OÕ>OŸA˜A¡ÑPˆÔØ-1×-=Ò-=Ó>Ñ-=¨ŸVœVÑ-=Ñ>ˆÖùò LùÚPùÚ>s   ¤B*¼B*ÁB/Á0B/ÂB4c                ó˜  € V P                   pV P                  R4      pVe   RMRp\        R^ V P                  W2R7      pV.p\	        VP
                  4       Fo  w  rg\        V\        4      '       g   Q h\        W4      pV P                  V4      pVe   RMRp\        VVV.VV P                  VVR7      p	VP                  V	4       Kq  	  V# )z0create the indexables from the table descriptionr™   Nr&  )ri   rŽ  r~   rÓ   r‚  )ri   r~  rÑ  r}  r~   rÓ   r‚  )rá  r*  r2  r~   r‰  Ú_v_namesrg   r[   rï  rÐ  r—   )
ré   r¼  ri  rÓ   ro  rn  rŒ  r<  ro  rÜ  s
   &         r^   rX  ÚGenericTable.indexablesz  s×   € ð ×Ñˆð
 ×Ñ Ó(ˆØš^‰z°ˆÜ#Ø˜q¨¯
©
¸ô
ˆ	ð IRÀ{ˆä˜aŸj™jÖ)‰DˆAÜ˜a¤×%Ò%Ð%Ð%ä˜1“=ˆDØ×#Ñ# AÓ&ˆBØ!#¢‘:°TˆDÜ(ØØØ�sØØ—j‘jØØôˆBð ×Ñ˜rÖ"ñ *ð" Ðr`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rA  ž  s   € ÷ Eñ E ñ Er`   c                	ó   € \        R 4      h)zcannot write on a generic tabler.  )ré   rË   s   &,r^   rF  ÚGenericTable.writež  s   € Ü!Ð"CÓDÐDr`   )rž   rê  rŠ  r¤   rš  rë  N)r  r\  r]  r^  r_  rÓ  r!  rÊ  r,   rÖ  r`  ra  rë  r  r  r   rX  rF  rb  r\   r`   r^   r2  r2  _  sm   ‡ ÙDà€KØ €JØ€DØ€HØÓàô ó ð ð ñ@ó ð@õ?ð ñ ó ð ÷FEñ Er`   r2  c                  ó’   a € ] tR tRtRtRt]t^t]	P                  ! R4      t]R R l4       tRR V 3R llltRR	 V 3R
 llltRtV ;t# )r6  i¢  za frame with a multi-indexr-  z^level_\d+$c               ó   € V ^8„  d   QhRR/# rí   r\   )r]   s   "r^   r_   Ú&AppendableMultiFrameTable.__annotate__«  s   € ÷ "ñ " #ñ "r`   c                	ó   € R # )Úappendable_multir\   rð   s   &r^   rò  Ú*AppendableMultiFrameTable.table_type_shortª  s   € á!r`   c               ó   € V ^8„  d   QhRR/# rR  r\   )r]   s   "r^   r_   rQ  ¯  s   € ÷ 
Dñ 
D¸ñ 
Dr`   c                	óL  <€ Vf   . pM VRJ d   VP                   P                  4       pV P                  V4      w  qn        \	        V P                  \
        4      '       g   Q hV P                   F  pWB9  g   K  VP                  ^ V4       K  	  \        SV `   ! RRVRV/VB  R # )NTrA  rž   r\   )	r²   r°  r  rŠ  rg   rq   rÈ  rC  rF  )ré   rA  rž   rË   r<  rD  s   &&&, €r^   rF  ÚAppendableMultiFrameTable.write¯  s“   ø€ ØÒØ‰LØ˜TÓ!ØŸ;™;×-Ñ-Ó/ˆLØ×3Ñ3°CÓ8ÑˆŒ[Ü˜$Ÿ+™+¤t×,Ò,Ð,Ð,Ø—”ˆAØÖ$Ø×#Ñ# A qÖ)ñ ô 	‰ŠÑC˜#ÐC¨LÐC¸FÔCr`   c               ó$   € V ^8„  d   QhRRRRRR/# rÐ  r\   )r]   s   "r^   r_   rQ  »  s*   € ÷ ñ ð ð	ð
 ðð 
ñr`   c                	ó6  <€ \         SV `  WW4R 7      pVP                  V P                  4      pVP                  P                  VP                  P                   Uu. uF'  q`P                  P                  V4      '       d   RMTNK)  	  up4      Vn        V# u upi )r�  N)	rC  rj  r6  rŠ  r™   r  r‹  Ú
_re_levelsÚsearch)ré   rt   r²   r°   r±   rÙ  ri   rD  s   &&&&&  €r^   rj  ÚAppendableMultiFrameTable.read»  s   ø€ ô ‰W‰\ ¸eˆ\ÓOˆØ�\‰\˜$Ÿ+™+Ó&ˆð —8‘8×%Ñ%ØHJÏÉÏÊÓWÉÀ—_‘_×+Ñ+¨D×1Ò1‰T°tÒ;ÉÑWó
ˆŒð ˆ	ùò Xs   Á-Br>  rb   r9  )r  r\  r]  r^  r_  r!  r,   rÖ  rÊ  ÚreÚcompilerZ  ra  rò  rF  rj  rb  r¼  r½  s   @r^   r6  r6  ¢  sP   ø† Ù$à(€JØ€HØ€DØ—’˜NÓ+€Jàô"ó ð"÷
Dò 
D÷÷ ð r`   r6  c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   rA  r,   rŽ  rO   rÊ  r.   rZ   r\   )r]   s   "r^   r_   r_   Í  s,   € ÷ ñ Ø	ðØ!ðØ+0ðàñr`   c                óü  € V P                  V4      p\        V4      pVe   \        V4      pVe   VP                  V4      '       d   VP                  V4      '       d   V # \        VP                  4       4      pVe+   \        VP                  4       4      P	                  VRR7      pVP                  V4      '       g?   \        R R 4      .V P                  ,          pW%V&   V P                  \        V4      ,          p V # )NF)Úsort)	r¾  r@   ÚequalsÚuniquerÒ  ÚslicerÊ  rÓ  rr   )rA  rŽ  rÊ  r   rÖ  Úslicers   &&&&  r^   r”  r”  Í  sÏ   € ð 
�‰�tÓ	€BÜ˜&Ó!€Fð ÒÜ˜UÓ#ˆØŠ˜Ÿ™ u×-Ò-°6·=±=À×3DÒ3DØˆ
ä˜&Ÿ-™-›/Ó*€FØÒÜ˜eŸl™l›nÓ-×:Ñ:¸6ÈÐ:ÓNˆØ�=‰=˜×ÒÜ',¨T°4Ó'8Ð&9¸C¿H¹HÕ&DˆØˆt‰Ø�g‰g”e˜F“mÕ$ˆØ€Jr`   c               ó    € V ^8„  d   QhRRRR/# )rW   r€  r   rZ   zstr | tzinfor\   )r]   s   "r^   r_   r_   ç  s   € ÷ ñ �ð ˜<ñ r`   c                ó2   € \         P                  ! V 4      pV# )z+for a tz-aware type, return an encoded zone)r   Úget_timezone)r€  Úzones   & r^   r€  r€  ç  s   € ä×!Ò! "Ó%€DØ€Kr`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rW   rÑ  znpt.NDArray[np.int64]r€  zstr | tzinfo | NoneÚdatetime64_dtyper[   rZ   r8   r\   )r]   s   "r^   r_   r_   í  s,   € ÷ ñ Ø!ðØ':ðØNQðàñr`   c                óØ   € V P                   R8X  g   Q V P                   4       h\        P                  ! V4      w  r4\        RV4      p\	        WR7      p\
        P                  ! WR7      pV# )zÅ
Coerce the values to a DatetimeArray with appropriate tz.

Parameters
----------
values : ndarray[int64]
tz : str, tzinfo, or None
datetime64_dtype : str, e.g. "datetime64[ns]", "datetime64[25s]"
rº  rR   )r€  r³  r¢  )rÂ  rÈ  Údatetime_datar   r:   r8   Ú_from_sequence)rÑ  r€  rk  r³  rñ  rÂ  rN  s   &&&    r^   r©  r©  í  sa   € ð �<‰<˜4ÔÐ- §¡Ó-Ðô ×ÒÐ/Ó0�G€DÜ�
˜DÓ!€Dô ˜2Ô)€EÜ
×
&Ò
& vÔ
;€CØ€Jr`   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	rW   ri   r[   r™   r.   rX   r    rZ   rv  r\   )r]   s   "r^   r_   r_     s6   € ÷ =Lñ =L˜ð =L Uð =L°cð =LÀ3ð =LÈ8ñ =Lr`   c                óÔ  € \        V \        4      '       g   Q hVP                  p\        V4      w  rV\	        V4      p\
        P                  V4      p\        P                  ! VP                  R 4      '       g7   \        VP                  4      '       g   \        VP                  4      '       d)   \        V VVV\        VRR4      \        VRR4      VR7      # \        V\        4      '       d   \        R4      h\        P                   ! VRR7      p	\"        P$                  ! V4      p
V	R8X  di   \"        P$                  ! V
 Uu. uF  q»P'                  4       NK  	  up\"        P(                  R	7      p\        WR\+        4       P-                  4       VR
7      # V	R8X  dJ   \/        W¢V4      pVP                  P0                  p\        V VR\+        4       P3                  V4      VR
7      # V	R9   d   \        WWxVR7      # \        V\"        P4                  4      '       d   VP                  \6        8X  g   Q hVR8X  g   Q V4       h\+        4       P9                  4       p\        WWxVR
7      # u upi )Úiur  Nr€  )rÑ  rã  r}  r  r€  r�  zMultiIndex not supported here!Fr¥  r   r¢  )r�  rð  )rÑ  rã  r}  r�  r¡  )ÚintegerÚfloating)rg   r[   ri   r[  r\  r¿  rp  r   rÌ  rÂ  r&   r"   rv  rï  r/   rÃ   r°  rÈ  rª  Ú	toordinalÚint32rŒ   Ú	Time32ColÚ_convert_string_arrayr‡  rñ  rÉ  r¡  rª  )ri   r™   rX   r    r�  rµ  r]  rã  ro  r·  rÑ  r×  r‡  s   &&&&         r^   r~  r~    s  € Ü�dœC× Ò Ð Ð à—‘€Jô 5°UÓ;Ñ€IÜ˜*Ó%€DÜ×%Ñ% iÓ0€Dô 	�Š˜Ÿ™ T×*Ò*Ü˜uŸ{™{×+Ò+Ü˜Ÿ™×%Ò%ô
 ØØØØÜ˜ ¨Ó-Ü�u˜d DÓ)Ø!ô
ð 	
ô �%œ×$Ò$ÜÐ8Ó9Ð9ä—O’O E°%Ô8€Mô �ZŠZ˜Ó€Fà˜ÔÜ—J’J±vÓ>±v°!§¡¦±vÑ>ÄbÇhÁhÔOˆ	ÜØ˜V¤W£Y×%8Ñ%8Ó%:Àzô
ð 	
ð 
˜(Ô	"Ü)¨&¸FÓCˆ	Ø—?‘?×+Ñ+ˆÜØØØÜ‹I×Ñ Ó)Ø!ô
ð 	
ð 
Ð1Ô	1ÜØ¨ÀJô
ð 	
ô ˜)¤R§Z¡Z×0Ò0°Y·_±_ÌÔ5NÐNÐNØ�xÔÐ% Ó%ÐÜ‹y×#Ñ#Ó%ˆÜ˜¨À
ÔKÐKùò/  ?s   ÅI%c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   rã  r[   rX   r    rZ   znp.ndarray | Indexr\   )r]   s   "r^   r_   r_   E  s)   € ÷ ñ  ð °ð ¸Sð ÐEWñ r`   c           	     óT  € VP                  R 4      '       d6   VR 8X  d   \        V RR7      pV# \        V P                  V4      RR7      p V# VP                  R4      '       d6   VR8X  d   \        V RR7      pV# \        V P                  V4      RR7      p V# VR8X  dD    \        P
                  ! V  Uu. uF  p\        P                  ! V4      NK  	  up\        R7      pV# VR9   d   \        P
                  ! V 4      pV# VR9   d   \        V RW#R7      pV# VR	8X  d    \        P
                  ! V ^ ,          4      pV# \        R
V 24      hu upi   \         dK    \        P
                  ! T  Uu. uF  p\        P                  ! T4      NK  	  Mu upi up\        R7      p T# i ; i)rž  Fr¥  r   r   r¢  rð  Nr§  r¡  zunrecognized index type )rr  Úfloatr˜   )rý  r-   r±  r4   rÈ  rª  r   r«  r¡  r¼   r¬  r´  )r  rã  rX   r    r™   r×  s   &&&&  r^   r™  r™  E  s–  € ð ‡��|×$Ò$Ø�<Ôä! $¨UÔ3ˆEð0 €Lô- " $§)¡)¨D£/¸Ô>‰Eð, €Lð+ 
�‰˜×	'Ò	'Ø�=Ô ä" 4¨eÔ4ˆEð$ €Lô! # 4§9¡9¨T£?¸Ô?‰Eð  €Lð 
�Œð	TÜ—J’J¹TÓB¹T¸¤× 0Ò 0°Ö 3¹TÑBÌ&ÔQˆEð €Lð 
Ð-Ô	-Ü—
’
˜4Ó ˆð €Lð 
�(Ô	Ü'Ø˜$¨ô
ˆð €Lð	 
�Ô	Ü—
’
˜4 �7Ó#ˆð €Lô Ð3°D°6Ð:Ó;Ð;ùò  CøÜô 	TÜ—J’J¹tÓD¹t¸!¤× 2Ò 2°1Ö 5ºtùÔDÌFÔS‰Eð €Lð	Tús0   Â!E Â5EÃE ÅE ÅF'Å1F
ÆF'Æ&F'c               ó$   € V ^8„  d   QhRRRRRR/# )rW   ri   r[   rü  rN   r²   r5  r\   )r]   s   "r^   r_   r_   f  s+   € ÷ Kñ KØ
ðKàðKð ñKr`   c                ó$  € \        VP                  \        4      '       d   VP                  4       pVP                  \        8w  d   V# \        \        P                  V4      pVP                  P                  p\        P                  ! VR R7      p	V	R8X  d   \        R4      hV	R8X  d   \        R4      hV	R8X  g
   VR8X  g   V# \        V4      p
VP                  4       pWKV
&   V'       d<   V
P                  4       '       d&   \        V4      VP                   8”  d   \#        R4      h\        P                  ! VR R7      p	V	R8w  dz   \%        VP&                  ^ ,          4       FY  pW¼,          p\        P                  ! VR R7      p	V	R8w  g   K,  \        V4      V8”  d	   W|,          MR	V 2p\        R
V RV	 R24      h	  \)        WµV4      P+                  VP&                  4      pVP                   p\        V\,        4      '       d>   \/        VP1                  V 4      ;'       g    VP1                  R4      ;'       g    ^ 4      p\3        T;'       g    ^ V4      pVe   VP5                  V4      pVe
   VV8”  d   TpVP7                  RV 2R R7      pV# )Fr¥  r   z+[date] is not implemented as a table columnr<  z>too many timezones in this block, create separate data columnsrð  r¡  z8NaN representation is too large for existing column sizezNo.r  z2]
because its data contents are not [string] but [r  rÑ  z|Sr¥  )rg   rÂ  r3   r«  r¡  r   rÈ  rÉ  ri   r   r°  rÃ   r6   r  r¯  rs   r‡  r¼   rÉ  rR  rw  rø  r½  rn   rÿ   rÏ  rý  r°  )ri   rü  r‘  rš   r¤   rX   r    r²   r]  r·  r¶  r  rŒ  rå  Úerror_column_labelr¥  r‡  Úecis   &&&&&&&&          r^   r—  r—  f  sF  € ô �'—-‘-¤×-Ò-Ø×"Ñ"Ó$ˆØ‡}�}œÔØˆä”2—:‘:˜wÓ'€Gà—‘×#Ñ#€JÜ—O’O G°EÔ:€Mà˜ÔÜÐEÓFÐFØ˜
Ô"ô ØLó
ð 	
ð ˜XÔ%¨°xÔ)?Øˆä�‹=€DØ�<‰<‹>€DØˆ�Jç˜Ÿ™Ÿ
š
¤s¨7£|°l×6KÑ6KÔ'KÜÐSÓTÐTô —O’O D°Ô7€MØ˜Ô ô �t—z‘z !•}Ö%ˆAØ•'ˆCÜŸOšO¨C¸Ô>ˆMØ Ö(Ü36°w³<À!Ô3C W¦ZÈ3ÈqÈcÈÐ"ÜØ3Ð4FÐ3Gð Hà%� nð6óð ñ &ô +¨4¸6ÓB×JÑJÈ4Ï:É:ÓV€NØ×&Ñ&€Hô �,¤×%Ò%Ü˜<×+Ñ+¨DÓ1×TÐT°\×5EÑ5EÀhÓ5O×TÐTÐSTÓUˆÜ�<×$Ð$ 1 hÓ/€Hð ÒØ×'Ñ'¨Ó1ˆØŠ?˜s Xœ~ØˆHà#×*Ñ*¨R°¨z¨?ÀÐ*ÓG€NØÐr`   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©rW   r  r·  rX   r[   r    rZ   r\   )r]   s   "r^   r_   r_   ´  s(   € ÷ ñ  
ð °cð À3ð È:ñ r`   c                ó€  € \        V 4      '       dY   \        V P                  4       RRR7      P                  P	                  W4      P
                  P                  V P                  4      p \        V P                  4       4      p\        ^\        P                  ! V4      4      p\        P                  ! V RV 2R7      p V # )zð
Take a string-like that is object dtype and coerce to a fixed size string type.

Parameters
----------
data : np.ndarray[object]
encoding : str
errors : str
    Handler for encoding errors.

Returns
-------
np.ndarray[fixed-length-string]
Fr¡  )r  rÂ  ÚSr¢  )rs   r2   r­  r[   Úencoder²  rø  rR  r!   rÏ  Ú
libwritersÚmax_len_string_arrayrÈ  rª  )r  rX   r    Úensuredr‡  s   &&&  r^   rw  rw  ´  sˆ   € ô  ˆ4‡y‚yä�4—:‘:“< e°8Ô<ß‰S—‘˜Ó)ß‰W—W‘W˜TŸZ™ZÓ(ð 	ô ˜DŸJ™J›LÓ)€GÜ�1”j×5Ò5°gÓ>Ó?€Hä�:Š:�d A h Z .Ô1€DØ€Kr`   c               ó(   € V ^8„  d   QhRRRRRRRR/# r€  r\   )r]   s   "r^   r_   r_   Ó  s,   € ÷ 'ñ 'Ø
ð'Ø),ð'Ø69ð'àñ'r`   c                óP  € V P                   p\        P                  ! V P                  4       \        R7      p \        V 4      '       d´   \        P                  ! \        V 4      4      pRV 2p\        V ^ ,          \        4      '       dK   \        V RR7      P                  P                  W#RR7      pVP                  4       p RV P                  n        M(V P#                  VRR7      P#                  \        RR7      p Vf   Rp\        P$                  ! W4       V P'                  V4      # )	zö
Inverse of _convert_string_array.

Parameters
----------
data : np.ndarray[fixed-length-string]
nan_rep : the storage repr of NaN
encoding : str
errors : str
    Handler for encoding errors.

Returns
-------
np.ndarray[object]
    Decoded data.
r¢  ÚUFr¥  r¡  )r    rÂ  TrÎ  )rR  rÈ  rª  r­  r¡  rs   r„  r…  r!   rg   Úbytesr2   r[   Údecoder«  ÚflagsÚ	writeabler°  Ú!string_array_replace_from_nan_reprø  )r  r¤   rX   r    rR  r‡  rÂ  Úsers   &&&&    r^   r´  r´  Ó  sæ   € ð& �J‰J€EÜ�:Š:�d—j‘j“l¬&Ô1€Dä
ˆ4‡y‚yÜ×2Ò2´=ÀÓ3FÓGˆØ�H�:�ˆä�d˜1•gœu×%Ò%Ü˜ EÔ*×.Ñ.×5Ñ5Ø¨xð 6ó ˆCð —<‘<“>ˆDØ#'ˆD�J‰JÕ à—;‘;˜u¨5�;Ó1×8Ñ8¼ÀeÐ8ÓLˆDà‚Øˆä×0Ò0°Ô?Ø�<‰<˜ÓÐr`   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   rÑ  r·  rÑ  r[   rX   r    r\   )r]   s   "r^   r_   r_   ý  s(   € ÷ ñ ˜:ð °ð Àð ÈSñ r`   c                óœ   € \        V\        4      '       g   Q \        V4      4       h\        V4      '       d   \	        WV4      pV! V 4      p V # rb   )rg   r[   r  Ú_need_convertÚ_get_converter)rÑ  rÑ  rX   r    Úconvs   &&&& r^   rË  rË  ý  sC   € Ü�h¤×$Ò$Ð4¤d¨8£nÓ4Ð$Ü�X×ÒÜ˜h°&Ó9ˆÙ�f“ˆØ€Mr`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   rã  r[   rX   r    r\   )r]   s   "r^   r_   r_     s!   € ÷ 
1ñ 
1˜ð 
1¨ð 
1°Sñ 
1r`   c                ón   a aa€ S R 8X  d   R # R S 9   d   V 3R l# S R8X  d   VV3R l# \        RS  24      h)rž  c                ó2   € \         P                  ! V R R7      # )zM8[ns]r¢  ©rÈ  rª  )rž  s   &r^   r§   Ú _get_converter.<locals>.<lambda>  s   € œŸš A¨XÕ6r`   c                ó4   <€ \         P                  ! V SR 7      # )r¢  r˜  )rž  rã  s   &€r^   r§   r™  	  s   ø€ œŸš A¨TÕ2r`   rð  c                ó"   <€ \        V R SSR7      # )Nr§  )r´  )rž  rX   r    s   &€€r^   r§   r™    s   ø€ Ô0Ø�t h°võ
r`   zinvalid kind )r¼   )rã  rX   r    s   fffr^   r“  r“    sE   ú€ Øˆ|ÔÙ6Ð6Ø	˜Ô	Ü2Ð2Ø	�Ô	õ
ð 	
ô ˜=¨¨Ð/Ó0Ð0r`   c               ó    € V ^8„  d   QhRRRR/# )rW   rã  r[   rZ   r˜   r\   )r]   s   "r^   r_   r_     s   € ÷ ñ ˜ð  ñ r`   c                ó&   € V R9   g   R V 9   d   R# R# )rž  TF)rž  rð  r\   re  s   &r^   r’  r’    s   € ØÐ'Ô'¨<¸4Ô+?ÙÙr`   c               ó$   € V ^8„  d   QhRRRRRR/# )rW   ri   r[   rÞ  zSequence[int]rZ   r\   )r]   s   "r^   r_   r_     s!   € ÷ ñ ˜Sð ¨=ð ¸Sñ r`   c                ó2  € \        V\        4      '       g   \        V4      ^8  d   \        R4      hV^ ,          ^ 8X  dX   V^,          ^
8:  dJ   V^,          ^ 8X  d<   \        P
                  ! RV 4      pV'       d   VP                  4       ^ ,          pRV 2p V # )zÏ
Prior to 0.10.1, we named values blocks like: values_block_0 and the
name values_0, adjust the given name if necessary.

Parameters
----------
name : str
version : Tuple[int, int, int]

Returns
-------
str
z6Version is incorrect, expected sequence of 3 integers.zvalues_block_(\d+)Úvalues_)rg   r[   rs   r¼   r]  r[  rÅ   )ri   rÞ  rf  Úgrps   &&  r^   rf  rf    s{   € ô �'œ3×Ò¤3 w£<°!Ô#3ÜÐQÓRÐRàˆq…z�Q„˜7 1�:¨Ô+°¸µ
¸a´Ü�IŠIÐ+¨TÓ2ˆßØ—(‘(“*˜Q•-ˆCØ˜S˜E�?ˆDØ€Kr`   c               ó    € V ^8„  d   QhRRRR/# )rW   Ú	dtype_strr[   rZ   r\   )r]   s   "r^   r_   r_   1  s   € ÷ ñ ˜cð  cñ r`   c                ó2  € V P                  R4      '       d   RpV# V P                  R4      '       d   RpV# V P                  R4      '       d   RpV# V P                  R4      '       d   RpV# V P                  R4      '       d   T pV# V P                  R4      '       d   T pV# V P                  R4      '       d   RpV# V P                  R4      '       d   RpV# V P                  R	4      '       d   RpV# V R
8X  d   R
pV# V R8X  d   RpV# \        RV  R24      h)z9
Find the "kind" string describing the given dtype name.
rð  rz  rs  rr  rž  Ú	timedeltar˜   r&  r|  r¡  r[   zcannot interpret dtype of [r‹  )rð  rŠ  )rn   ry  )rý  r¼   )r£  rã  s   & r^   r\  r\  1  s]  € ð ×ÑÐ/×0Ò0Øˆð2 €Kð1 
×	Ñ	˜g×	&Ò	&Øˆð. €Kð- 
×	Ñ	˜i×	(Ò	(Øˆð* €Kð) 
×	Ñ	˜o×	.Ò	.Øˆð& €Kð% 
×	Ñ	˜l×	+Ò	+Øˆð" €Kð! 
×	Ñ	˜k×	*Ò	*Øˆð €Kð 
×	Ñ	˜f×	%Ò	%Øˆð €Kð 
×	Ñ	˜j×	)Ò	)Øˆð €Kð 
×	Ñ	˜h×	'Ò	'àˆð €Kð 
�hÔ	Øˆð €Kð 
�eÔ	Øˆð €Kô Ð6°y°kÀÐCÓDÐDr`   c               ó   € V ^8„  d   QhRR/# )rW   r  rN   r\   )r]   s   "r^   r_   r_   R  s   € ÷ ñ  9ñ r`   c                óà  € \        V \        4      '       d   V P                  p \        V P                  \        4      '       d   RV P                  P
                   R2pMV P                  P                  pV P                  P                  R9   d'   \        P                  ! V P                  R4      4      p M"\        V \        4      '       d   V P                  p \        P                  ! V 4      p W3# )zB
Convert the passed data into a storable form and a dtype string.
r¨  r‹  ÚmMrº  )rg   r7   ri  rÂ  r(   r³  ri   rã  rÈ  rª  r±  r0   r²  )r  r]  s   & r^   r[  r[  R  s¤   € ô �$œ×$Ò$Ø�z‰zˆä�$—*‘*œo×.Ò.à" 4§:¡:§?¡?Ð"3°1Ð5‰
à—Z‘Z—_‘_ˆ
à‡z�z‡�˜$ÔÜ�zŠz˜$Ÿ)™) D›/Ó*‰ô 
�Dœ+×	&Ò	&Ø�y‰yˆä�:Š:�dÓ€DØÐÐr`   c                  ón   € ] tR tRtRtRR R llt]R R l4       t]R R	 l4       tR
 R ltR tR t	Rt
R# )r{  ik  zÊ
Carries out a selection operation on a tables.Table object.

Parameters
----------
table : a Table object
where : list of Terms (or convertible to)
start, stop: indices to start and/or stop selection

Nc               ó(   € V ^8„  d   QhRRRRRRRR/# )rW   r~   r9  r°   r•   r±   rZ   r¡   r\   )r]   s   "r^   r_   ÚSelection.__annotate__w  s8   € ÷ +Dñ +Dàð+Dð ð	+Dð
 ð+Dð 
ñ+Dr`   c                	óZ  € Wn         W n        W0n        W@n        R V n        R V n        R V n        R V n        \        V4      '       Edu   \        \        4      ;_uu_ 4        \        P                  ! VRR7      pVR9   Ed5   \        P                  ! V4      pVP                  \        P                   8X  d[   V P                  V P                  rCVf   ^ pVf   V P                   P"                  p\        P$                  ! W44      V,          V n        M¥\'        VP                  P(                  \        P*                  4      '       dr   V P                  e#   W P                  8  P-                  4       '       g1   V P                  e.   W P                  8¬  P-                  4       '       d   \        R4      hW n        R R R 4       V P                  fP   V P/                  V4      V n        V P                  e*   V P                  P1                  4       w  V n        V n        R # R # R #   + '       g   i     Lo; i)NFr¥  z3where must have index locations >= start and < stop)rr  Úboolean)r~   rt   r°   r±   Ú	conditionrÉ  Útermsr”  r$   r   r¼   r   r°  rÈ  rª  rÂ  Úbool_rr  r÷  Ú
issubclassr  rr  r¯  ÚgenerateÚevaluate)ré   r~   rt   r°   r±   Úinferreds   &&&&& r^   rê   ÚSelection.__init__w  s“  € ð Œ
ØŒ
ØŒ
ØŒ	ØˆŒØˆŒØˆŒ
ØˆÔä˜×Óäœ*×%Õ%ÜŸ?š?¨5¸Ô?�ØÐ5Õ5ÜŸJšJ uÓ-�EØ—{‘{¤b§h¡hÔ.Ø&*§j¡j°$·)±)˜tØ š=Ø$%˜EØš<Ø#'§:¡:×#3Ñ#3˜DÜ+-¯9ª9°UÓ+AÀ%Õ+H˜Õ(Ü# E§K¡K×$4Ñ$4´b·j±j×AÒAØ ŸJ™JÒ2¸Ç
Á
Ñ8J×7OÑ7O×7QÒ7QØ ŸI™IÒ1°uÇ	Á	Ñ7I×6NÑ6N×6PÒ6Pä",Ø Uó#ð ð ,1Ô(÷% &ð( ×ÑÒ#ØŸ™ uÓ-ˆDŒJð �z‰zÒ%Ø.2¯j©j×.AÑ.AÓ.CÑ+�” ¦ñ &ñ	 $÷) &×%ús   ÁEHÈH*	c               ó    € V ^8„  d   QhRRRR/# )rW   rt   zdict | list | tuple | strrZ   r<   r\   )r]   s   "r^   r_   r«  ¥  s   € ×MÑMÐ7ÐM¸LÑMr`   c                	ó   € R # rb   r\   r&  s   &&r^   r²  ÚSelection.generate¤  s   € ÙJMr`   c               ó    € V ^8„  d   QhRRRR/# )rW   rt   r¡   rZ   r\   )r]   s   "r^   r_   r«  ¨  s   € ×0Ñ0˜dÐ0 tÑ0r`   c                	ó   € R # rb   r\   r&  s   &&r^   r²  r¸  §  s   € Ù-0r`   c               ó    € V ^8„  d   QhRRRR/# )rW   rt   z dict | list | tuple | str | NonerZ   zPyTablesExpr | Noner\   )r]   s   "r^   r_   r«  ª  s   € ÷ +ñ +Ð>ð +ÐCVñ +r`   c                ó&  € Vf   R# V P                   P                  4       p \        WV P                   P                  R7      #   \         dC   pRP                  TP                  4       4      p\        RT RT R24      p\        T4      ThRp?ii ; i)z'where can be a : dict,list,tuple,stringN)r?  rX   r–  z-                The passed where expression: a*  
                            contains an invalid variable reference
                            all of the variable references must be a reference to
                            an axis (e.g. 'index' or 'columns'), or a data_column
                            The currently defined references are: z
                )	r~   r?  r<   rX   Ú	NameErrorr™  r=  r   r¼   )ré   rt   r_  r³  ÚqkeysrO  s   &&    r^   r²  r¸  ª  sš   € àŠ=Ùà�J‰J×!Ñ!Ó#ˆð	+Ü ¸d¿j¹j×>QÑ>QÔRÐRøÜô 	+ð —H‘H˜QŸV™V›XÓ&ˆEÜð.Ø.3¨Wð 5Cð DIÀ'ð JðóˆCô ˜S“/ sÐ*ûð	+ús   ¢ A ÁBÁ=BÂBc                ó¶  € V P                   eU   V P                  P                  P                  V P                   P                  4       V P                  V P
                  R7      # V P                  e0   V P                  P                  P                  V P                  4      # V P                  P                  P                  V P                  V P
                  R7      # )ú
generate the selection
rt  )	r®  r~   Ú
read_wherer]   r°   r±   r”  r~  rj  rð   s   &r^   rÈ   ÚSelection.selectÁ  s£   € ð �>‰>Ò%Ø—:‘:×#Ñ#×.Ñ.Ø—‘×%Ñ%Ó'¨t¯z©zÀÇ	Á	ð /ó ð ð ×ÑÒ)Ø—:‘:×#Ñ#×4Ñ4°T×5EÑ5EÓFÐFØ�z‰z×Ñ×$Ñ$¨4¯:©:¸D¿I¹IÐ$ÓFÐFr`   c                ó°  € V P                   V P                  r!V P                  P                  pVf   ^ pMV^ 8  d	   W,          pVf   TpMV^ 8  d	   W#,          pV P                  eA   V P                  P                  P                  V P                  P                  4       WRR7      # V P                  e   V P                  # \        P                  ! W4      # )rÀ  T)r°   r±   ra  )
r°   r±   r~   rr  r®  Úget_where_listr]   r”  rÈ  r÷  )ré   r°   r±   rr  s   &   r^   rÕ  ÚSelection.select_coordsÍ  s»   € ð —j‘j $§)¡)ˆtØ—
‘
× Ñ ˆØŠ=Ø‰EØ�QŒYØ�NˆEØŠ<Ø‰DØ�AŒXØ�MˆDà�>‰>Ò%Ø—:‘:×#Ñ#×2Ñ2Ø—‘×%Ñ%Ó'¨uÀdð 3ó ð ð ×ÑÒ)Ø×#Ñ#Ð#ä�yŠy˜Ó%Ð%r`   )r®  r”  rÉ  r°   r±   r~   r¯  rt   rZ  )r  r\  r]  r^  r_  rê   r   r²  rÈ   rÕ  rb  r\   r`   r^   r{  r{  k  s<   † ñ	÷+DðZ ÜMó ØMàÜ0ó Ø0õ+ò.
Gö&r`   r{  )r|   r~   N)r»   NNFNTNNNNr†   rU   )	Nr¹   r†   NNNNFNrb   )½Ú__conditional_annotations__r_  Ú
__future__r   Ú
contextlibr   r  r<  r   r   r•  rÀ   r]  Útextwrapr   Útypingr   r   r	   r
   r   r   r   r   r  ÚnumpyrÈ  Úpandas._configr   r   r   Úpandas._libsr   r   r„  Úpandas._libs.libr   Úpandas._libs.tslibsr   Úpandas.compatr   Úpandas.compat._optionalr   Úpandas.compat.pickle_compatr   Úpandas.errorsr   r   r   r   r   Úpandas.util._decoratorsr   r   Úpandas.util._exceptionsr    Úpandas.core.dtypes.commonr!   r"   r#   r$   r%   r&   Úpandas.core.dtypes.dtypesr'   r(   r)   r*   Úpandas.core.dtypes.missingr+   r®   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   Úpandas.core.arraysr7   r8   r9   Úpandas.core.arrays.datetimesr:   Úpandas.core.arrays.string_r;   Úpandas.core.commonÚcoreÚcommonr°  Ú pandas.core.computation.pytablesr<   r=   Úpandas.core.constructionr>   rk  r?   Úpandas.core.indexes.apir@   Úpandas.io.commonrA   Úpandas.io.formats.printingrB   rC   Úcollections.abcrD   rE   rF   rG   ÚtypesrH   rI   r‡   rJ   rK   rL   Úpandas._typingrM   rN   rO   rP   rQ   rR   rS   Úpandas.core.internalsrT   rõ  rc   re   rj   rk   r`  rw   rx   ry   rz   r  rË  r   r€   Úconfig_prefixÚregister_optionÚis_boolÚis_one_of_factoryr„   r‹   rŒ   r­   rÎ   rÆ   r¬   ru  rv  r2  r?  r¿  rÐ  rÒ  r;  r/  rÆ  r0  r9  r7  rû  r5  r3  r4  r2  r6  r”  r€  r©  r~  r™  r—  rw  r´  rË  r“  r’  rf  r\  r[  r{  )rÆ  s   @r^   Ú<module>rì     sÅ  øðôõ
 #å Û ÷ó Û 	Û 	Ý ÷	÷ 	ó 	ó ã ÷ñ ÷õ -Ý )Ý %Ý >Ý 4÷õ ÷õ 5÷÷ ÷ó õ 8÷÷ ÷ ñ ÷ñ õ
 5Ý 6ß  Ð  ÷÷õ 1å +÷÷
 ÷ó ÷÷
ñ ÷÷ ñ õ ,ð €ð Ð õò	ð €€iÓ õ:ð*Ð �Uó ð!Ð ˜ó ð
€�ó ð �G˜W g¨s°G¸WÀgÐN€ð ˜˜Ð€	ð€
ˆEó ð€
ˆEó ð ×Ó˜(×#Õ#Ø
×Ó˜>¨5°*ÈÏÊÕWØ
×ÓØØØØ×*Ó*Ò+CÓDõ	÷ $ð !%€
ÐÓ $Ø$)Ð !ò÷,5ñp ˆHÓö_ó ð_õDñ ˆHÓ÷qð qó ðq÷h/mñ m÷`x>ñ x>ôv	�hô ô:a9ˆhô a9ôH	$�wô $ô63Ð.ô 3÷j?ñ j?ôZAB�5ô ABôH/#�,ô /#ôd[;˜ô [;ô|Ð"ô ô
fDˆEô fDôRH�ô Hô<b�eô bôJw˜?ô wôt.Ð0ô .ôb,Ð!6ô ,ô$@EÐ'ô @EôF(Ð 4ô (÷Võ4õõ0=Lõ@õBKõ\õ>'õTõ
1õõõ2õB÷2x&ó x&÷Qd $×#Ð#ús   Æ=ANÎN	