+
    xȇi                    T   ^ RI Ht ^ RIHt ^ RIt^ RIHtHtHt ^ RI	t
^ RIHtHt ^ RIHtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHtHt ^ R	IH t H!t!H"t"H#t#H$t$ ^ R
I%H&t' ^ RI(H)t) ^ RI*H+t+ ^ RI,H-t-H.t.H/t/H0t0H1t1H2t2H3t3 ^ RI4H5t5H6t6H7t7 ^ RI8H9t9 ^ RI:H;t;H<t< ^ RI=H>t> ^ RI?H@tA ^ RIBHCtC ^ RIDHEu HFtG ^ RIHHItI ]'       d   ^ RIJHKtKHLtL ^ RIMHNtNHOtOHPtPHQtQHRtRHStS ^ RITHUtU ^ RIVtVR R ltW])! R4       ! R R]AP                  4      4       tYR%R R lltZR&R R  llt[R'R! R" llt\R# R$ lt]R# )(    )annotations)	timedeltaN)TYPE_CHECKINGSelfcast)libtslibs)DayNaTNaTTypeTick	Timedeltaastype_overflowsafeget_supported_dtypeiNaTis_supported_dtypeperiods_per_second	to_offset)cast_from_unit_vectorized)get_timedelta_daysget_timedelta_field)array_to_timedelta64floordiv_object_arrayints_to_pytimedeltaparse_timedelta_unittruediv_object_array)function)
set_module)validate_endpoints)TD64NS_DTYPEis_float_dtypeis_integer_dtypeis_object_dtype	is_scalaris_string_dtypepandas_dtype)
ArrowDtypeBaseMaskedDtypeExtensionDtype)isna)nanops	roperator)datetimelike_accumulations)datetimelike)generate_regular_range)unpack_zerodim_and_defer)CallableIterator)AxisIntDateTimeErrorChoicesDtypeObjNpDtypenptTimeUnit	DataFramec               $    V ^8  d   QhRRRRRR/# )   namestralias	docstring )formats   "m/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/core/arrays/timedeltas.py__annotate__rD   Y   s!      # c c     c                N   a R  V3R llpWn         RV R2Vn        \        V4      # )c                   V ^8  d   QhRR/# )r<   return
np.ndarrayrA   )rB   s   "rC   rD   %_field_accessor.<locals>.__annotate__Z   s      : rE   c                   < V P                   pSR 8X  d   \        WP                  R7      pM\        VSV P                  R7      pV P                  '       d   V P                  VRRR7      pV# )daysresoNfloat64)
fill_valueconvert)asi8r   _cresor   _hasna_maybe_mask_results)selfvaluesresultr?   s   &  rC   f_field_accessor.<locals>.fZ   sa    F?'[[AF
 )T[[IF;;;--4 . F rE   
)__name____doc__property)r=   r?   r@   rY   s   &f& rC   _field_accessorr_   Y   s.       JYKr"AIA;rE   zpandas.arraysc                     a  ] tR t^ot$ RtRt]]P                  ]	3t
R tR]R&   Rrt]R R l4       t]R R	 l4       tR
t. tR]R&   . tR]R&   . RsOtR]R&   ]],           RR.,           tR]R&   . RtOtR]R&   R R lt]R R l4       tRtR]R&   ]R 4       t]R]3R V 3R  lll4       t]R!RR"R#/R$ R% ll4       t]R!RR"R#R]P@                  RR/R& R' ll4       t!]RuR( R) ll4       t"R* R+ lt#R, R- lt$R. R/ lt%RvR1 R2 llt&R3 R4 lt'R5RR!RR6RR7R#R8RR9R0R:^ /R; R< llt(R5RR!RR6RR=^R7R#R9R0/R> R? llt)R9R0/R@ V 3RA lllt*RwRB RC llt+RDRERFR/RG RH llt,RI t-].! RJ4      RK RL l4       t/]/t0RM t1RN t2RO RP lt3].! RQ4      RR 4       t4].! RS4      RT 4       t5].! RU4      RV 4       t6].! RW4      RX 4       t7].! RY4      RZ 4       t8].! R[4      R\ 4       t9].! R]4      R^ 4       t:].! R_4      R` 4       t;Ra Rb lt<Rc Rd lt=Re Rf lt>Rg Rh lt?Ri Rj lt@]AP                  ! Rk4      tC]D! RR]C4      tE]AP                  ! Rl4      tF]D! RR]F4      tG]AP                  ! Rm4      tH]D! RR]H4      tI]AP                  ! Rn4      tJ]D! RR]J4      tK]Ro Rp l4       tLRqtMV ;tN# )xTimedeltaArraya  
Pandas ExtensionArray for timedelta data.

.. warning::

   TimedeltaArray is currently experimental, and its API may change
   without warning. In particular, :attr:`TimedeltaArray.dtype` is
   expected to change to be an instance of an ``ExtensionDtype``
   subclass.

Parameters
----------
data : array-like
    The timedelta data.
dtype : numpy.dtype
    Currently, only ``numpy.dtype("timedelta64[ns]")`` is accepted.
freq : Offset, optional
    Frequency of the data.
copy : bool, default False
    Whether to copy the underlying array of data.

Attributes
----------
None

Methods
-------
None

See Also
--------
Timedelta : Represents a duration, the difference between two dates or times.
TimedeltaIndex : Immutable Index of timedelta64 data.
to_timedelta : Convert argument to timedelta.

