+
    xȇi3                       R t ^ RIHt ^ RIHtHt ^ RIHtH	t	 ^ RI
HtHtHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHu Ht ^ RIH t H!t! ^ RI"H#t# ^ RI$H%t% ]'       d   ^ RIH&t& ^ RI
H't'H(t( ^ RI)H*t*H+t+ ]%! . RO]PX                  O]RR7      ]%! . RO]4      ]! R4       ! R R]#4      4       4       4       t-]! R4      RRR/R R lll4       t.R# )zimplement the TimedeltaIndex)annotations)TYPE_CHECKINGcast)indexlib)
Resolution	Timedelta	to_offset)abbrev_to_npy_unit)
set_module)	is_scalarpandas_dtype)
ArrowDtype)	ABCSeries)TimedeltaArrayN)Indexmaybe_extract_name)DatetimeTimedeltaMixin)inherit_names)NaTType)DayTick)DtypeObjTimeUnitT)wrappandasc                      ] tR t^2t$ RtRt]t]R R l4       t	R]
R&   ]P                  t]R R l4       tR	]P                  R	R	R	3R
 R lltR R ltR tR R ltR R lt]R R l4       tRtR	# )TimedeltaIndexa0  
Immutable Index of timedelta64 data.

Represented internally as int64, and scalars returned Timedelta objects.

Parameters
----------
data : array-like (1-dimensional), optional
    Optional timedelta-like data to construct index with.
freq : str or pandas offset object, optional
    One of pandas date offset strings or corresponding objects. The string
    ``'infer'`` can be passed in order to set the frequency of the index as
    the inferred frequency upon creation.
dtype : numpy.dtype or str, default None
    Valid ``numpy`` dtypes are ``timedelta64[ns]``, ``timedelta64[us]``,
    ``timedelta64[ms]``, and ``timedelta64[s]``.
copy : bool, default None
    Whether to copy input data, only relevant for array, Series, and Index
    inputs (for other input, e.g. a list, a new array is created anyway).
    Defaults to True for array input and False for Index/Series.
    Set to False to avoid copying array input at your own risk (if you
    know the input data won't be modified elsewhere).
    Set to True to force copying Series/Index input up front.
name : object
    Name to be stored in the index.

Attributes
----------
days
seconds
microseconds
nanoseconds
components
inferred_freq

Methods
-------
to_pytimedelta
to_series
round
floor
ceil
to_frame
mean

See Also
--------
Index : The base pandas Index type.
Timedelta : Represents a duration between two dates or times.
DatetimeIndex : Index of datetime64 data.
PeriodIndex : Index of Period data.
timedelta_range : Create a fixed-frequency TimedeltaIndex.

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

Examples
--------
>>> pd.TimedeltaIndex(["0 days", "1 days", "2 days", "3 days", "4 days"])
TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'],
               dtype='timedelta64[us]', freq=None)

We can also let pandas infer the frequency when possible.

>>> pd.TimedeltaIndex(np.arange(5) * 24 * 3600 * 1e9, freq="infer")
TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'],
               dtype='timedelta64[ns]', freq='D')
timedeltaindexc                   V ^8  d   QhRR/# )   returnztype[libindex.TimedeltaEngine] )formats   "n/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/core/indexes/timedeltas.py__annotate__TimedeltaIndex.__annotate__   s     ( (< (    c                	"    \         P                  # N)libindexTimedeltaEngineselfs   &r$   _engine_typeTimedeltaIndex._engine_type   s    '''r'   r   _datac                   V ^8  d   QhRR/# )r    r!   zResolution | Noner"   )r#   s   "r$   r%   r&      s     * *!2 *r'   c                	.    V P                   P                  # r)   )r0   _resolution_objr,   s   &r$   r3   TimedeltaIndex._resolution_obj   s    zz)))r'   Nc                   V ^8  d   QhRR/# )r    copyzbool | Noner"   )r#   s   "r$   r%   r&      s     0< 0<
 0<r'   c                	   \        WQV 4      pV P                  WV4      w  r\        V4      '       d   V P                  V4       Ve   \	        V4      p\        V\        4      '       dS   V\        P                  J d?   Ve   W1P                  8X  d+   V'       d   VP                  4       pV P                  WR7      # \        V\        4      '       dU   V\        P                  J dA   Vf=   Ve   W1P                  8X  d)   V'       d   VP                  4       # VP                  4       # \        P                  ! WR W4R7      pR pV'       g)   \        V\        \         34      '       d   VP"                  pV P                  WeVR7      # )Nname)frequnitdtyper6   )r9   refs)r   _maybe_copy_array_inputr   _raise_scalar_data_errorr   
