ó
    Ñ]jp•  ã                  óø  • S r SSKJr  SSKJrJr  SSKJrJrJ	r	J
r
JrJr  SSKrSSKJrJr  SSKJrJrJrJrJrJrJr  SSKJr  SS	KJr  SS
KJ r J!r!J"r"J#r#  SSK$J%r%  SSK&J'r'J(r(  SSK)J*r*  SSK+J,r,J-r-  SSK.J/r/J0r0J1r1J2r2  SSK3J4s  J5r6  SSK7J4s  J8s  J9r:  SSK7J;r;  SSK<J=r=  SSK>J?r?  SSK@JArA  \(       a  SSKBJCrC  SSKDJDrD  SSKEJFrFJGrGJHrHJIrI  SSKJJKrK  \L" \:Rš                  5      rM " S S\=\5      rN " S S\N\5      rOg)z;
Base and utility classes for tseries type pandas objects.
é    )Úannotations)ÚABCÚabstractmethod)ÚTYPE_CHECKINGÚAnyÚLiteralÚSelfÚcastÚfinalN)ÚNaTÚlib)Ú
BaseOffsetÚ
ResolutionÚTickÚ	TimedeltaÚ	TimestampÚparsingÚ	to_offset)Úabbrev_to_npy_unit)Úfunction)ÚInvalidIndexErrorÚNullFrequencyErrorÚOutOfBoundsDatetimeÚOutOfBoundsTimedelta)Úcache_readonly)Ú
is_integerÚis_list_like)Úconcat_compat)ÚCategoricalDtypeÚPeriodDtype)ÚDatetimeArrayÚExtensionArrayÚPeriodArrayÚTimedeltaArray)ÚIndex)ÚNDArrayBackedExtensionIndex)Ú
RangeIndex)Úto_timedelta)ÚSequence)Údatetime)ÚAxisÚJoinHowÚTimeUnitÚnpt)ÚCategoricalIndexc                  óÒ  ^ • \ rS rSr% SrSrS\S'   SSS.S$S	 jjr\S%S
 j5       r	\	R                  S&S j5       r	\S'S j5       r\S(S j5       r\\S)S j5       5       r\S(S j5       r\S*S j5       rS+S jrS,S jrU 4S jrSrSS.       S-S jjr\S 5       rU 4S jrS.S(U 4S jjjr\S/S j5       rS0S jrS1S jrS2S jr\      S3S j5       rS4S  jr S5S6S! jjr!S" r"S#r#U =r$$ )7ÚDatetimeIndexOpsMixinéX   zE
Common ops mixin to support a unified interface datetimelike Index.
Fz,DatetimeArray | TimedeltaArray | PeriodArrayÚ_dataTr   ©ÚskipnaÚaxisc               ó4   • U R                   R                  XS9$ )aø  
Return the mean value of the Array.

Parameters
----------
skipna : bool, default True
    Whether to ignore any NaT elements.
axis : int, optional, default 0
    Axis for the function to be applied on.

Returns
-------
scalar
    Timestamp or Timedelta.

See Also
--------
numpy.ndarray.mean : Returns the average of array elements along a given axis.
Series.mean : Return the mean value in a Series.

Notes
-----
mean is only defined for Datetime and Timedelta dtypes, not for Period.

Examples
--------
For :class:`pandas.DatetimeIndex`:

>>> idx = pd.date_range("2001-01-01 00:00", periods=3)
>>> idx
DatetimeIndex(['2001-01-01', '2001-01-02', '2001-01-03'],
              dtype='datetime64[us]', freq='D')
>>> idx.mean()
Timestamp('2001-01-02 00:00:00')

For :class:`pandas.TimedeltaIndex`:

>>> tdelta_idx = pd.to_timedelta([1, 2, 3], unit="D")
>>> tdelta_idx
TimedeltaIndex(['1 days', '2 days', '3 days'],
                dtype='timedelta64[s]', freq=None)