Examples
--------
>>> pd.arrays.TimedeltaArray._from_sequence(pd.TimedeltaIndex(["1h", "2h"]))
<TimedeltaArray>
['0 days 01:00:00', '0 days 02:00:00']
Length: 2, dtype: timedelta64[us]
timedeltaarrayc                	0    \         P                  ! V R 4      # m)r   is_np_dtypexs   &rC   <lambda>TimedeltaArray.<lambda>   s    QRTWAXrE   zCallable[[DtypeObj], bool]_is_recognized_dtypec                   V ^8  d   QhRR/# r<   rH   np.timedelta64rA   )rB   s   "rC   rD   TimedeltaArray.__annotate__   s     0 0n 0rE   c                	D    \         P                  ! R V P                  4      # )r   )nptimedelta64unitrV   s   &rC   _internal_fill_value#TimedeltaArray._internal_fill_value   s    ~~eTYY//rE   c                   V ^8  d   QhRR/# )r<   rH   ztype[Timedelta]rA   )rB   s   "rC   rD   ro      s      o rE   c                	    \         # Nr   rt   s   &rC   _scalar_typeTimedeltaArray._scalar_type   s    rE   i  z	list[str]
_other_ops	_bool_opsrL   secondsmicrosecondsnanoseconds
_field_opsrs   freq_datetimelike_ops_datetimelike_methodsc                    V ^8  d   QhRRRR/# )r<   rh   rn   rH   Timedelta | NaTTyperA   )rB   s   "rC   rD   ro      s     C C> C.A CrE   c                	    VP                  R 4      pV\        P                  8X  d   \        # \        P                  ! W P
                  R7      # )i8rM   )viewr   _valuer   _from_value_and_resorS   )rV   rh   ys   && rC   	_box_funcTimedeltaArray._box_func   s4    FF4L

?J--akkBBrE   c                   V ^8  d   QhRR/# )r<   rH   np.dtype[np.timedelta64]rA   )rB   s   "rC   rD   ro      s     # #/ #rE   c                .    V P                   P                  # )z
The dtype for the TimedeltaArray.

.. warning::

   A future version of pandas will change dtype to be an instance
   of a :class:`pandas.api.extensions.ExtensionDtype` subclass,
   not a ``numpy.dtype``.