isinstancer   r   
no_defaultr<   r6   _simple_newr   _view_from_sequence_not_strictr   r   _references)clsdatar:   r<   r6   r9   tdarrr=   s   &&&&&&  r$   __new__TimedeltaIndex.__new__   s0    "$c2 00UC
T??((. 'E t^,,&%::"5yy{??4?33 t^,,&%::"5yy{"zz|# 88$e
 
4)U);<<##Dud;;r'   c                    V ^8  d   QhRRRR/# )r    r<   r   r!   boolr"   )r#   s   "r$   r%   r&      s     + +( +t +r'   c                z    \        V\        4      '       d   VP                  R8H  # \        P                  ! VR4      # )z6
Can we compare values of the given dtype to our own?
m)r@   r   kindr   is_np_dtype)r-   r<   s   &&r$   _is_comparable_dtype#TimedeltaIndex._is_comparable_dtype   s1     eZ((::$$uc**r'   c                    V P                  V4        V P                  P                  VRR7      p\
        P                  ! Y4      #   \         d   p\	        T4      ThRp?ii ; i)z]
Get integer location for requested label

Returns
-------
loc : int, slice, or ndarray[int]
F)unboxN)_check_indexing_errorr0   _validate_scalar	TypeErrorKeyErrorr   get_loc)r-   keyerrs   && r$   rY   TimedeltaIndex.get_loc   s_     	""3'	)**--c-?C }}T''  	)3-S(	)s   A A"AA"c                    V ^8  d   QhRRRR/# )r    labelstrr!   z&tuple[Timedelta | NaTType, Resolution]r"   )r#   s   "r$   r%   r&      s      c .T r'   c                	    \        V4      p\        V\         4      '       d$   \        P                  ! VP                  4      pW#3# \        P                  ! R 4      pW#3# )s)r   r@   r   get_reso_from_freqstrr;   )r-   r^   parsedresos   &&  r$   _parse_with_resoTimedeltaIndex._parse_with_reso   sQ    5!fi((33FKK@D | 33C8D|r'   c                    V ^8  d   QhRRRR/# )r    rd   r   rc   r   r"   )r#   s   "r$   r%   r&     s      Z  r'   c                	    VP                  VP                  4      pV\        VP                  4      ,           \        ^V P                  R7      P                  V P                  4      ,
          pW43# )   )r;   )roundresolution_stringr	   r   r;   as_unit)r-   rd   rc   lboundrbounds   &&&  r$   _parsed_string_to_bounds'TimedeltaIndex._parsed_string_to_bounds  s]    f6670012		*22499=> 	
 ~r'   c                   V ^8  d   QhRR/# )r    r!   r_   r"   )r#   s   "r$   r%   r&     s      s r'   c                	    R # )timedelta64r"   r,   s   &r$   inferred_typeTimedeltaIndex.inferred_type  s    r'   r"   )__name__
__module____qualname____firstlineno____doc___typr   	_data_clspropertyr.   __annotations__r   _get_string_slicer3   r   rA   rI   rQ   rY   re   ro   rt   __static_attributes__r"   r'   r$   r   r   2   s    4EN DI( (  // * * ^^ 0<h+(*  r'   r   r;   c               $    V ^8  d   QhRRRRRR/# )r    periodsz
int | Noner;   zTimeUnit | Noner!   r   r"   )r#   s   "r$   r%   r%     s/     I8 I8 I8 I8 I8r'   c          	        Vf    \         P                  ! W V4      '       d   Rp\        V4      p\         P                  ! WW#4      ^8w  d   \	        R4      hVEfM   V e   Ve   \        V 4      p \        V4      p\        \
        V 4      p \        \
        V4      p\        V P                  4      \        VP                  4      8  d   \        RV P                  4      pM~\        RVP                  4      pMgV e3   \        V 4      p \        \
        V 4      p \        RV P                  4      pM1\        V4      p\        \
        V4      p\        RVP                  4      pVeI   \        RV4      p\        V4      pVP                  V8  d!   \        RVP                  P                  4      p\        P                  ! WW#WVR7      p\        P                  WR7      # )a  
Return a fixed frequency TimedeltaIndex with day as the default.

Parameters
----------
start : str or timedelta-like, default None
    Left bound for generating timedeltas.