>>> tdelta_idx.mean()
Timedelta('2 days 00:00:00')
r4   )r3   Úmean)Úselfr5   r6   s      Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/core/indexes/datetimelike.pyr8   ÚDatetimeIndexOpsMixin.mean`   s   € ðZ �z‰z�‰ fˆÐ8Ð8ó    c                ó.   • U R                   R                  $ )a³  
Return the frequency object if it is set, otherwise None.

To learn more about the frequency strings, please see
:ref:`this link<timeseries.offset_aliases>`.

See Also
--------
DatetimeIndex.freq : Return the frequency object if it is set, otherwise None.
PeriodIndex.freq : Return the frequency object if it is set, otherwise None.

Examples
--------
>>> datetimeindex = pd.date_range(
...     "2022-02-22 02:22:22", periods=10, tz="America/Chicago", freq="h"
... )
>>> datetimeindex
DatetimeIndex(['2022-02-22 02:22:22-06:00', '2022-02-22 03:22:22-06:00',
               '2022-02-22 04:22:22-06:00', '2022-02-22 05:22:22-06:00',
               '2022-02-22 06:22:22-06:00', '2022-02-22 07:22:22-06:00',
               '2022-02-22 08:22:22-06:00', '2022-02-22 09:22:22-06:00',
               '2022-02-22 10:22:22-06:00', '2022-02-22 11:22:22-06:00'],
              dtype='datetime64[us, America/Chicago]', freq='h')
>>> datetimeindex.freq
<Hour>
©r3   Úfreq©r9   s    r:   r?   ÚDatetimeIndexOpsMixin.freq�   s   € ð8 �z‰z�‰Ðr<   c                ó$   • XR                   l        g ©Nr>   )r9   Úvalues     r:   r?   rA   ­   s   € ð  �
‰
�r<   c                ó.   • U R                   R                  $ rC   )r3   Úasi8r@   s    r:   rF   ÚDatetimeIndexOpsMixin.asi8²   ó   € à�z‰z�‰Ðr<   c                ó   • SSK Jn  U R                  R                  bL  [	        U R                  [
        U45      (       a+  [        U R                  R                  5      R                  nU$ U R                  R                  $ )a^  
Return the frequency object as a string if it's set, otherwise None.

See Also
--------
DatetimeIndex.inferred_freq : Returns a string representing a frequency
    generated by infer_freq.

Examples
--------
For DatetimeIndex:

>>> idx = pd.DatetimeIndex(["1/1/2020 10:00:00+00:00"], freq="D")
>>> idx.freqstr
'D'

The frequency can be inferred if there are more than 2 points:

>>> idx = pd.DatetimeIndex(
...     ["2018-01-01", "2018-01-03", "2018-01-05"], freq="infer"
... )
>>> idx.freqstr
'2D'

For PeriodIndex:

>>> idx = pd.PeriodIndex(["2023-1", "2023-2", "2023-3"], freq="M")
>>> idx.freqstr
'M'
r   )ÚPeriodIndex)	ÚpandasrJ   r3   ÚfreqstrÚ
isinstancer#   r    r?   Ú_freqstr)r9   rJ   r?   s      r:   rL   ÚDatetimeIndexOpsMixin.freqstr¶   sa   € õ@ 	'à�:‰:×ÑÑ)¬jØ�J‰Jœ kÐ2÷/
ñ /
ô ˜tŸz™zŸ™Ó/×8Ñ8ˆDØˆKà—:‘:×%Ñ%Ð%r<   c                ó   • g rC   © r@   s    r:   Ú_resolution_objÚ%DatetimeIndexOpsMixin._resolution_objà   s   € à-0r<   c                ó.   • U R                   R                  $ )z?
Returns day, hour, minute, second, millisecond or microsecond
)r3   Ú
resolutionr@   s    r:   rU   Ú DatetimeIndexOpsMixin.resolutionä   s   € ð
 �z‰z×$Ñ$Ð$r<   c                ó.   • U R                   R                  $ rC   )r3   Ú_hasnar@   s    r:   ÚhasnansÚDatetimeIndexOpsMixin.hasnansí   s   € à�z‰z× Ñ Ð r<   c                ón  • U R                  U5      (       a  g[        U[        5      (       d  gUR                  R                  S;   a  g[        U[        U 5      5      (       d™  SnU R                  R                  nUR                  [        :X  a  UR                  U;   nOD[        UR                  [        5      (       a%  [        SU5      nUR                  R                  U;   nU(       a   [        U 5      " U5      n[        U 5      [        U5      :w  a  gU R                  UR                  :X  a+  [         R"                  " U R$                  UR$                  5      $ U R                  R                  S:X  a  U R&                  UR&                  :X  d  U R                  R                  S:X  a]   U R                  R)                  UR                  5      u  pE[         R"                  " UR+                  S5      UR+                  S5      5      $ g! [        [        [        4 a     gf = f! [,        [.        4 a     gf = f)z<
Determines if two Index objects contain the same elements.
TFÚiufcr/   ÚMÚmÚi8)Úis_rM   r%   ÚdtypeÚkindÚtyper3   Ú_infer_matchesÚobjectÚinferred_typer   r
   Ú
categoriesÚ
ValueErrorÚ	TypeErrorÚOverflowErrorÚnpÚarray_equalrF   ÚtzÚ_ensure_matching_resosÚviewr   r   )r9   ÚotherÚ
should_tryÚ	inferableÚleftÚrights         r:   ÚequalsÚDatetimeIndexOpsMixin.equalsñ   s¯  € ð �8‰8�E�?‰?Øä˜%¤×'Ñ'ØØ�[‰[×Ñ Ó'ØÜ˜E¤4¨£:×.Ñ.ØˆJØŸ
™
×1Ñ1ˆIØ�{‰{œfÓ$Ø"×0Ñ0°IÑ=‘
Ü˜EŸK™KÔ)9×:Ñ:ÜÐ/°Ó7�Ø"×-Ñ-×;Ñ;¸yÑH�
æð!Ü  œJ uÓ-�Eô �‹:œ˜e›Ó$ØØ�Z‰Z˜5Ÿ;™;Ó&Ü—>’> $§)¡)¨U¯Z©ZÓ8Ð8Ø�j‰j�o‰o Ó$¨¯©°E·H±HÓ)<ÀÇÁÇÁÐTWÓAWðIà"Ÿj™j×?Ñ?ÀÇÁÓL‘�ô —~’~ d§i¡i°£o°u·z±zÀ$Ó7GÓHÐHØøô) #¤I¬}Ð=ó !ñ
 !ð!ûô  (Ô)=Ð>ó Ùðús$   Ã+H Æ)'H! ÈHÈHÈ!H4È3H4c                ó~   • [        U5         U R                  U5        g! [        [        [        [
        4 a     gf = f)a  
Return a boolean indicating whether the provided key is in the index.

Parameters
----------
key : label
    The key to check if it is present in the index.

Returns
-------
bool
    Whether the key search is in the index.

Raises
------
TypeError
    If the key is not hashable.

See Also
--------
Index.isin : Returns an ndarray of boolean dtype indicating whether the
    list-like key is in the index.

Examples
--------
>>> idx = pd.Index([1, 2, 3, 4])
>>> idx
Index([1, 2, 3, 4], dtype='int64')
>>> 2 in idx
True
>>> 6 in idx
False
FT)ÚhashÚget_locÚKeyErrorri   rh   r   )r9   Úkeys     r:   Ú__contains__Ú"DatetimeIndexOpsMixin.__contains__  s@   € ôD 	ˆSŒ	ð	Ø�L‰L˜Ôð øô œ)¤ZÔ1BÐCó 	Ùð	ús   � Ÿ<»<c                ó|   >• [         R                  " [        U5      R                  5       5      n[        TU ]  X5      $ rC   )rk   Úasarrayr(   Úto_numpyÚsuperÚ_convert_tolerance)r9   Ú	toleranceÚtargetÚ	__class__s      €r:   r‚   Ú(DatetimeIndexOpsMixin._convert_toleranceG  s/   ø€ Ü—J’Jœ|¨IÓ6×?Ñ?ÓAÓBˆ	Ü‰wÑ)¨)Ó<Ð<r<   r   N)Údate_formatc               ó8   • U[        U R                  X#S95      -   $ )N)Úna_repr‡   )ÚlistÚ_get_values_for_csv)r9   Úheaderr‰   r‡   s       r:   Ú_format_with_headerÚ)DatetimeIndexOpsMixin._format_with_headerO  s)   € ð
 œØ×$Ñ$¨FÐ$ÐLó
ñ 
ð 	
r<   c                ó6   • U R                   R                  5       $ rC   )r3   Ú
_formatterr@   s    r:   Ú_formatter_funcÚ%DatetimeIndexOpsMixin._formatter_funcX  s   € à�z‰z×$Ñ$Ó&Ð&r<   c                ó´   >• [         TU ]  5       nU R                   H8  nUS:X  d  M  U R                  nUb  [	        U5      nUR                  SU45        M:     U$ )z8
Return a list of tuples of the (attr,formatted_value).
r?   )r�   Ú_format_attrsÚ_attributesrL   ÚreprÚappend)r9   ÚattrsÚattribr?   r…   s       €r:   r”   Ú#DatetimeIndexOpsMixin._format_attrs\  sY   ø€ ô ‘Ñ%Ó'ˆØ×&Ô&ˆFà˜ÕØ—|‘|�ØÑ#Ü ›:�DØ—‘˜f d˜^Ö,ñ 'ð ˆr<   c                óh   >• [         TU ]  US9nU R                  (       a  USU R                   3-  nU$ )z»
Return a summarized representation.

Parameters
----------
name : str
    name to use in the summary representation

Returns
-------
String with a summarized representation of the index
©Únamez
Freq: )r�   Ú_summaryr?   rL   )r9   r�   Úresultr…   s      €r:   rž   ÚDatetimeIndexOpsMixin._summaryj  s8   ø€ ô ‘Ñ! tÐ!Ð,ˆØ�9�9Ø˜ §¡ Ð/Ñ/ˆFàˆr<   c                ó   • XR                   :„  $ rC   )rR   )r9   Úresos     r:   Ú_can_partial_date_sliceÚ-DatetimeIndexOpsMixin._can_partial_date_slice€  s   € ð ×*Ñ*Ñ*Ð*r<   c                ó   • [         erC   ©ÚNotImplementedError)r9   r¢   Úparseds      r:   Ú_parsed_string_to_boundsÚ.DatetimeIndexOpsMixin._parsed_string_to_bounds‡  s   € Ü!Ð!r<   c           
     óÀ  •  U R                   b  [        U R                   S5      (       a  U R                   nWb"  [	        U[
        5      (       d  UR                  nOUn[	        U[        R                  5      (       a  [        U5      n[        R                  " X5      u  pE[        R                  " U5      nXF4$ ! [         a    [        U S[        U SS 5      5      n N¦f = f)NÚ	rule_coderL   Úinferred_freq)r?   Úhasattrr§   ÚgetattrrM   Ústrr¬   rk   Ústr_r   Úparse_datetime_string_with_resor   Úfrom_attrname)r9   Úlabelr?   rL   r¨   Úreso_strr¢   s          r:   Ú_parse_with_resoÚ&DatetimeIndexOpsMixin._parse_with_resoŠ  s¼   € ð	RØ�y‰yÑ ¤G¨D¯I©I°{×$CÑ$CØ—y‘y�ð
 Ñ¤J¨t´S×$9Ñ$9Ø—n‘n‰GàˆGä�eœRŸW™W×%Ñ%ä˜“JˆEä"×BÒBÀ5ÓRÑˆÜ×'Ò'¨Ó1ˆØˆ|Ðøô #ó 	RÜ˜4 ¬G°D¸/È4Ó,PÓQŠDð	Rús   ‚4B8 Â8"CÃCc                óˆ   • U R                  U5      u  p# U R                  X25      $ ! [         a  n[        U5      UeS nAff = frC   )r¶   Ú_partial_date_slicerz   )r9   r{   r¨   r¢   Úerrs        r:   Ú_get_string_sliceÚ'DatetimeIndexOpsMixin._get_string_slice   sF   € à×,Ñ,¨SÓ1‰ˆð	)Ø×+Ñ+¨DÓ9Ð9øÜó 	)Ü˜3“- SÐ(ûð	)ús   •& ¦
A°<¼Ac                ó  • U R                  U5      (       d  [        eU R                  X5      u  p4U R                  R                  nU R                  R
                  nU R                  (       am  [        U 5      (       a&  X0S   :  a  X@S   :  d  X0S   :”  a  X@S   :”  a  [        eUR                  U" U5      SS9nUR                  U" U5      SS9n[        Xx5      $ XV" U5      :¬  n	XV" U5      :*  n
Xš-  R                  5       S   $ )zc
Parameters
----------
reso : Resolution
parsed : datetime

Returns
-------
slice or ndarray[intp]
r   éÿÿÿÿrs   ©Úsidert   )r£   rh   r©   r3   Ú_ndarrayÚ_unboxÚis_monotonic_increasingÚlenrz   ÚsearchsortedÚsliceÚnonzero)r9   r¢   r¨   Út1Út2ÚvalsÚunboxrs   rt   Úlhs_maskÚrhs_masks              r:   r¹   Ú)DatetimeIndexOpsMixin._partial_date_slice¨  sü   € ð  ×+Ñ+¨D×1Ñ1ÜÐà×.Ñ.¨tÓ<‰ˆØ�z‰z×"Ñ"ˆØ—
‘
×!Ñ!ˆà×'×'Ü�4�y‰yØ˜1‘g“ "¨A¡w£,°B¸b¹³MÀbÐPRÉ8Ãmô �ð
 ×$Ñ$¡U¨2£Y°VÐ$Ð<ˆDØ×%Ñ%¡e¨B£i°gÐ%Ð>ˆEÜ˜Ó%Ð%ð ˜u R›yÑ(ˆHØ˜u R›yÑ(ˆHð Ñ'×0Ñ0Ó2°1Ñ5Ð5r<   c                óR  • [        U[        5      (       a2   U R                  U5      u  p4U R                  WW5      u  pgUS:X  a  U$ U$ [        XR                  R                  5      (       d  U R	                  SU5        U$ ! [         a  nU R	                  SX5         SnANwSnAff = f)zì
If label is a string, cast it to scalar type according to resolution.

Parameters
----------
label : object
side : {'left', 'right'}

Returns
-------
label : object

Notes
-----
Value of `side` parameter should be validated in caller.
rÆ   Nrs   )rM   r°   r¶   rh   Ú_raise_invalid_indexerr©   r3   Ú_recognized_scalars)r9   r´   rÀ   r¨   r¢   rº   ÚlowerÚuppers           r:   Ú_maybe_cast_slice_boundÚ-DatetimeIndexOpsMixin._maybe_cast_slice_boundÔ  s£   € ô" �eœS×!Ñ!ðAØ#×4Ñ4°UÓ;‘�ð  ×8Ñ8¸¸vÓF‰LˆEØ  F›N�5Ð5°Ð5Ü˜E§:¡:×#AÑ#A×BÑBØ×'Ñ'¨°Ô7àˆøô ó Að ×+Ñ+¨G°U×@Ñ@ûð	Aús   —B  Â 
B&Â
B!Â!B&c                ó   • [         e)a½  
Shift index by desired number of time frequency increments.

This method is for shifting the values of datetime-like indexes
by a specified time increment a given number of times.

Parameters
----------
periods : int, default 1
    Number of periods (or increments) to shift by,
    can be positive or negative.
freq : pandas.DateOffset, pandas.Timedelta or string, optional
    Frequency increment to shift by.
    If None, the index is shifted by its own `freq` attribute.
    Offset aliases are valid strings, e.g., 'D', 'W', 'M' etc.

Returns
-------
pandas.DatetimeIndex
    Shifted index.

See Also
--------
Index.shift : Shift values of Index.
PeriodIndex.shift : Shift values of PeriodIndex.
r¦   )r9   Úperiodsr?   s      r:   ÚshiftÚDatetimeIndexOpsMixin.shiftø  s
   € ô6 "Ð!r<   c                óè   •  U R                   R                  USS9n[        X"R                  S9$ ! [        [        4 a2    [	        U[
        5      (       d  [        R                  " U5      n NPUn NTf = f)zD
Analogue to maybe_cast_indexer for get_indexer instead of get_loc.
T)Úallow_object©ra   )
r3   Ú_validate_listlikerh   ri   rM   r"   ÚcomÚasarray_tuplesafer%   ra   )r9   ÚkeyarrÚress      r:   Ú_maybe_cast_listlike_indexerÚ2DatetimeIndexOpsMixin._maybe_cast_listlike_indexer  sk   € ð	Ø—*‘*×/Ñ/°ÀTÐ/ÐJˆCô �S§	¡	Ñ*Ð*øô œIÐ&ó 	Ü˜f¤n×5Ñ5ä×+Ò+¨FÓ3’ð ’ð	ús   ‚/ ¯;A1Á,A1Á0A1rQ   )r5   Úboolr6   z
int | None)ÚreturnzBaseOffset | None)rå   ÚNone)rå   znpt.NDArray[np.int64])rå   r°   )rå   r   ©rå   rä   )rp   r   rå   rä   )r{   r   rå   rä   )rŒ   ú	list[str]r‰   r°   r‡   ú
str | Nonerå   rè   rC   )r¢   r   rå   rä   )r¢   r   )r´   r°   rå   ztuple[datetime, Resolution])r{   r°   rå   úslice | npt.NDArray[np.intp])r¢   r   r¨   r*   rå   rê   )rÀ   r°   ©é   N©r×   Úintrå   r	   )%Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú_can_hold_stringsÚ__annotations__r8   Úpropertyr?   ÚsetterrF   rL   r   r   rR   rU   rY   ru   r|   r‚   Ú_default_na_repr�   r‘   r”   rž   r   r£   r©   r¶   r»   r¹   rÔ   rØ   râ   Ú__static_attributes__Ú__classcell__©r…   s   @r:   r1   r1   X   s„  ø‡ ñð ÐØ7Ó7à%)¸a÷ -9ð^ óó ðð: 
‡[�[ó ó ð ð óó ðð ó'&ó ð'&ðR ØÛ0ó ó à0àó%ó ð%ð ó!ó ð!ô+ôZ'õR=ð €Oð LPñ
Ø"ð
Ø,/ð
Ø>Hð
à	õ
ð ñ'ó ð'õ÷ñ ð, ó+ó ð+ô"ôô,)ð ð)6àð)6ð ð)6ð 
&ó	)6ó ð)6ôVöH"÷>+ð +r<   r1   c                  óü  ^ • \ rS rSr% SrS\S'   SS/rSS/r\R                  r
\R                  r\R                  r\S#S j5       rS$S jrS	 r\S%S
 j5       rS&S'S jjr\S(S j5       r\S)S j5       rS*S jrS+S jrS+S jrS+S jrS,S-S jjrS rS.S jrS.S jrS/S0S jjr U 4S jr!S r"        S1U 4S jjr#S%S jr$S2S jr%S3S4U 4S jjjr&S5S jr'S6S jr(S+U 4S jjr)S6U 4S  jjr*   S7     S8S! jjr+S"r,U =r-$ )9ÚDatetimeTimedeltaMixini'  zY
Mixin class for methods shared by DatetimeIndex and TimedeltaIndex,
but not PeriodIndex
zDatetimeArray | TimedeltaArrayr3   r�   r?   c                ó.   • U R                   R                  $ rC   )r3   Úunitr@   s    r:   rÿ   ÚDatetimeTimedeltaMixin.unit6  rH   r<   c                ó|   • U R                   R                  U5      n[        U 5      R                  X R                  S9$ )a�  
Convert to a dtype with the given unit resolution.

This method is for converting the dtype of a ``DatetimeIndex`` or
``TimedeltaIndex`` to a new dtype with the given unit
resolution/precision.

Parameters
----------
unit : {'s', 'ms', 'us', 'ns'}

Returns
-------
same type as self
    Converted to the specified unit.

See Also
--------
Timestamp.as_unit : Convert to the given unit.
Timedelta.as_unit : Convert to the given unit.
DatetimeIndex.as_unit : Convert to the given unit.
TimedeltaIndex.as_unit : Convert to the given unit.

Examples
--------
For :class:`pandas.DatetimeIndex`:

>>> idx = pd.DatetimeIndex(["2020-01-02 01:02:03.004005006"])
>>> idx
DatetimeIndex(['2020-01-02 01:02:03.004005006'],
              dtype='datetime64[ns]', freq=None)
>>> idx.as_unit("s")
DatetimeIndex(['2020-01-02 01:02:03'], dtype='datetime64[s]', freq=None)

For :class:`pandas.TimedeltaIndex`:

>>> tdelta_idx = pd.to_timedelta(["1 day 3 min 2 us 42 ns"])
>>> tdelta_idx
TimedeltaIndex(['1 days 00:03:00.000002042'],
                dtype='timedelta64[ns]', freq=None)
>>> tdelta_idx.as_unit("s")
TimedeltaIndex(['1 days 00:03:00'], dtype='timedelta64[s]', freq=None)
rœ   )r3   Úas_unitrc   Ú_simple_newr�   )r9   rÿ   Úarrs      r:   r  ÚDatetimeTimedeltaMixin.as_unit:  s5   € ðX �j‰j× Ñ  Ó&ˆÜ�D‹z×%Ñ% c·	±	Ð%Ð:Ð:r<   c                ó|   • U R                   R                  U5      n[        U 5      R                  X R                  S9$ )Nrœ   )r3   Ú
_with_freqrc   r  Ú_name)r9   r?   r  s      r:   r  Ú!DatetimeTimedeltaMixin._with_freqi  s2   € Ø�j‰j×#Ñ# DÓ)ˆÜ�D‹z×%Ñ% c·
±
Ð%Ð;Ð;r<   c                ót   • U R                   R                  nUR                  5       nSUR                  l        U$ )NF)r3   rÁ   ro   ÚflagsÚ	writeable)r9   Údatas     r:   ÚvaluesÚDatetimeTimedeltaMixin.valuesm  s/   € ð �z‰z×"Ñ"ˆØ�y‰y‹{ˆØ$ˆ�
‰
ÔØˆr<   c                óä  • Ub7  X R                   :w  a(  [        U[        5      (       a  [        U5      nX-  nX-   $ US:X  d  [	        U 5      S:X  a  U R                  5       $ U R                   c  [        S5      eU S   XR                   -  -   nU S   XR                   -  -   nU R                  R                  XESU R                   U R                  S9n[        U 5      R                  X`R                  S9$ )a¼  
Shift index by desired number of time frequency increments.
This method is for shifting the values of datetime-like indexes
by a specified time increment a given number of times.