Returns
-------
numpy.dtype
)_ndarraydtypert   s   &rC   r   TimedeltaArray.dtype   s    " }}"""rE   NTick | Day | None_freqc                	|    \        V4      p\        VP                  4       W!P                  8w  d   \        R 4      hV# )z'Values resolution does not match dtype.)_validate_td64_dtyper   
ValueError)clsrW   r   s   &&&rC   _validate_dtypeTimedeltaArray._validate_dtype   s5     %U+V\\*LL FGGrE   c               (    V ^8  d   QhRRRRRRRR/# )	r<   rW   znpt.NDArray[np.timedelta64]r   r   r   r   rH   r   rA   )rB   s   "rC   rD   ro      s2      +   (	
 
rE   c                	v  < \         P                  ! VR 4      '       g   Q h\        P                  ! V4      '       d   Q h\	        V\
        P                  4      '       g   Q \        V4      4       hW1P                  8X  g   Q hVe   \	        V\        \        34      '       g   Q h\        SV `1  WR7      pW$n        V# )re   )rW   r   )r   rf   r	   is_unitless
isinstancerq   ndarraytyper   r   r
   super_simple_newr   )r   rW   r   r   rX   	__class__s   &&&& rC   r   TimedeltaArray._simple_new   s     uc****%%e,,,,&"**--;tF|;-$$$|z$s<<<<$F$@rE   r   copyFc                    V ^8  d   QhRRRR/# r<   r   boolrH   r   rA   )rB   s   "rC   rD   ro      s     B Bt B BrE   c               	   R pV'       dD   \        V4      p\        P                  ! V4      R8X  d   \        P                  ! V4      ^ ,          p\        WVR7      w  rVe   \        WRR7      pV P                  WP                  VR7      # )Nintegerr   rs   Fr   r   r   r   )	r   r   infer_dtyperq   datetime_datasequence_to_td64nsr   r   r   )r   datar   r   rs   r   s   &&$$  rC   _from_sequenceTimedeltaArray._from_sequence   sq    (/Et$	1''.q1'dC
&tuEDt::DAArE   c                    V ^8  d   QhRRRR/# r   rA   )rB   s   "rC   rD   ro     s       
  
rE   c               T   V'       dH   \        V4      pVf9   \        P                  ! V4      R8X  d   \        P                  ! V4      ^ ,          pVR9  g   Q h\        WVR7      w  rVe   \        WRR7      pV P                  WP                  VR7      pVP                  V/ 4       V# )zW
_from_sequence_not_strict but without responsibility for finding the
result's `freq`.
r   r   Fr   r   Yr   M)
r   r   r   rq   r   r   r   r   r   _maybe_pin_freq)r   r   r   r   r   rs   inferred_freqrX   s   &&$$$$  rC   _from_sequence_not_strict(TimedeltaArray._from_sequence_not_strict  s     (/E| 5 B''.q1?***0tL&tuEDZZmLtR(rE   c                    V ^8  d   QhRRRR/# )r<   rs   r8   rH   r   rA   )rB   s   "rC   rD   ro   $  s      (N (N>F(N	(NrE   c               	t   \         P                  ! V4      pVfJ   \        ;QJ d    R W1V3 4       F  '       g   K   RM	  RM! R W1V3 4       4      '       d   \        R4      h\        P
                  ! WW44      ^8w  d   \        R4      hVe   \        V4      P                  R4      pVe   \        V4      P                  R4      pVR9  d   \        R4      hVe   Ve   VP                  VRR7      pVe   Ve   VP                  VRR7      p\        V4      w  rxVe   \        WW4VR	7      p	M;\        P                  ! VP                  VP                  V4      P                  R
4      p	V'       g
   V	R,          p	V'       g   V	R R p	V	P                  RV R24      p
V P                  WP                   VR7      # )Nc              3  (   "   T F  qR J x  K
  	  R # 5iry   rA   ).0rh   s   & rC   	<genexpr>1TimedeltaArray._generate_range.<locals>.<genexpr>(  s     I3HaT	3Hs   TFz1Must provide freq argument if no data is suppliedzVOf the four parameters: start, end, periods, and freq, exactly three must be specifiednsz+'unit' must be one of 's', 'ms', 'us', 'ns'round_okrs   r   :   NNzm8[]r   )smsusr   )dtlvalidate_periodsanyr   comcount_not_noner   as_unitr   r/   rq   linspacer   astyper   r   r   )r   startendperiodsr   closedrs   left_closedright_closedindex
td64valuess   &&&&&&$    rC   _generate_rangeTimedeltaArray._generate_range#  s    &&w/<CCIGC3HICCCIGC3HIIIPQQe'8A=< 
 e$,,T2E?C.((.C..JKK!1MM$M7E?t/++dU+3C$6v$>!*5w4PEKKcjj'BII$OE"IE#2JEZZ#dV1.
z1A1AMMrE   c                   V ^8  d   QhRR/# rm   rA   )rB   s   "rC   rD   ro   Q  s     A An ArE   c                	<   \        WP                  4      '       g   V\        Jd   \        R 4      hV P	                  V4       V\        J d,   \
        P                  ! VP                  V P                  4      # VP                  V P                  RR7      P                  # )z'value' should be a Timedelta.Fr   )r   r{   r   r   _check_compatible_withrq   rr   r   rs   r   asm8rV   values   &&rC   _unbox_scalarTimedeltaArray._unbox_scalarQ  sq    %!2!233S8H=>>##E*C<>>%,,		::==U=;@@@rE   c                   V ^8  d   QhRR/# )r<   rH   r   rA   )rB   s   "rC   rD   ro   Z  s        ,?  rE   c                	    \        V4      # ry   rz   r   s   &&rC   _scalar_from_string"TimedeltaArray._scalar_from_stringZ  s    rE   c                   V ^8  d   QhRR/# )r<   rH   NonerA   )rB   s   "rC   rD   ro   ]  s      t rE   c                	    R # ry   rA   rV   others   &&rC   r   %TimedeltaArray._check_compatible_with]  s    rE   Tc                   V ^8  d   QhRR/# )r<   r   r   rA   )rB   s   "rC   rD   ro   d  s     I I$ IrE   c                	   \        V4      p\        P                  ! VR 4      '       d   WP                  8X  d   V'       d   V P	                  4       # V # \        V4      '       dI   \        V P                  VRR7      p\        V 4      P                  W3P                  V P                  R7      # \        RV P                   RV R24      h\        P                  P                  WVR7      # )re   Fr   r   zCannot convert from z to z1. Supported resolutions are 's', 'ms', 'us', 'ns')r&   r   rf   r   r   r   r   r   r   r   r   r   r   DatetimeLikeArrayMixinr   )rV   r   r   
res_valuess   &&& rC   r   TimedeltaArray.astyped  s    
 U#??5#&&

"99;&!%((0ER
Dz--&6&6TYY .   !*4::,d5' BF F 
 ))0040HHrE   c                   V ^8  d   QhRR/# )r<   rH   r2   rA   )rB   s   "rC   rD   ro     s     % %( %rE   c              #  	l  "   V P                   ^8  d(   \        \        V 4      4       F  pW,          x  K  	  R# V P                  p\        V 4      pRpW4,          ^,           p\        V4       F>  pW,          p\	        V^,           V,          V4      p\        W&V RR7      pT Rj  xL
  K@  	  R#  L
5i)r   i'  TboxN)ndimrangelenr   minr   )	rV   ir   length	chunksizechunksstart_iend_i	converteds	   &        rC   __iter__TimedeltaArray.__iter__  s     99q=3t9%g & ==DYFI)Q.F6]-QUi/8/U0CN	$$$	 # %s   B%B4'B2(B4axisoutkeepdimsinitialskipna	min_countc          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r<   r  AxisInt | Noner   NpDtype | Noner  r   r  r  intrA   )rB   s   "rC   rD   ro     s>     9 9 9 	9 9 9 9rE   c               	    \         P                  ! RR VRVRVRV/4       \        P                  ! V P                  WVR7      pV P                  W4      # )r   r  r  r  )r  r  r  rA   )nvvalidate_sumr+   nansumr   _wrap_reduction_result)	rV   r  r   r  r  r  r  r  rX   s	   &$$$$$$$ rC   sumTimedeltaArray.sum  sT     	%Z9gV	
 MMy
 **488rE   ddofc          
     ,    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  rA   )rB   s   "rC   rD   ro     s>     / / / 	/ / / /rE   c          	     	    \         P                  ! RR VRVRV/RR7       \        P                  ! V P                  WVR7      pVe   V P
                  ^8X  d   V P                  V4      # V P                  V4      # )r   r  r  std)fname)r  r  r  rA   )r  validate_stat_ddof_funcr+   nanstdr   r   r   _from_backing_data)rV   r  r   r  r  r  r  rX   s   &$$$$$$ rC   r  TimedeltaArray.std  sm     	""%ZB%	
 t}}4TR<499>>>&))&&v..rE   c                    V ^8  d   QhRRRR/# )r<   r=   r>   r  r   rA   )rB   s   "rC   rD   ro     s     
F 
F 
F 
FrE   c               	  < VR 8X  d[   \        \        V4      pV! V P                  P                  4       3RV/VB p\	        V 4      P                  VRV P                  R7      # VR8X  d   \        R4      h\        SV `$  ! V3RV/VB # )cumsumr  N)r   r   cumprodz$cumprod not supported for Timedelta.)
getattrr-   r   r   r   r   r   	TypeErrorr   _accumulate)rV   r=   r  kwargsoprX   r   s   &&$,  rC   r+  TimedeltaArray._accumulate  s    83T:B**,FVFvFF:))&t4::)NNYBCC 7&tEFEfEErE   c                   V ^8  d   QhRR/# )r<   boxedr   rA   )rB   s   "rC   rD   ro     s     6 6 6rE   c                	"    ^ RI Hp V! V RR7      # )r   get_format_timedelta64Tr   )pandas.io.formats.formatr3  )rV   r0  r3  s   && rC   
_formatterTimedeltaArray._formatter  s    C%d55rE   na_repr   date_formatc                    V ^8  d   QhRRRR/# )r<   r7  zstr | floatrH   npt.NDArray[np.object_]rA   )rB   s   "rC   rD   ro     s     	= 	=$	=	 	=rE   c               	n    ^ RI Hp V! W4      p\        P                  ! V^^4      ! V P                  4      # )r   r2  )r4  r3  rq   
frompyfuncr   )rV   r7  r8  r,  r3  	formatters   &$$,  rC   _format_native_types#TimedeltaArray._format_native_types  s2     	D +48	 }}Y1-dmm<<rE   c                	    \        V\        \        34      '       d   Q h\        R \	        V4      P
                   R\	        V 4      P
                   24      h)zcannot add the type z to a )r   r   r
   r*  r   r\   r   s   &&rC   _add_offsetTimedeltaArray._add_offset  sL    edC[1111"4;#7#7"8tDz?R?R>ST
 	
rE   __mul__c                   V ^8  d   QhRR/# )r<   rH   r   rA   )rB   s   "rC   rD   ro     s     7B 7B 7BrE   c                	   \        V4      '       d   \        P                  ! V4      '       d   \        R V P                   R24      hV P
                  V,          pVP                  P                  R8w  d"   \        R\        V4      P                   24      hRpV P                  e8   \        V4      '       g'   V P                  V,          pVP                  ^ 8X  d   Rp\        V 4      P                  W"P                  VR7      # \        VR4      '       g   \        P                  ! V4      pVP                  P                  R8X  d   \        R V P                   R24      h\!        VP                  \"        \$        34      '       d   \&        # \)        V4      \)        V 4      8w  d3   \        P*                  ! VP                  R4      '       g   \-        R4      h\/        VP                  4      '       d~   V P
                  p\1        \)        V 4      4       Uu. uF  qTV,          W,          ,          NK  	  pp\        P                  ! V4      p\        V 4      P                  W"P                  R	7      # V P
                  V,          pVP                  P                  R8w  d"   \        R\        V4      P                   24      h\        V 4      P                  W"P                  R	7      # u upi )