end : str or timedelta-like, default None
    Right bound for generating timedeltas.
periods : int, default None
    Number of periods to generate.
freq : str, Timedelta, datetime.timedelta, or DateOffset, default 'D'
    Frequency strings can have multiples, e.g. '5h'.
name : Hashable, default None
    Name of the resulting TimedeltaIndex.
closed : str, default None
    Make the interval closed with respect to the given frequency to
    the 'left', 'right', or both sides (None).
unit : {'s', 'ms', 'us', 'ns', None}, default None
    Specify the desired resolution of the result.
    If not specified, this is inferred from the 'start', 'end', and 'freq'
    using the same inference as :class:`Timedelta` taking the highest
    resolution of the three that are provided.

    .. versionadded:: 2.0.0

Returns
-------
TimedeltaIndex
    Fixed frequency, with day as the default.

See Also
--------
date_range : Return a fixed frequency DatetimeIndex.
period_range : Return a fixed frequency PeriodIndex.

Notes
-----
Of the four parameters ``start``, ``end``, ``periods``, and ``freq``,
a maximum of three can be specified at once. Of the three parameters
``start``, ``end``, and ``periods``, at least two must be specified.
If ``freq`` is omitted, the resulting ``DatetimeIndex`` will have
``periods`` linearly spaced elements between ``start`` and ``end``
(closed on both sides).

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

Examples
--------
>>> pd.timedelta_range(start="1 day", periods=4)
TimedeltaIndex(['1 days', '2 days', '3 days', '4 days'],
               dtype='timedelta64[us]', freq='D')

The ``closed`` parameter specifies which endpoint is included.  The default
behavior is to include both endpoints.

>>> pd.timedelta_range(start="1 day", periods=4, closed="right")
TimedeltaIndex(['2 days', '3 days', '4 days'],
               dtype='timedelta64[us]', freq='D')

The ``freq`` parameter specifies the frequency of the TimedeltaIndex.
Only fixed frequencies can be passed, non-fixed frequencies such as
'M' (month end) will raise.

>>> pd.timedelta_range(start="1 day", end="2 days", freq="6h")
TimedeltaIndex(['1 days 00:00:00', '1 days 06:00:00', '1 days 12:00:00',
                '1 days 18:00:00', '2 days 00:00:00'],
               dtype='timedelta64[us]', freq='6h')

Specify ``start``, ``end``, and ``periods``; the frequency is generated
automatically (linearly spaced).

>>> pd.timedelta_range(start="1 day", end="5 days", periods=4)
TimedeltaIndex(['1 days 00:00:00', '2 days 08:00:00', '3 days 16:00:00',
                '5 days 00:00:00'],
               dtype='timedelta64[us]', freq=None)

**Specify a unit**

>>> pd.timedelta_range("1 Day", periods=3, freq="100000D", unit="s")
TimedeltaIndex(['1 days', '100001 days', '200001 days'],
               dtype='timedelta64[s]', freq='100000D')
DzVOf the four parameters: start, end, periods, and freq, exactly three must be specifiedr   z
Tick | Day)closedr;   r8   )comany_noner	   count_not_none
ValueErrorr   r   r
   r;   _cresobasefreqstrr   _generate_ranger   rB   )	startendr   r:   r9   r   r;   cresorH   s	   &&&&&&$  r$   timedelta_ranger     s   ~ |WS99T?D
%g498
 	

 | e$EC.CE*Ey#&C!%**-0B3880LLJ

3J1e$EE*E
EJJ/DC.Cy#&C
CHH-D d+D&t,E{{U"J		(9(9:**G&E %%e%77r'   )__neg____pos____abs__total_secondsrj   floorceil)
componentsto_pytimedeltasumstdmedian)NNNNNN)/rz   
__future__r   typingr   r   pandas._libsr   r*   r   pandas._libs.tslibsr   r   r	   pandas._libs.tslibs.dtypesr
   pandas.util._decoratorsr   pandas.core.dtypes.commonr   r   pandas.core.dtypes.dtypesr   pandas.core.dtypes.genericr   pandas.core.arrays.timedeltasr   pandas.core.commoncorecommonr   pandas.core.indexes.baser   r    pandas.core.indexes.datetimeliker   pandas.core.indexes.extensionr   r   r   r   pandas._typingr   r   
_field_opsr   r   r"   r'   r$   <module>r      s    " "
 
 : . 1 0 8     D 7$ 	 
	"	"	 	  	 HI+ I 	2IX HI8 !I8 I8r'   