Parameters
----------
periods : int, default 1
    Number of periods (or increments) to shift by,
    can be positive or negative.
freq : pandas.DateOffset, pandas.Timedelta or string, optional
    Frequency increment to shift by.
    If None, the index is shifted by its own `freq` attribute.
    Offset aliases are valid strings, e.g., 'D', 'W', 'M' etc.

Returns
-------
pandas.DatetimeIndex
    Shifted index.

See Also
--------
Index.shift : Shift values of Index.
PeriodIndex.shift : Shift values of PeriodIndex.
Nr   zCannot shift with no freqr¾   )ÚstartÚendr×   r?   rÿ   rœ   )r?   rM   r°   r   rÄ   Úcopyr   r3   Ú_generate_rangerÿ   rc   r  r�   )r9   r×   r?   Úoffsetr  r  rŸ   s          r:   rØ   ÚDatetimeTimedeltaMixin.shiftu  sß   € ð4 Ñ ¯	©	Ó 1Ü˜$¤×$Ñ$Ü  “�Ø‘^ˆFØ‘=Ð à�a‹<œ3˜t›9¨›>à—9‘9“;Ðà�9‰9ÑÜ$Ð%@ÓAÐAà�Q‘˜'§I¡IÑ-Ñ-ˆØ�2‰h˜§9¡9Ñ,Ñ,ˆð
 —‘×+Ñ+Ø¨$°T·Y±YÀTÇYÁYð ,ð 