zCannot multiply 'z.' by bool, explicitly cast to integers insteadre   zCannot multiply with Nr   r   bz$Cannot multiply with unequal lengthsr   )r$   r   is_boolr*  r   r   kindr   r\   r   r*   nr   hasattrrq   arrayr   r'   r(   NotImplementedr   rf   r   r#   r   )rV   r   rX   r   arrrJ  s   &&    rC   rC  TimedeltaArray.__mul__  sD   U{{5!!'

| 4' ' 
 ]]U*F||  C'  "7U8L8L7M NOODyy$T%[[yy5(66Q;D:))&4)PPug&&HHUOE;;s"#DJJ< 0# #  ekkJ#@AA!!u:T"3??5;;+L+L CDD5;;'' --C16s4y1AB1AA!fux''1AFBXXf%F:))&)EE &<<# 3DK4H4H3IJKKDz%%fLL%AA Cs   K"c                >   \        WP                  4      '       d   \        V4      p\        RV4      \        J dR   \
        P                  ! V P                  \
        P                  R7      pVP                  \
        P                  4       V# V! V P                  V4      # V\        P                  \        P                  39   d8   \        R\!        V4      P"                   R\!        V 4      P"                   24      hV! V P                  V4      pRpV P$                  e   \        V P$                  \&        4      '       d{   V P$                  P(                  V,          ^ 8X  d(   \'        V P$                  P(                  V,          4      pMD\+        \        V P$                  P(                  R7      4      V,          pMV P$                  V,          pVP,                  ^ 8X  d   V P$                  P,                  ^ 8w  d   Rp\!        V 4      P/                  WDP0                  VR7      # )z^
Shared logic for __truediv__, __rtruediv__, __floordiv__, __rfloordiv__
with scalar 'other'.
r   rG  zCannot divide z by N)rL   r   )r   _recognized_scalarsr   r   r   rq   emptyshaperO   fillnanr   r,   rtruediv	rfloordivr*  r   r\   r   r
   rJ  r   nanosr   r   )rV   r   r-  resrX   r   s   &&&   rC   _scalar_divlike_op!TimedeltaArray._scalar_divlike_op   s   
 e5566e$E )51S8hhtzz< 
 dmmU++ i(()*=*=>>$T%[%9%9$:$tDz?R?R>ST  u-FDyy$ dii--yy{{U*a/"499;;%#78(		)DEM99u,D::?tyy!';  D:))&4)PPrE   c                	    \        VR 4      '       g   \        P                  ! V4      p\        V4      \        V 4      8w  d   \	        R4      hV# )r   z*Cannot divide vectors with unequal lengths)rK  rq   rL  r   r   r   s   &&rC   _cast_divlike_opTimedeltaArray._cast_divlike_opO  s=    ug&&HHUOEu:T"IJJrE   c                   V ^8  d   QhRR/# )r<   rH   znp.ndarray | SelfrA   )rB   s   "rC   rD   ro   X  s      /@ rE   c                   V! V P                   \        P                  ! V4      4      p\        VP                  4      '       g   \        VP                  4      '       dK   V\        P                  \        P                  39   d&   \        V 4      P                  W3P                  R7      # V\        P                  \        P                  39   d{   V P                  4       \        V4      ,          pVP                  4       '       dE   VP                  \        P                   4      p\        P"                  ! W4\        P$                  4       V# )zo
Shared logic for __truediv__, __floordiv__, and their reversed versions
with timedelta64-dtype ndarray other.
rG  )r   rq   asarrayr"   r   r!   operatortruedivfloordivr   r   r,   rW  r*   r   r   rO   putmaskrU  )rV   r   r-  rX   masks   &&&  rC   _vector_divlike_op!TimedeltaArray._vector_divlike_opX  s     DMM2::e#45U[[))^EKK-H-HbU
 O
 :))&)EE(##Y%8%89999;e,Dxxzzrzz2

60rE   __truediv__c                	   \         P                  p\        V4      '       d   V P                  W4      # V P	                  V4      p\
        P                  ! VP                  R 4      '       g7   \        VP                  4      '       g   \        VP                  4      '       d   V P                  W4      # \        VP                  4      '       d   \        P                  ! V4      pV P                  ^8  da   \        WRR7       UUu. uF  w  r4W4,          NK  	  pppV Uu. uF  qfP!                  ^R4      NK  	  pp\        P"                  ! V^ R7      pV# \%        V P&                  V4      pV# \(        # u uppi u upi re   T)strict)r  r   )rb  rc  r$   rZ  r]  r   rf   r   r"   r!   rg  r#   rq   ra  r   zipreshapeconcatenater   r   rM  	rV   r   r-  leftrightres_colsrh   	res_cols2rX   s	   &&       rC   ri  TimedeltaArray.__truediv__n  s2    U**555%%e,OOEKK--,,ekk****5555;;''JJu%Eyy1}47D4Q4Q[TDLL4Q   8@@x!YYq"-x	@	: M .dmmUCM "! As   E2E8__rtruediv__c                	   \         P                  p\        V4      '       d   V P                  W4      # V P	                  V4      p\
        P                  ! VP                  R 4      '       d   V P                  W4      # \        VP                  4      '       dM   \        \        V 4      4       Uu. uF  q1V,          W,          ,          NK  	  pp\        P                  ! V4      # \        # u upi rd   )r,   rV  r$   rZ  r]  r   rf   r   rg  r#   r   r   rq   rL  rM  )rV   r   r-  rJ  result_lists   &&   rC   rv  TimedeltaArray.__rtruediv__  s     U**555%%e,??5;;,,**555U[[)) 8=SY7GH7G!8dg--7GKH88K(( "!	 Is   -C)__floordiv__c                	&   \         P                  p\        V4      '       d   V P                  W4      # V P	                  V4      p\
        P                  ! VP                  R 4      '       g7   \        VP                  4      '       g   \        VP                  4      '       d   V P                  W4      # \        VP                  4      '       d   \        P                  ! V4      pV P                  ^8  d`   \        WRR7       UUu. uF  w  r4W4,          NK  	  pppV Uu. uF  qfP!                  ^R4      NK  	  pp\        P"                  ! V^ R7      pM\%        V P&                  V4      pVP                  \(        8X  g   Q hV# \*        # u uppi u upi rk  )rb  rd  r$   rZ  r]  r   rf   r   r"   r!   rg  r#   rq   ra  r   rm  rn  ro  r   r   objectrM  rp  s	   &&       rC   rz  TimedeltaArray.__floordiv__  s9   U**555%%e,OOEKK--,,ekk****555U[[))JJu%Eyy1}58T5R5RkdDMM5R   8@@x!YYq"-x	@	:.t}}eD<<6)))M "! As   FF__rfloordiv__c                	   \         P                  p\        V4      '       d   V P                  W4      # V P	                  V4      p\
        P                  ! VP                  R 4      '       d   V P                  W4      # \        VP                  4      '       dO   \        \        V 4      4       Uu. uF  q1V,          W,          ,          NK  	  pp\        P                  ! V4      pV# \        # u upi rd   )r,   rW  r$   rZ  r]  r   rf   r   rg  r#   r   r   rq   rL  rM  )rV   r   r-  rJ  rx  rX   s   &&    rC   r~  TimedeltaArray.__rfloordiv__  s      U**555%%e,??5;;,,**555U[[))8=c$i8HI8H18tw..8HKIXXk*FM "! Js   -C+__mod__c                	z    \        WP                  4      '       d   \        V4      pW V,          V,          ,
          # ry   r   rQ  r   r   s   &&rC   r  TimedeltaArray.__mod__  s1     e5566e$Eu}---rE   __rmod__c                	z    \        WP                  4      '       d   \        V4      pWV ,          V ,          ,
          # ry   r  r   s   &&rC   r  TimedeltaArray.__rmod__  s1     e5566e$E---rE   
__divmod__c                	    \        WP                  4      '       d   \        V4      pW,          pWV,          ,
          pW#3# ry   r  rV   r   res1res2s   &&  rC   r  TimedeltaArray.__divmod__  s:     e5566e$E}Ul"zrE   __rdivmod__c                	    \        WP                  4      '       d   \        V4      pW,          pWV ,          ,
          pW#3# ry   r  r  s   &&  rC   r  TimedeltaArray.__rdivmod__  s:     e5566e$E}d{"zrE   c                   V ^8  d   QhRR/# r<   rH   ra   rA   )rB   s   "rC   rD   ro     s     S S SrE   c                	    R pV P                   e   V P                   ) p\        V 4      P                  V P                  ) V P                  VR7      # )Nr   )r   r   r   r   r   )rV   r   s   & rC   __neg__TimedeltaArray.__neg__  sB    99 II:DDz%%t}}nDJJT%RRrE   c                   V ^8  d   QhRR/# r  rA   )rB   s   "rC   rD   ro     s     
 
 
rE   c                	    \        V 4      P                  V P                  P                  4       V P                  V P
                  R 7      # )r   )r   r   r   r   r   r   rt   s   &rC   __pos__TimedeltaArray.__pos__  s:    Dz%%MM 

 & 
 	
rE   c                   V ^8  d   QhRR/# r  rA   )rB   s   "rC   rD   ro      s     O O OrE   c                	    \        V 4      P                  \        P                  ! V P                  4      V P
                  R 7      # )rG  )r   r   rq   absr   r   rt   s   &rC   __abs__TimedeltaArray.__abs__   s-    Dz%%bffT]]&;4::%NNrE   c                   V ^8  d   QhRR/# )r<   rH   znpt.NDArray[np.float64]rA   )rB   s   "rC   rD   ro     s     7J 7J6 7JrE   c                t    \        V P                  4      pV P                  V P                  V,          RR7      # )a!  
Return total duration of each element expressed in seconds.

This method is available directly on TimedeltaArray, TimedeltaIndex
and on Series containing timedelta values under the ``.dt`` namespace.

Returns
-------
ndarray, Index or Series
    When the calling object is a TimedeltaArray, the return type
    is ndarray.  When the calling object is a TimedeltaIndex,
    the return type is an Index with a float64 dtype. When the calling object
    is a Series, the return type is Series of type `float64` whose
    index is the same as the original.

See Also
--------
datetime.timedelta.total_seconds : Standard library version
    of this method.
TimedeltaIndex.components : Return a DataFrame with components of
    each Timedelta.

Examples
--------
**Series**

>>> s = pd.Series(pd.to_timedelta(np.arange(5), unit="D"))
>>> s
0   0 days
1   1 days
2   2 days
3   3 days
4   4 days
dtype: timedelta64[s]

>>> s.dt.total_seconds()
0         0.0
1     86400.0
2    172800.0
3    259200.0
4    345600.0
dtype: float64

**TimedeltaIndex**

>>> idx = pd.to_timedelta(np.arange(5), unit="D")
>>> idx
TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'],
               dtype='timedelta64[s]', freq=None)

>>> idx.total_seconds()
Index([0.0, 86400.0, 172800.0, 259200.0, 345600.0], dtype='float64')
N)rP   )r   rS   rU   rR   )rV   ppss   & rC   total_secondsTimedeltaArray.total_seconds  s1    l !-''		CD'IIrE   c                   V ^8  d   QhRR/# )r<   rH   r:  rA   )rB   s   "rC   rD   ro   @  s     '2 '2 7 '2rE   c                ,    \        V P                  4      # )a3  
Return an ndarray of datetime.timedelta objects.

Returns
-------
numpy.ndarray
    A NumPy ``timedelta64`` object representing the same duration as the
    original pandas ``Timedelta`` object. The precision of the resulting
    object is in nanoseconds, which is the default
    time resolution used by pandas for ``Timedelta`` objects, ensuring
    high precision for time-based calculations.

See Also
--------
to_timedelta : Convert argument to timedelta format.
Timedelta : Represents a duration between two dates or times.
DatetimeIndex: Index of datetime64 data.
Timedelta.components : Return a components namedtuple-like
                       of a single timedelta.

Examples
--------
>>> 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.to_pytimedelta()
array([datetime.timedelta(days=1), datetime.timedelta(days=2),
       datetime.timedelta(days=3)], dtype=object)

>>> tidx = pd.TimedeltaIndex(data=["1 days 02:30:45", "3 days 04:15:10"])
>>> tidx
TimedeltaIndex(['1 days 02:30:45', '3 days 04:15:10'],
       dtype='timedelta64[us]', freq=None)
>>> tidx.to_pytimedelta()
array([datetime.timedelta(days=1, seconds=9045),
        datetime.timedelta(days=3, seconds=15310)], dtype=object)
)r   r   rt   s   &rC   to_pytimedeltaTimedeltaArray.to_pytimedelta@  s    N #4==11rE   a8  Number of days for each element.

    See Also
    --------
    Series.dt.seconds : Return number of seconds for each element.
    Series.dt.microseconds : Return number of microseconds for each element.
    Series.dt.nanoseconds : Return number of nanoseconds for each element.

    Examples
    --------
    For Series:

    >>> ser = pd.Series(pd.to_timedelta([1, 2, 3], unit='D'))
    >>> ser
    0   1 days
    1   2 days
    2   3 days
    dtype: timedelta64[s]
    >>> ser.dt.days
    0    1
    1    2
    2    3
    dtype: int64

    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.days
    Index([0, 10, 20], dtype='int64')a2  Number of seconds (>= 0 and less than 1 day) for each element.

    See Also
    --------
    Series.dt.seconds : Return number of seconds for each element.
    Series.dt.nanoseconds : Return number of nanoseconds for each element.

    Examples
    --------
    For Series:

    >>> ser = pd.Series(pd.to_timedelta([1, 2, 3], unit='s'))
    >>> ser
    0   0 days 00:00:01
    1   0 days 00:00:02
    2   0 days 00:00:03
    dtype: timedelta64[s]
    >>> ser.dt.seconds
    0    1
    1    2
    2    3
    dtype: int32

    For TimedeltaIndex:

    >>> tdelta_idx = pd.to_timedelta([1, 2, 3], unit='s')
    >>> tdelta_idx
    TimedeltaIndex(['0 days 00:00:01', '0 days 00:00:02', '0 days 00:00:03'],
                   dtype='timedelta64[s]', freq=None)
    >>> tdelta_idx.seconds
    Index([1, 2, 3], dtype='int32')a  Number of microseconds (>= 0 and less than 1 second) for each element.

    See Also
    --------
    pd.Timedelta.microseconds : Number of microseconds (>= 0 and less than 1 second).
    pd.Timedelta.to_pytimedelta.microseconds : Number of microseconds (>= 0 and less
        than 1 second) of a datetime.timedelta.

    Examples
    --------
    For Series:

    >>> ser = pd.Series(pd.to_timedelta([1, 2, 3], unit='us'))
    >>> ser
    0   0 days 00:00:00.000001
    1   0 days 00:00:00.000002
    2   0 days 00:00:00.000003
    dtype: timedelta64[us]
    >>> ser.dt.microseconds
    0    1
    1    2
    2    3
    dtype: int32

    For TimedeltaIndex:

    >>> tdelta_idx = pd.to_timedelta([1, 2, 3], unit='us')
    >>> tdelta_idx
    TimedeltaIndex(['0 days 00:00:00.000001', '0 days 00:00:00.000002',
                    '0 days 00:00:00.000003'],
                   dtype='timedelta64[us]', freq=None)
    >>> tdelta_idx.microseconds
    Index([1, 2, 3], dtype='int32')a  Number of nanoseconds (>= 0 and less than 1 microsecond) for each element.

    See Also
    --------
    Series.dt.seconds : Return number of seconds for each element.
    Series.dt.microseconds : Return number of nanoseconds for each element.

    Examples
    --------
    For Series:

    >>> ser = pd.Series(pd.to_timedelta([1, 2, 3], unit='ns'))
    >>> ser
    0   0 days 00:00:00.000000001
    1   0 days 00:00:00.000000002
    2   0 days 00:00:00.000000003
    dtype: timedelta64[ns]
    >>> ser.dt.nanoseconds
    0    1
    1    2
    2    3
    dtype: int32

    For TimedeltaIndex:

    >>> tdelta_idx = pd.to_timedelta([1, 2, 3], unit='ns')
    >>> tdelta_idx
    TimedeltaIndex(['0 days 00:00:00.000000001', '0 days 00:00:00.000000002',
                    '0 days 00:00:00.000000003'],
                   dtype='timedelta64[ns]', freq=None)
    >>> tdelta_idx.nanoseconds
    Index([1, 2, 3], dtype='int32')c                   V ^8  d   QhRR/# )r<   rH   r:   rA   )rB   s   "rC   rD   ro     s     6 6I 6rE   c                   a ^ RI Hp . ROoV P                  pV'       d   V3R lpMR pT! V  Uu. uF
  qC! V4      NK  	  upSR7      pV'       g   VP                  R4      pV# u upi )a  
Return a DataFrame of the individual resolution components of the Timedeltas.

The components (days, hours, minutes seconds, milliseconds, microseconds,
nanoseconds) are returned as columns in a DataFrame.

Returns
-------
DataFrame

See Also
--------
TimedeltaIndex.total_seconds : Return total duration expressed in seconds.
Timedelta.components : Return a components namedtuple-like of a single
    timedelta.

Examples
--------
>>> 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.components
   days  hours  minutes  seconds  milliseconds  microseconds  nanoseconds
0     1      0        3        0             0             2           42
r9   c                   < \        V 4      '       d"   \        P                  .\        S4      ,          # V P                  # ry   )r*   rq   rU  r   
components)rh   columnss   &rC   rY   $TimedeltaArray.components.<locals>.f/  s+    77FF8c'l22||#rE   c                    V P                   # ry   )r  rg   s   &rC   rY   r  6  s    ||#rE   )r  int64)rL   hoursminutesr   millisecondsr   r   )pandasr:   rT   r   )rV   r:   hasnansrY   rh   rX   r  s   &     @rC   r  TimedeltaArray.components  sc    8 	%
 ++$$ $/$QAaD$/A]]7+F 0s   A$rA   )r   rr   )rL   r   r   r   )r  r  roundfloorceilr   ry   )T)F)Or\   
__module____qualname____firstlineno__r]   _typr   rq   rr   r   rQ  rk   __annotations___infer_matchesr^   ru   r{   __array_priority__r}   r~   r   r   r   r   r   r   classmethodr   r    r   r   r   
no_defaultr   r   r   r   r   r   r	  r  r  r+  r5  r>  rA  r0   rC  __rmul__rZ  r]  rg  ri  rv  rz  r~  r  r  r  r  r  r  r  r  r  textwrapdedentdays_docstringr_   rL   seconds_docstringr   microseconds_docstringr   nanoseconds_docstringr   r  __static_attributes____classcell__)r   s   @rC   ra   ra   o   s.   )V D$bnnd;7X4X1N0 0   J	IyNJ	N#-	#9VV<L#LyL(9 C # #&  $E#   #'*6	  " B4 Be B B  	
  ^^  < (N (NZA I6%&9  $9 !%	9
 9 9 9 9 9(/  $/ !%	/
 / / / /,
Ft 
F 
F6
	=',	=:>	=
 i(7B )7Br H-Q^, m," -"< n-" ."( n-" ."< o." /"" i(. ). j). *. l+ , m, -S

O7Jr'2R __	)!ND 66>:D 	' B G &__ 	'"F #L %OO	'!D "K 6 6rE   ra   c               $    V ^8  d   QhRRRRRR/# )r<   r   r   errorsr4   rH   z$tuple[np.ndarray, Tick | Day | None]rA   )rB   s   "rC   rD   rD   C  s-     i i
i !	i
 *irE   c                |   VR9  g   Q hRpVe   \        V4      p\        P                  ! WRR7      w  r\        V \        4      '       d   V P
                  pV P                  \        8X  g   \        V P                  4      '       d   \        WVR7      p RpEM\        V P                  4      '       d"   \        WR7      w  rT;'       d    V'       * pEM\        V P                  4      '       d   \        V P                  \        4      '       d   V P                  pV P                  p M\         P"                  ! V 4      pVec   VR8w  d\   V P%                  \         P&                  4      pW`V8H  ,          P)                  4       pV'       d   \+        VRW#R7      w  r\,        W&   W3# \/        Y;'       g    R4      p \,        W&   V P1                  R	4      p RpM\2        P4                  ! V P                  R