ˆô �D‹z×%Ñ% f·9±9Ð%Ð=Ð=r<   c                ó.   • U R                   R                  $ )a¿  
Return the inferred frequency of the index.

Returns
-------
str or None
    A string representing a frequency generated by ``infer_freq``.
    Returns ``None`` if the frequency cannot be inferred.

See Also
--------
DatetimeIndex.freqstr : Return the frequency object as a string if it's set,
    otherwise ``None``.

Examples
--------
For ``DatetimeIndex``:

>>> idx = pd.DatetimeIndex(["2018-01-01", "2018-01-03", "2018-01-05"])
>>> idx.inferred_freq
'2D'

For ``TimedeltaIndex``:

>>> tdelta_idx = pd.to_timedelta(["0 days", "10 days", "20 days"])
>>> tdelta_idx
TimedeltaIndex(['0 days', '10 days', '20 days'],
               dtype='timedelta64[us]', freq=None)
>>> tdelta_idx.inferred_freq
'10D'
)r3   r­   r@   s    r:   r­   Ú$DatetimeTimedeltaMixin.inferred_freq§  s   € ðB �z‰z×'Ñ'Ð'r<   c                óü   • [        [        U R                  5      n[        U5      R	                  U R
                  5      R                  n[        U S   R                  U S   R                  U-   U5      n[        U5      $ ©Nr   r¾   )	r
   r   r?   r   r  rÿ   Ú_valueÚranger'   )r9   r?   ÚtickÚrngs       r:   Ú_as_range_indexÚ&DatetimeTimedeltaMixin._as_range_indexÍ  s_   € ô ”D˜$Ÿ)™)Ó$ˆÜ˜‹×&Ñ& t§y¡yÓ1×8Ñ8ˆÜ�D˜‘G—N‘N D¨¡H§O¡O°dÑ$:¸DÓAˆÜ˜#‹Ðr<   c                óx   • [        U R                  [        5      =(       a    [        UR                  [        5      $ rC   )rM   r?   r   ©r9   rp   s     r:   Ú_can_range_setopÚ'DatetimeTimedeltaMixin._can_range_setopÖ  s#   € Ü˜$Ÿ)™)¤TÓ*×K¬z¸%¿*¹*ÄdÓ/KÐKr<   c                óî  • S n[        U5      (       d  U R                  nOU[        U[        5      (       a@  [	        [        UR                  U R                  S9R                  U R                  5      5      nUR                  R                  U R                  R                  R                  5      n[        U R                  5      R                  UU R                  US9n[!        SU R#                  X5      5      $ )N)rÿ   )ra   r?   r	   )rÄ   r?   rM   r'   r   r   Ústeprÿ   r  r  ro   r3   rÁ   ra   rc   r  r
   Ú_wrap_setop_result)r9   rp   Úres_i8Únew_freqÚ