4      '       dA   \7        V P                  4      '       g%   \9        V P                  4      p\;        WRR7      p RpM\=        RV P                   R24      hV'       g   \         P>                  ! V 4      p M\         P@                  ! WR7      p V P                  PB                  R
8X  g   Q hV P                  R8w  g   Q hW3# )at  
Parameters
----------
data : list-like
copy : bool, default False
unit : str, optional
    The timedelta unit to treat integers as multiples of. For numeric
    data this defaults to ``'ns'``.
    Must be un-specified if the data contains a str and ``errors=="raise"``.
errors : {"raise", "coerce", "ignore"}, default "raise"
    How to handle elements that cannot be converted to timedelta64[ns].
    See ``pandas.to_timedelta`` for details.

Returns
-------
converted : numpy.ndarray
    The sequence converted to a numpy array with dtype ``timedelta64[ns]``.
inferred_freq : Tick, Day, or None
    The inferred frequency of the sequence.

Raises
------
ValueError : Data cannot be converted to timedelta64[ns].

Notes
-----
Unlike `pandas.to_timedelta`, if setting ``errors=ignore`` will not cause
errors to be ignored; they are caught and subsequently ignored at a
higher level.
Nra   )cls_namers   r  Fr   r   )r   rs   r  zm8[ns]re   r   zdtype z' cannot be converted to timedelta64[ns]r   m8r   )"r   r   !ensure_arraylike_for_datetimeliker   ra   r   r   r|  r%   _objects_to_td64nsr"   _ints_to_td64nsr!   r)   _mask_datarq   isnanr   r  allr   r   r   r   r   rf   r   r   r   r*  ra  rL  rI  )r   r   rs   r  r   	copy_maderf  int_data	all_roundrX   _	new_dtypes   &&&&        rC   r   r   C  s'   H &&&M#D)66-JD $''		 zzVtzz::!$&A	$**	%	%)$:%%I	

	#	# djj.11::D::D88D>D {{288,H!12779I.5t	  $,,(||t<
yy"	S	)	)!$**--+DJJ7I&t5IDD &,STUUzz$xx(::??c!!!::rE   c                    V ^8  d   QhRRRR/# )r<   rs   r>   rH   ztuple[np.ndarray, bool]rA   )rB   s   "rC   rD   rD     s     ' ' '/F 'rE   c                f   RpVe   TMRpV P                   \        P                  8w  d"   V P                  \        P                  4      p RpVR8w  dN   RV R2pV P	                  V4      p \        V P                   4      pW@P                   8w  d   \        WR7      p RpW3# V P	                  R4      p W3# )a}  
Convert an ndarray with integer-dtype to timedelta64[ns] dtype, treating
the integers as multiples of the given timedelta unit.

Parameters
----------
data : numpy.ndarray with integer-dtype
unit : str, default "ns"
    The timedelta unit to treat integers as multiples of.

Returns
-------
numpy.ndarray : timedelta64[ns] array converted from data
bool : whether a copy was made
Fr   Tztimedelta64[r   rG  ztimedelta64[ns])r   rq   r  r   r   r   r   )r   rs   r  	dtype_strr  s   &&   rC   r  r    s      I#4DzzRXX {{288$	t|"4&*	yy#'

3	

"&t=D I
 ? yy*+?rE   c                    V ^8  d   QhRRRR/# )r<   r  r4   rH   rI   rA   )rB   s   "rC   rD   rD     s     # #1##rE   c                l    \         P                  ! V \         P                  R7      p\        W1VR7      pV# )a  