res_valuesrŸ   s         r:   Ú_wrap_range_setopÚ(DatetimeTimedeltaMixin._wrap_range_setopÙ  s¾   € ØˆÜ�6�{‰{à—y‘y‰HÜ˜¤
×+Ñ+Ü Ü˜&Ÿ+™+¨D¯I©IÑ6×>Ñ>¸t¿y¹yÓIóˆHð —]‘]×'Ñ'¨¯
©
×(;Ñ(;×(AÑ(AÓBˆ
Ü�d—j‘jÓ!×-Ñ-ð Ø—*‘*Øð .ð 
ˆô �F˜D×3Ñ3°EÓBÓCÐCr<   c                ór   • U R                   nUR                   nUR                  XBS9nU R                  X5      $ ©N©Úsort)r  Úintersectionr+  ©r9   rp   r0  rs   rt   r(  s         r:   Ú_range_intersectÚ'DatetimeTimedeltaMixin._range_intersectó  s<   € à×#Ñ#ˆØ×%Ñ%ˆØ×"Ñ" 5Ð"Ð4ˆØ×%Ñ% eÓ4Ð4r<   c                ór   • U R                   nUR                   nUR                  XBS9nU R                  X5      $ r.  )r  Úunionr+  r2  s         r:   Ú_range_unionÚ#DatetimeTimedeltaMixin._range_unionú  s9   € à×#Ñ#ˆØ×%Ñ%ˆØ—‘˜E�Ð-ˆØ×%Ñ% eÓ4Ð4r<   c                ó>  • [        SU5      nU R                  U5      (       a  U R                  XS9$ U R                  U5      (       dF  [        R
                  " XUS9nU R                  X5      nUR                  S5      R                  S5      $ U R                  X5      $ )zO
intersection specialized to the case with matching dtypes and both non-empty.
rý   r/  NÚinfer)	r
   r#  r3  Ú_can_fast_intersectr%   Ú_intersectionr'  r  Ú_fast_intersect)r9   rp   r0  rŸ   s       r:   r<  Ú$DatetimeTimedeltaMixin._intersection  sš   € ô Ð-¨uÓ5ˆà× Ñ  ×'Ñ'Ø×(Ñ(¨Ð(Ð:Ð:à×'Ñ'¨×.Ñ.Ü×(Ò(¨¸4Ñ@ˆFð ×,Ñ,¨UÓ;ˆFà×$Ñ$ TÓ*×5Ñ5°gÓ>Ð>ð ×'Ñ'¨Ó4Ð4r<   c                óº   • U S   US   ::  a  XpCOXpC[        US   US   5      nUS   nXV:  a  U S S nU$ [        UR                  Xe5      6 nUR                  U   nU$ r  )ÚminrÆ   Ú
slice_locsÚ_values)	r9   rp   r0  rs   rt   r  r  rŸ   Úlslices	            r:   r=  Ú&DatetimeTimedeltaMixin._fast_intersect  sz   € à�‰7�e˜A‘hÓØ‘%à�%ô �$�r‘(˜E "™IÓ&ˆØ�a‘ˆà‹;Ø˜"˜1�XˆFð
 ˆô ˜DŸO™O¨EÓ7Ð8ˆFØ—\‘\ &Ñ)ˆFàˆr<   c                óª   • U R                   c  gUR                   U R                   :w  a  gU R                  (       d  gU R                   R                  S:H  $ )NFrì   )r?   rÃ   Únr"  s     r:   r;  Ú*DatetimeTimedeltaMixin._can_fast_intersect,  sC   € à�9‰9ÑØà�Z‰Z˜4Ÿ9™9Ó$Øà×-×-àð �y‰y�{‰{˜aÑÐr<   c                óü   • U R                   nUb  X!R                   :w  a  gU R                  (       d  g[        U 5      S:X  d  [        U5      S:X  a  gU S   US   ::  a  XpCOXpCUS   nUS   nXVU-   :H  =(       d    XS;   $ )NFr   Tr¾   )r?   rÃ   rÄ   )r9   rp   r?   rs   rt   Úright_startÚleft_ends          r:   Ú_can_fast_unionÚ&DatetimeTimedeltaMixin._can_fast_union>  s‰   € ð �y‰yˆà‰<˜4§:¡:Ó-Øà×+×+ð äˆt‹9˜‹>œS ›Z¨1›_àð �‰7�e˜A‘hÓØ‘%à�%à˜A‘hˆØ˜‘8ˆð ¨$™Ñ.×F°;Ñ3FÐFr<   c                ó:  • U S   US   ::  a  XpCOhUSL aa  XpCUS   nUR                  USS9nUR                  S U n[        UR                  U45      n[        U 5      R	                  X€R
                  S9n	U	$ XpCUS   n
US   nX«:  a”  UR                  U
SS9nUR                  US  n[        UR                  U/5      n[        U[        U R                  5      5      (       d   eUR                  U R                  :X  d   e[        U 5      R	                  U5      n	U	$ U$ )Nr   Frs   r¿   rœ   r¾   rt   )
rÅ   rB  r   rc   r  r�   rM   r3   Ú_freqr?   )r9   rp   r0  rs   rt   Ú
left_startÚlocÚright_chunkÚdatesrŸ   rJ  Ú	right_ends               r:   Ú_fast_unionÚ"DatetimeTimedeltaMixin._fast_union\  s3  € ð �‰7�e˜A‘hÓØ‘%Ø�UŠ]ð �%Ø˜a™ˆJØ×$Ñ$ Z°fÐ$Ð=ˆCØŸ-™-¨¨Ð-ˆKÜ! 4§<¡<°Ð"=Ó>ˆEÜ˜$“Z×+Ñ+¨E¿	¹	Ð+ÐBˆFØˆMà�%à˜‘8ˆØ˜"‘Iˆ	ð ÓØ×$Ñ$ X°GÐ$Ð<ˆCØŸ-™-¨¨Ð-ˆKÜ! 4§<¡<°Ð"=Ó>ˆEô ˜e¤T¨$¯*©*Ó%5×6Ñ6Ð6Ð6ð —;‘; $§)¡)Ó+Ð+Ð+Ü˜$“Z×+Ñ+¨EÓ2ˆFØˆMàˆKr<   c                óH  >• [        U[        U 5      5      (       d   eU R                  UR                  :X  d   eU R                  U5      (       a  U R	                  XS9$ U R                  U5      (       a  U R                  XS9nU$ [        TU ]!  X5      R                  S5      $ )Nr/  r:  )
rM   rc   ra   r#  r7  rK  rT  r�   Ú_unionr  )r9   rp   r0  rŸ   r…   s       €r:   rW  ÚDatetimeTimedeltaMixin._union‚  sš   ø€ ä˜%¤ d£×,Ñ,Ð,Ð,Ø�z‰z˜UŸ[™[Ó(Ð(Ð(à× Ñ  ×'Ñ'Ø×$Ñ$ UÐ$Ð6Ð6à×Ñ ×&Ñ&Ø×%Ñ% eÐ%Ð7ˆFð ˆMä‘7‘> %Ó.×9Ñ9¸'ÓBÐBr<   c                óN   • SnU R                  U5      (       a  U R                  nU$ )z;
Get the freq to attach to the result of a join operation.
N)rK  r?   )r9   rp   r?   s      r:   Ú_get_join_freqÚ%DatetimeTimedeltaMixin._get_join_freq•  s(   € ð ˆØ×Ñ ×&Ñ&Ø—9‘9ˆDØˆr<   c                óâ   >• UR                   U R                   :X  d   UR                   U R                   45       e[        TU ]	  XX4U5      u  pcnU R                  U5      UR                  l        XcU4$ rC   )ra   r�   Ú_wrap_join_resultrZ  r3   rN  )r9   Újoinedrp   ÚlidxÚridxÚhowÚ
join_indexr…   s          €r:   r]  Ú(DatetimeTimedeltaMixin._wrap_join_resultž  sn   ø€ ð �{‰{˜dŸj™jÓ(ÐC¨5¯;©;¸¿
¹
Ð*CÓCÐ(Ü!&¡Ñ!:Ø˜4 só"
Ñˆ
˜$ð "&×!4Ñ!4°UÓ!;ˆ
×ÑÔØ Ð%Ð%r<   c                óL   • U R                   R                  R                  S5      $ )Nr_   )r3   rÁ   ro   r@   s    r:   Ú_get_engine_targetÚ)DatetimeTimedeltaMixin._get_engine_target­  s   € à�z‰z×"Ñ"×'Ñ'¨Ó-Ð-r<   c                ó–   • UR                  U R                  R                  R                  5      nU R                  R	                  U5      $ rC   )ro   r3   rÁ   ra   Ú_from_backing_data)r9   rŸ   s     r:   Ú_from_join_targetÚ(DatetimeTimedeltaMixin._from_join_target±  s5   € à—‘˜TŸZ™Z×0Ñ0×6Ñ6Ó7ˆØ�z‰z×,Ñ,¨VÓ4Ð4r<   c                ó~  >• U R                   (       a�  [        U[        [        45      (       a‚  [	        UR
                  5      [	        U R
                  5      :”  aV  US:X  a  UR                  U R
                  5      nO4UR                  U R
                  5      R                  U R
                  5      n[        TU ]%  X5      $ )Nrt   )
rÃ   rM   r   r   r   rÿ   r  Úceilr�   Ú_searchsorted_monotonic)r9   r´   rÀ   r…   s      €r:   rm  Ú.DatetimeTimedeltaMixin._searchsorted_monotonic¶  s‡   ø€ à×(×(Ü˜5¤9¬iÐ"8×9Ñ9Ü" 5§:¡:Ó.Ô1CÀDÇIÁIÓ1NÓNð �w‹ØŸ™ d§i¡iÓ0‘ð Ÿ
™
 4§9¡9Ó-×5Ñ5°d·i±iÓ@�ä‰wÑ.¨uÓ;Ð;r<   c                óú  • SnU R                   bë  [        U5      (       a.  US[        U 5      * S[        U 5      S-
  4;   a  U R                   nU$ [        U5      (       aA  [        R
                  " [        R                  " U[        R                  S9[        U 5      5      n[        U[        5      (       aG  UR                  S;   a7  UR                  S;   d  UR                  [        U 5      S4;   a  U R                   nU$ )z'
Find the `freq` for self.delete(loc).
Nr   r¾   rì   rÜ   rë   )r   N)r?   r   rÄ   r   r   Úmaybe_indices_to_slicerk   r   ÚintprM   rÆ   r&  r  Ústop)r9   rP  r?   s      r:   Ú_get_delete_freqÚ'DatetimeTimedeltaMixin._get_delete_freqÉ  sÊ   € ð ˆØ�9‰9Ñ Ü˜#�‰Ø˜1œs 4›y˜j¨"¬c°$«i¸!©mÐ<Ó<ØŸ9™9�Dð ˆô   ×$Ñ$ô ×4Ò4ÜŸ
š
 3¬b¯g©gÑ6¼¸D»	ó�Cô ˜c¤5×)Ñ)¨c¯h©h¸)Ó.CØ—y‘y IÓ-°·±¼cÀ$»iÈÐ=NÓ1NØ#Ÿy™y˜Øˆr<   c                óJ  • U R                   R                  U5      nU R                   R                  U5      nSnU R                  bÝ  U R                  (       as  U[
        L a   U$ US[        U 5      * 4;   a#  X R                  -   U S   :X  a  U R                  nU$ U[        U 5      :X  a!  X R                  -
  U S   :X  a  U R                  nU$ [        U R                  [        5      (       a  U R                  nU$ U R                  R                  U5      (       a  U R                  nU$ )z-
Find the `freq` for self.insert(loc, item).
Nr   r¾   )
r3   Ú_validate_scalarÚ	_box_funcr?   Úsizer   rÄ   rM   r   Úis_on_offset)r9   rP  ÚitemrD   r?   s        r:   Ú_get_insert_freqÚ'DatetimeTimedeltaMixin._get_insert_freqß  s  € ð —
‘
×+Ñ+¨DÓ1ˆØ�z‰z×#Ñ# EÓ*ˆàˆØ�9‰9Ñ à�y�yØœ3’;Øð ˆð ˜Q¤ T£ 
˜OÓ+°·y±yÑ0@ÀDÈÁGÓ0KØŸ9™9�Dð ˆð œS ›YÓ&¨D·9±9Ñ,<ÀÀRÁÓ,HØŸ9™9�Dð ˆô ˜DŸI™I¤t×,Ñ,ð —y‘y�ð ˆð —‘×'Ñ'¨×-Ñ-Ø—y‘y�Øˆr<   c                óf   >• [         TU ]  U5      nU R                  U5      UR                  l        U$ )aA  
Make new Index with passed location(-s) deleted.

Parameters
----------
loc : int or list of int
    Location of item(-s) which will be deleted.
    Use a list of locations to delete more than one value at the same time.

Returns
-------
Index
    Will be same type as self, except for RangeIndex.

See Also
--------
numpy.delete : Delete any rows and column from NumPy array (ndarray).

Examples
--------
>>> idx = pd.Index(["a", "b", "c"])
>>> idx.delete(1)
Index(['a', 'c'], dtype='str')
>>> idx = pd.Index(["a", "b", "c"])
>>> idx.delete([0, 2])
Index(['b'], dtype='str')
)r�   Údeleters  r3   rN  )r9   rP  rŸ   r…   s      €r:   r~  ÚDatetimeTimedeltaMixin.deleteù  s/   ø€ ô8 ‘‘ Ó$ˆØ!×2Ñ2°3Ó7ˆ�‰ÔØˆr<   c                óš   >• [         TU ]  X5      n[        U[        U 5      5      (       a   U R	                  X5      UR
                  l        U$ )ae  
Make new Index inserting new item at location.
Follows Python numpy.insert semantics for negative values.

Parameters
----------
loc : int
    The integer location where the new item will be inserted.
item : object
    The new item to be inserted into the Index.

Returns
-------
Index
    Returns a new Index object resulting from inserting the specified item at
    the specified location within the original Index.

See Also
--------
Index.append : Append a collection of Indexes together.

Examples
--------
>>> idx = pd.Index(["a", "b", "c"])
>>> idx.insert(1, "x")
Index(['a', 'x', 'b', 'c'], dtype='str')
)r�   ÚinsertrM   rc   r{  r3   rN  )r9   rP  rz  rŸ   r…   s       €r:   r�  ÚDatetimeTimedeltaMixin.insert  s@   ø€ ô8 ‘‘ Ó*ˆÜ�fœd 4›j×)Ñ)à!%×!6Ñ!6°sÓ!AˆF�L‰LÔØˆr<   c                ól  • [         R                  " SU5        [        R                  " U[        R                  S9n[
        R                  " XX#U40 UD6n[        R                  " U[        U 5      5      n[        U[        5      (       a+  U R                  R                  U5      nX†R                  l        U$ )aþ  
Return a new Index of the values selected by the indices.
For internal compatibility with numpy arrays.

Parameters
----------
indices : array-like
    Indices to be taken.
axis : {0 or 'index'}, optional
    The axis over which to select values, always 0 or 'index'.
allow_fill : bool, default True
    How to handle negative values in `indices`.
    * False: negative values in `indices` indicate positional indices
        from the right (the default). This is similar to
        :func:`numpy.take`.
    * True: negative values in `indices` indicate
        missing values. These values are set to `fill_value`. Any other
        other negative values raise a ``ValueError``.
fill_value : scalar, default None
    If allow_fill=True and fill_value is not None, indices specified by
    -1 are regarded as NA. If Index doesn't hold NA, raise ValueError.
**kwargs
    Required for compatibility with numpy.

Returns
-------
Index
    An index formed of elements at the given indices. Will be the same
    type as self, except for RangeIndex.

See Also
--------
numpy.ndarray.take: Return an array formed from the
    elements of a at the given indices.

Examples
--------
>>> idx = pd.Index(["a", "b", "c"])
>>> idx.take([2, 2, 1, 2])
Index(['c', 'c', 'b', 'c'], dtype='str')
rQ   rÜ   )ÚnvÚvalidate_takerk   r   rq  r&   Útaker   rp  rÄ   rM   rÆ   r3   Ú_get_getitem_freqrN  )	r9   Úindicesr6   Ú
allow_fillÚ
fill_valueÚkwargsrŸ   Úmaybe_slicer?   s	            r:   r†  ÚDatetimeTimedeltaMixin.take>  s�   € ôb 	×Ò˜˜VÔ$Ü—*’*˜W¬B¯G©GÑ4ˆä,×1Ò1Ø˜4¨Zñ
Ø;Añ
ˆô ×0Ò0°¼#¸d»)ÓDˆÜ�k¤5×)Ñ)Ø—:‘:×/Ñ/°Ó<ˆDØ!%�L‰LÔØˆr<   rQ   )rå   r-   )rÿ   r-   rå   r	   )rå   ú
np.ndarrayrë   rí   )rå   ré   )rå   r'   rç   )rå   r	   )F)rp   r%   r0  rä   rå   r%   )rp   r	   rå   rä   rC   )rp   r	   rå   r	   )r_  únpt.NDArray[np.intp] | Noner`  r�  ra  r,   rå   zEtuple[Self, npt.NDArray[np.intp] | None, npt.NDArray[np.intp] | None])rŸ   rŽ  )rs   )rÀ   zLiteral['left', 'right'])rP  zint | slice | Sequence[int])rP  rî   )r   TN)r6   r+   r‰  rä   rå   r	   ).rï   rð   rñ   rò   ró   rõ   Ú_comparablesr•   r%   rÃ   Ú_is_monotonic_increasingÚis_monotonic_decreasingÚ_is_monotonic_decreasingÚ	is_uniqueÚ
_is_uniquerö   rÿ   r  r  r  rØ   r   r­   r  r#  r+  r3  r7  r<  r=  r;  rK  rT  rW  rZ  r]  re  ri  rm  rs  r{  r~  r�  r†  rù   rú   rû   s   @r:   rý   rý   '  sn  ø‡ ñð
 *Ó)Ø˜FÐ#€LØ˜6Ð"€Kð  %×<Ñ<ÐØ$×<Ñ<ÐØ—‘€Jàóó ðô-;ò^<ð óó ðö0>ðd ó (ó ð (ðJ óó ðôLôDô45ô5ö5ò.ô( ô$Gö<$õLCò&ð&ð *ð	&ð
 *ð&ð ð&ð 
O÷&ô.ô5÷
<ñ <ô&ô,÷4÷@ ðP ØØð<ð ð<ð ð	<ð 
÷<ó <r<   rý   )Pró   Ú
__future__r   Úabcr   r   Útypingr   r   r   r	   r
   r   Únumpyrk   Úpandas._libsr   r   Úpandas._libs.tslibsr   r   r   r   r   r   r   Úpandas._libs.tslibs.dtypesr   Úpandas.compat.numpyr   r„  Úpandas.errorsr   r   r   r   Úpandas.util._decoratorsr   Úpandas.core.dtypes.commonr   r   Úpandas.core.dtypes.concatr   Úpandas.core.dtypes.dtypesr   r    Úpandas.core.arraysr!   r"   r#   r$   Úpandas.core.commonÚcoreÚcommonrÞ   Úpandas.core.indexes.baseÚindexesÚbaseÚibaser%   Úpandas.core.indexes.extensionr&   Úpandas.core.indexes.ranger'   Úpandas.core.tools.timedeltasr(   Úcollections.abcr)   r*   Úpandas._typingr+   r,   r-   r.   rK   r/   ÚdictÚ_index_doc_kwargsr1   rý   rQ   r<   r:   Ú<module>r²     sÒ   ðñõ #÷÷÷ ó ÷÷÷ ñ õ :Ý .÷ó õ÷õ 4÷÷
ó ÷ !Ð  ß (Ó (õõ FÝ 0Ý 5æÝ(Ý!÷ó õ (á˜×0Ñ0Ó1Ð ôL+Ð7¸ô L+ô^S	Ð2°Cõ S	r<   