Convert an object-dtyped or string-dtyped array into a
timedelta64[ns]-dtyped array.

Parameters
----------
data : ndarray or Index
unit : str, default "ns"
    The timedelta unit to treat integers as multiples of.
    Must not be specified if the data contains a str.
errors : {"raise", "coerce", "ignore"}, default "raise"
    How to handle elements that cannot be converted to timedelta64[ns].
    See ``pandas.to_timedelta`` for details.

Returns
-------
numpy.ndarray : timedelta64[ns] array converted from data

Raises
------
ValueError : Data cannot be converted to timedelta64[ns].

Notes
-----
Unlike `pandas.to_timedelta`, if setting `errors=ignore` will not cause
errors to be ignored; they are caught and subsequently ignored at a
higher level.
rG  r  )rq   ra  object_r   )r   rs   r  rW   rX   s   &&&  rC   r  r    s*    @ ZZBJJ/F!&FCFMrE   c                   V ^8  d   QhRR/# )r<   rH   r5   rA   )rB   s   "rC   rD   rD     s      8 rE   c                    \        V 4      p V \        P                  ! R 4      8X  d   Rp\        V4      h\        P
                  ! V R4      '       g   \        RV  R24      h\        V 4      '       g   \        R4      hV # )r  zhPassing in 'timedelta' dtype with no precision is not allowed. Please pass in 'timedelta64[ns]' instead.re   zdtype 'z,' is invalid, should be np.timedelta64 dtypez;Supported timedelta64 resolutions are 's', 'ms', 'us', 'ns')r&   rq   r   r   r   rf   r   )r   msgs   & rC   r   r     st    E8 	 o??5#&&75')UVWW&&VWWLrE   )FNraise)r   )Nr  )^
__future__r   datetimer   rb  typingr   r   r   numpyrq   pandas._libsr   r	   pandas._libs.tslibsr
   r   r   r   r   r   r   r   r   r   r   pandas._libs.tslibs.conversionr   pandas._libs.tslibs.fieldsr   r   pandas._libs.tslibs.timedeltasr   r   r   r   r   pandas.compat.numpyr   r  pandas.util._decoratorsr   pandas.util._validatorsr   pandas.core.dtypes.commonr    r!   r"   r#   r$   r%   r&   pandas.core.dtypes.dtypesr'   r(   r)   pandas.core.dtypes.missingr*   pandas.corer+   r,   pandas.core.array_algosr-   pandas.core.arraysr.   r   pandas.core.arrays._rangesr/   pandas.core.commoncorecommonr   pandas.core.ops.commonr0   collections.abcr1   r2   pandas._typingr3   r4   r5   r6   r7   r8   r  r:   r  r_   TimelikeOpsra   r   r  r  r   rA   rE   rC   <module>r     s    "        E  / . 6   
 , ? 2 =     ;2  ! , OLS__ L LfiX'T#LrE   