
    I j٤                    ^   S SK Jr  S SKJr  S SKrS SK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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 J!r!J"r"J#r#J$r$  S S
K%J&r'  S SK(J)r)  S SK*J+r+  S SK,J-r-J.r.J/r/J0r0J1r1J2r2J3r3  S SK4J5r5J6r6J7r7  S SK8J9r9  S SK:J;r;J<r<  S SK=J>r>  S SK?J@rA  S SKBJCrC  S SKDJEs  JFrG  S SKHJIrI  \(       a  S SKJJKrKJLrL  S SKMJNrNJOrOJPrPJQrQJRrRJSrS  S SKTJUrU  S SKVrVS S jrW\)" S5       " S S\AR                  5      5       rY   S!     S"S jjrZS#S$S jjr[ S%   S&S jjr\S'S jr]g)(    )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                L   ^ SU4S jjnXl         SU S3Ul        [        U5      $ )Nc                   > U R                   nTS:X  a  [        XR                  S9nO[        UTU R                  S9nU R                  (       a  U R                  US SS9nU$ )Ndaysresofloat64)
fill_valueconvert)asi8r   _cresor   _hasna_maybe_mask_results)selfvaluesresultaliass      n/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/core/arrays/timedeltas.pyf_field_accessor.<locals>.fZ   s_    F?'[[AF
 )T[[IF;;--4 . F     
)return
np.ndarray)__name____doc__property)namerJ   	docstringrL   s    `  rK   _field_accessorrW   Y   s)      JYKr"AIA;rN   zpandas.arraysc                    ^  \ rS rSr% SrSr\\R                  \	4r
S rS\S'   Sr\SYS j5       r\SZS	 j5       rS
r/ rS\S'   / rS\S'   / SQrS\S'   \\-   SS/-   rS\S'   / SQrS\S'   S[S jr\S\S j5       rSrS\S'   \S 5       r\S\4       S]U 4S jjj5       r\SSS.S^S jj5       r\SS\R@                  SS.   S^S  jj5       r!\ S_   S`S! jj5       r"SYS" jr#SaS# jr$SbS$ jr%ScSdS& jjr&SeS' jr'SSSSSS%S(S).         SfS* jjr(SSSS+SS%S,.         SgS- jjr)S%S..ShU 4S/ jjjr*SiSjS0 jjr+S1SS2.   SkS3 jjr,S4 r-\." S55      SlS6 j5       r/\/r0S7 r1S8 r2SmS9 jr3\." S:5      S; 5       r4\." S<5      S= 5       r5\." S>5      S? 5       r6\." S@5      SA 5       r7\." SB5      SC 5       r8\." SD5      SE 5       r9\." SF5      SG 5       r:\." SH5      SI 5       r;SnSJ jr<SnSK jr=SnSL jr>SoSM jr?SpSN jr@\AR                  " SO5      rC\D" SPSP\C5      rE\AR                  " SQ5      rF\D" SRSR\F5      rG\AR                  " SS5      rH\D" STST\H5      rI\AR                  " SU5      rJ\D" SVSV\J5      rK\SqSW j5       rLSXrMU =rN$ )rTimedeltaArrayo   a  
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    [         R                  " U S5      $ Nm)r   is_np_dtypexs    rK   <lambda>TimedeltaArray.<lambda>   s    QRTWAXrN   zCallable[[DtypeObj], bool]_is_recognized_dtype)r   timedelta64c                D    [         R                  " SU R                  5      $ )Nr   )npre   unitrG   s    rK   _internal_fill_value#TimedeltaArray._internal_fill_value   s    ~~eTYY//rN   c                    [         $ Nr   ri   s    rK   _scalar_typeTimedeltaArray._scalar_type   s    rN   i  z	list[str]
_other_ops	_bool_ops)r=   secondsmicrosecondsnanoseconds
_field_opsrh   freq_datetimelike_ops)to_pytimedeltatotal_secondsroundfloorceilas_unit_datetimelike_methodsc                    UR                  S5      nU[        R                  :X  a  [        $ [        R                  " X R
                  S9$ )Ni8r>   )viewr   _valuer   _from_value_and_resorD   )rG   ra   ys      rK   	_box_funcTimedeltaArray._box_func   s4    FF4L

?J--akkBBrN   c                .    U R                   R                  $ )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dtyperi   s    rK   r   TimedeltaArray.dtype   s    " }}"""rN   NTick | Day | None_freqc                z    [        U5      n[        UR                  5        X!R                  :w  a  [        S5      eU$ )Nz'Values resolution does not match dtype.)_validate_td64_dtyper   
ValueError)clsrH   r   s      rK   _validate_dtypeTimedeltaArray._validate_dtype   s5     %U+V\\*LL FGGrN   c                d  > [         R                  " US5      (       d   e[        R                  " U5      (       a   e[	        U[
        R                  5      (       d   [        U5      5       eX1R                  :X  d   eUb  [	        U[        [        45      (       d   e[        TU ]1  XS9nX$l        U$ )Nr^   )rH   r   )r   r_   r	   is_unitless
isinstancerg   ndarraytyper   r   r
   super_simple_newr   )r   rH   rw   r   rI   	__class__s        rK   r   TimedeltaArray._simple_new   s     uc****%%e,,,,&"**--;tF|;-$$$|z$s<<<<$F$@rN   Fr   copyc                   S nU(       a>  [        U5      n[        R                  " U5      S:X  a  [        R                  " U5      S   n[        XUS9u  pUb
  [        XSS9nU R                  XR                  US9$ )Nintegerr   r   rh   Fr   r   rw   )	r   r   infer_dtyperg   datetime_datasequence_to_td64nsr   r   r   )r   datar   r   rh   rw   s         rK   _from_sequenceTimedeltaArray._from_sequence   sq    (/Et$	1''.q1'dC
&tuEDt::DAArN   )r   r   rw   rh   c               0   U(       aA  [        U5      nUc3  [        R                  " U5      S:X  a  [        R                  " U5      S   nUS;  d   e[        XUS9u  pUb
  [        XSS9nU R                  XR                  US9nUR                  U0 5        U$ )zW
_from_sequence_not_strict but without responsibility for finding the
result's `freq`.
r   r   Yr   Mr   Fr   r   )
r   r   r   rg   r   r   r   r   r   _maybe_pin_freq)r   r   r   r   rw   rh   inferred_freqrI   s           rK   _from_sequence_not_strict(TimedeltaArray._from_sequence_not_strict  s     (/E| 5 B''.q1?***0tL&tuEDZZmLtR(rN   c                  [         R                  " U5      nUc$  [        S X1U4 5       5      (       a  [        S5      e[        R
                  " XX45      S:w  a  [        S5      eUb  [        U5      R                  S5      nUb  [        U5      R                  S5      nUS;  a  [        S5      eUb  Ub  UR                  USS	9nUb  Ub  UR                  USS	9n[        U5      u  pxUb  [        XX4US
9n	O;[        R                  " UR                  UR                  U5      R                  S5      n	U(       d  U	SS  n	U(       d  U	S S n	U	R                  SU S35      n
U R                  XR                   US9$ )Nc              3  (   #    U  H  oS L v   M
     g 7frm    ).0ra   s     rK   	<genexpr>1TimedeltaArray._generate_range.<locals>.<genexpr>(  s     I3HaT	3Hs   z1Must provide freq argument if no data is supplied   zVOf the four parameters: start, end, periods, and freq, exactly three must be specifiedns)smsusr   z+'unit' must be one of 's', 'ms', 'us', 'ns'Fround_okrh   r      zm8[]r   )dtlvalidate_periodsanyr   comcount_not_noner   r~   r   r/   rg   linspacer   astyper   r   r   )r   startendperiodsrw   closedrh   left_closedright_closedindex
td64valuess              rK   _generate_rangeTimedeltaArray._generate_range#  sv    &&w/<C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MrN   c                0   [        XR                  5      (       d  U[        La  [        S5      eU R	                  U5        U[        L a+  [
        R                  " UR                  U R                  5      $ UR                  U R                  SS9R                  $ )Nz'value' should be a Timedelta.Fr   )r   ro   r   r   _check_compatible_withrg   re   r   rh   r~   asm8rG   values     rK   _unbox_scalarTimedeltaArray._unbox_scalarQ  sq    %!2!233S8H=>>##E*C<>>%,,		::==U=;@@@rN   c                    [        U5      $ rm   rn   r   s     rK   _scalar_from_string"TimedeltaArray._scalar_from_stringZ  s    rN   c                    g rm   r   rG   others     rK   r   %TimedeltaArray._check_compatible_with]  s    rN   Tc                   [        U5      n[        R                  " US5      (       a  XR                  :X  a  U(       a  U R	                  5       $ U $ [        U5      (       aB  [        U R                  USS9n[        U 5      R                  X3R                  U R                  S9$ [        SU R                   SU S35      e[        R                  R                  XUS9$ )Nr^   Fr   r   zCannot convert from z to z1. Supported resolutions are 's', 'ms', 'us', 'ns')r&   r   r_   r   r   r   r   r   r   r   rw   r   r   DatetimeLikeArrayMixinr   )rG   r   r   
res_valuess       rK   r   TimedeltaArray.astyped  s    
 U#??5#&&

"99;&!%((0ER
Dz--&6&6TYY .   !*4::,d5' BF F 
 ))0040HHrN   c              #  0  #    U R                   S:  a"  [        [        U 5      5       H	  nX   v   M     g U R                  n[        U 5      nSnX4-  S-   n[        U5       H/  nX-  n[	        US-   U-  U5      n[        X&U SS9nU S h  vN   M1     g  N	7f)Nr   i'  Tbox)ndimrangelenr   minr   )	rG   ir   length	chunksizechunksstart_iend_i	converteds	            rK   __iter__TimedeltaArray.__iter__  s     99q=3t9%g & ==DYFI)Q.F6]-QUi/8/U0CN	$$$	 # %s   BB
B
Br   )axisr   outkeepdimsinitialskipna	min_countc                   [         R                  " SX#XES.5        [        R                  " U R                  XUS9nU R                  X5      $ )Nr   )r   r   r   r   )r   r   r   )nvvalidate_sumr+   nansumr   _wrap_reduction_result)	rG   r   r   r   r   r   r   r   rI   s	            rK   sumTimedeltaArray.sum  sH     	%V	
 MMy
 **488rN   r   )r   r   r   ddofr   r   c                   [         R                  " SX#US.SS9  [        R                  " U R                  XUS9nUb  U R
                  S:X  a  U R                  U5      $ U R                  U5      $ )Nr   )r   r   r   std)fname)r   r   r  r   )r   validate_stat_ddof_funcr+   nanstdr   r   r   _from_backing_data)rG   r   r   r   r  r   r   rI   s           rK   r  TimedeltaArray.std  se     	""%B%	
 t}}4TR<499>>>&))&&v..rN   )r   c                 > US:X  aW  [        [        U5      nU" U R                  R                  5       4SU0UD6n[	        U 5      R                  US U R                  S9$ US:X  a  [        S5      e[        TU ]$  " U4SU0UD6$ )Ncumsumr   )rw   r   cumprodz$cumprod not supported for Timedelta.)
getattrr-   r   r   r   r   r   	TypeErrorr   _accumulate)rG   rU   r   kwargsoprI   r   s         rK   r  TimedeltaArray._accumulate  s    83T:B**,FVFvFF:))&t4::)NNYBCC 7&tEFEfEErN   c                    SSK Jn  U" U SS9$ )Nr   get_format_timedelta64Tr   )pandas.io.formats.formatr  )rG   boxedr  s      rK   
_formatterTimedeltaArray._formatter  s    C%d55rN   r   )na_repdate_formatc               n    SSK Jn  U" X5      n[        R                  " USS5      " U R                  5      $ )Nr   r  r   )r  r  rg   
frompyfuncr   )rG   r  r  r  r  	formatters         rK   _format_native_types#TimedeltaArray._format_native_types  s2     	D +48	 }}Y1-dmm<<rN   c                    [        U[        [        45      (       a   e[        S[	        U5      R
                   S[	        U 5      R
                   35      e)Nzcannot add the type z to a )r   r   r
   r  r   rR   r   s     rK   _add_offsetTimedeltaArray._add_offset  sL    edC[1111"4;#7#7"8tDz?R?R>ST
 	
rN   __mul__c                t   [        U5      (       a  [        R                  " U5      (       a  [        SU R                   S35      eU R
                  U-  nUR                  R                  S:w  a!  [        S[        U5      R                   35      eS nU R                  b1  [        U5      (       d!  U R                  U-  nUR                  S:X  a  S n[        U 5      R                  X"R                  US9$ [        US5      (       d  [        R                  " U5      nUR                  R                  S:X  a  [        SU R                   S35      e[!        UR                  ["        [$        45      (       a  [&        $ [)        U5      [)        U 5      :w  a1  [        R*                  " UR                  S5      (       d  [-        S	5      e[/        UR                  5      (       ao  U R
                  n[1        [)        U 5      5       Vs/ s H  oTU   X   -  PM     nn[        R                  " U5      n[        U 5      R                  X"R                  S
9$ U R
                  U-  nUR                  R                  S:w  a!  [        S[        U5      R                   35      e[        U 5      R                  X"R                  S
9$ s  snf )NzCannot multiply 'z.' by bool, explicitly cast to integers insteadr^   zCannot multiply with r   r   r   bz$Cannot multiply with unequal lengthsr   )r$   r   is_boolr  r   r   kindr   rR   rw   r*   nr   hasattrrg   arrayr   r'   r(   NotImplementedr   r_   r   r#   r   )rG   r   rI   rw   arrr+  s         rK   r%  TimedeltaArray.__mul__  sA   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   <J5c                   [        XR                  5      (       a  [        U5      n[        SU5      [        L aN  [
        R                  " U R                  [
        R                  S9nUR                  [
        R                  5        U$ U" U R                  U5      $ U[        R                  [        R                  4;   a7  [        S[!        U5      R"                   S[!        U 5      R"                   35      eU" U R                  U5      nSnU R$                  b  [        U R$                  [&        5      (       aj  U R$                  R(                  U-  S:X  a#  ['        U R$                  R(                  U-  5      nO9[+        [        U R$                  R(                  S95      U-  nOU R$                  U-  nUR,                  S:X  a  U R$                  R,                  S:w  a  Sn[!        U 5      R/                  XDR0                  US9$ )	z^
Shared logic for __truediv__, __rtruediv__, __floordiv__, __rfloordiv__
with scalar 'other'.
Timedelta | NaTTyper(  zCannot divide z by Nr   )r=   r   )r   _recognized_scalarsr   r   r   rg   emptyshaper@   fillnanr   r,   rtruediv	rfloordivr  r   rR   rw   r
   r+  r   nanosr   r   )rG   r   r  resrI   rw   s         rK   _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PrN   c                    [        US5      (       d  [        R                  " U5      n[        U5      [        U 5      :w  a  [	        S5      eU$ )Nr   z*Cannot divide vectors with unequal lengths)r,  rg   r-  r   r   r   s     rK   _cast_divlike_opTimedeltaArray._cast_divlike_opO  s=    ug&&HHUOEu:T"IJJrN   c                z   U" U R                   [        R                  " U5      5      n[        UR                  5      (       d  [        UR                  5      (       aF  U[        R                  [        R                  4;   a"  [        U 5      R                  X3R                  S9$ U[        R                  [        R                  4;   au  U R                  5       [        U5      -  nUR                  5       (       aD  UR                  [        R                   5      n[        R"                  " X4[        R$                  5        U$ )zo
Shared logic for __truediv__, __floordiv__, and their reversed versions
with timedelta64-dtype ndarray other.
r(  )r   rg   asarrayr"   r   r!   operatortruedivfloordivr   r   r,   r9  r*   r   r   r@   putmaskr7  )rG   r   r  rI   masks        rK   _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rN   __truediv__c                   [         R                  n[        U5      (       a  U R                  X5      $ U R	                  U5      n[
        R                  " UR                  S5      (       d4  [        UR                  5      (       d  [        UR                  5      (       a  U R                  X5      $ [        UR                  5      (       a  [        R                  " U5      nU R                  S:  aX  [        XSS9 VVs/ s H	  u  p4X4-  PM     nnnU Vs/ s H  ofR!                  SS5      PM     nn[        R"                  " USS9nU$ [%        U R&                  U5      nU$ [(        $ s  snnf s  snf Nr^   r   T)strictr   r   )r   )rC  rD  r$   r<  r?  r   r_   r   r"   r!   rH  r#   rg   rB  r   zipreshapeconcatenater   r   r.  	rG   r   r  leftrightres_colsra   	res_cols2rI   s	            rK   rJ  TimedeltaArray.__truediv__n  s0    U**555%%e,OOEKK--,,ekk****5555;;''JJu%Eyy1}47D4Q4Q[TDL4Q   8@@x!YYq"-x	@	: M .dmmUCM "! As   ;E$E*__rtruediv__c                   [         R                  n[        U5      (       a  U R                  X5      $ U R	                  U5      n[
        R                  " UR                  S5      (       a  U R                  X5      $ [        UR                  5      (       aA  [        [        U 5      5       Vs/ s H  o1U   X   -  PM     nn[        R                  " U5      $ [        $ s  snf r]   )r,   r8  r$   r<  r?  r   r_   r   rH  r#   r   r   rg   r-  r.  )rG   r   r  r+  result_lists        rK   rW  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                   [         R                  n[        U5      (       a  U R                  X5      $ U R	                  U5      n[
        R                  " UR                  S5      (       d4  [        UR                  5      (       d  [        UR                  5      (       a  U R                  X5      $ [        UR                  5      (       a  [        R                  " U5      nU R                  S:  aW  [        XSS9 VVs/ s H	  u  p4X4-  PM     nnnU Vs/ s H  ofR!                  SS5      PM     nn[        R"                  " USS9nO[%        U R&                  U5      nUR                  [(        :X  d   eU$ [*        $ s  snnf s  snf rL  )rC  rE  r$   r<  r?  r   r_   r   r"   r!   rH  r#   rg   rB  r   rN  rO  rP  r   r   objectr.  rQ  s	            rK   r[  TimedeltaArray.__floordiv__  s7   U**555%%e,OOEKK--,,ekk****555U[[))JJu%Eyy1}58T5R5RkdDM5R   8@@x!YYq"-x	@	:.t}}eD<<6)))M "! As   ;E9E?__rfloordiv__c                   [         R                  n[        U5      (       a  U R                  X5      $ U R	                  U5      n[
        R                  " UR                  S5      (       a  U R                  X5      $ [        UR                  5      (       aC  [        [        U 5      5       Vs/ s H  o1U   X   -  PM     nn[        R                  " U5      nU$ [        $ s  snf r]   )r,   r9  r$   r<  r?  r   r_   r   rH  r#   r   r   rg   r-  r.  )rG   r   r  r+  rY  rI   s         rK   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                `    [        XR                  5      (       a  [        U5      nX U-  U-  -
  $ rm   r   r3  r   r   s     rK   rb  TimedeltaArray.__mod__  s1     e5566e$Eu}---rN   __rmod__c                `    [        XR                  5      (       a  [        U5      nXU -  U -  -
  $ rm   rd  r   s     rK   rf  TimedeltaArray.__rmod__  s1     e5566e$E---rN   
__divmod__c                h    [        XR                  5      (       a  [        U5      nX-  nXU-  -
  nX#4$ rm   rd  rG   r   res1res2s       rK   ri  TimedeltaArray.__divmod__  s:     e5566e$E}Ul"zrN   __rdivmod__c                h    [        XR                  5      (       a  [        U5      nX-  nXU -  -
  nX#4$ rm   rd  rk  s       rK   ro  TimedeltaArray.__rdivmod__  s:     e5566e$E}d{"zrN   c                    S nU R                   b  U R                   * n[        U 5      R                  U R                  * U R                  US9$ Nr   )rw   r   r   r   r   )rG   rw   s     rK   __neg__TimedeltaArray.__neg__  sB    99 II:DDz%%t}}nDJJT%RRrN   c                    [        U 5      R                  U R                  R                  5       U R                  U R
                  S9$ rs  )r   r   r   r   r   rw   ri   s    rK   __pos__TimedeltaArray.__pos__  s:    Dz%%MM 

 & 
 	
rN   c                    [        U 5      R                  [        R                  " U R                  5      U R
                  S9$ )Nr(  )r   r   rg   absr   r   ri   s    rK   __abs__TimedeltaArray.__abs__   s-    Dz%%bffT]]&;4::%NNrN   c                f    [        U R                  5      nU R                  U R                  U-  SS9$ )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)rA   )r   rD   rF   rC   )rG   ppss     rK   rz   TimedeltaArray.total_seconds  s1    l !-''		CD'IIrN   c                ,    [        U R                  5      $ )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   ri   s    rK   ry   TimedeltaArray.to_pytimedelta@  s    N #4==11rN   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')r=   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')rs   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')rt   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')ru   c                   ^ SSK Jn  / SQmU R                  nU(       a  U4S jnOS nU" U  Vs/ s H
  oC" U5      PM     snTS9nU(       d  UR                  S5      nU$ s  snf )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
r   r9   )r=   hoursminutesrs   millisecondsrt   ru   c                v   > [        U 5      (       a  [        R                  /[        T5      -  $ U R                  $ rm   )r*   rg   r7  r   
components)ra   columnss    rK   rL   $TimedeltaArray.components.<locals>.f/  s+    77FF8c'l22||#rN   c                    U R                   $ rm   )r  r`   s    rK   rL   r  6  s    ||#rN   )r  int64)pandasr:   rE   r   )rG   r:   hasnansrL   ra   rI   r  s         @rK   r  TimedeltaArray.components  sc    8 	%
 ++$$ $/$QAaD$/A]]7+F 0s   A r   )rP   np.timedelta64)rP   ztype[Timedelta])ra   r  rP   r2  )rP   np.dtype[np.timedelta64])rH   znpt.NDArray[np.timedelta64]rw   r   r   r  rP   r   )r   boolrP   r   rm   )rh   r8   rP   r   )rP   r2  )rP   None)T)r   r  )rP   r2   )
r   AxisInt | Noner   NpDtype | Noner   r  r   r  r   int)
r   r  r   r  r  r  r   r  r   r  )rU   strr   r  )F)r  r  )r  zstr | floatrP   npt.NDArray[np.object_])rP   r   )rP   znp.ndarray | Self)rP   rY   )rP   znpt.NDArray[np.float64])rP   r  )rP   r:   )OrR   
__module____qualname____firstlineno__rS   _typr   rg   re   r   r3  rd   __annotations___infer_matchesrT   rj   ro   __array_priority__rq   rr   rv   rx   r   r   r   r   classmethodr   r    r   r   r   
no_defaultr   r   r   r   r   r   r   r  r  r  r  r   r#  r0   r%  __rmul__r<  r?  rH  rJ  rW  r[  r_  rb  rf  ri  ro  rt  rw  r{  rz   ry   textwrapdedentdays_docstringrW   r=   seconds_docstringrs   microseconds_docstringrt   nanoseconds_docstringru   r  __static_attributes____classcell__)r   s   @rK   rY   rY   o   sd   )V D$bnnd;7X4X1N0 0   J	IyNJ	N#-	#9VV<L#LyL(9 C # #&  $E#   #'*6	+   (	
 
 " +/e B B 
 ^^
  
 < /3(N>F(N	(N (NZA I6%,  $ $9 9 	9 9 9 9.  $ $/ / 	/ / / /, 8< 
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rN   rY   c                   US;  d   eSnUb  [        U5      n[        R                  " XSS9u  p[        U [        5      (       a  U R
                  nU R                  [        :X  d  [        U R                  5      (       a  [        XUS9n SnGO[        U R                  5      (       a  [        XS9u  pU=(       a    U(       + nGO[        U R                  5      (       a  [        U R                  [        5      (       a  U R                  nU R                  n O[         R"                  " U 5      nUbv  US:w  ap  [         R$                  " S	S
9   U R'                  [         R(                  5      nSSS5        X`W:H  -  R+                  5       nU(       a  [-        USX#S9u  p[.        X'   X4$ [1        X=(       d    S5      n [.        X'   U R3                  S5      n SnO{[4        R6                  " U R                  S5      (       a<  [9        U R                  5      (       d!  [;        U R                  5      n[=        XSS9n SnO[?        SU R                   S35      eU(       d  [         R@                  " U 5      n O[         RB                  " XS9n U R                  RD                  S:X  d   eU R                  S:w  d   eX4$ ! , (       d  f       GNQ= f)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.
r   NrY   )cls_namerh   errorsFr   r   ignore)invalid)r   rh   r  zm8[ns]r^   r   zdtype z' cannot be converted to timedelta64[ns]r   m8)#r   r   !ensure_arraylike_for_datetimeliker   rY   rw   r   r]  r%   _objects_to_td64nsr"   _ints_to_td64nsr!   r)   _mask_datarg   isnanerrstater   r  allr   r   r   r   r   r_   r   r   r   r  rB  r-  r*  )r   r   rh   r  r   	copy_maderG  int_data	all_roundrI   _	new_dtypes               rK   r   r   C  s=   H &&&M#D)66-JD $''		 zzVtzz::!$&A	$**	%	%)$:%I	

	#	# djj.11::D::D88D>D X.;;rxx0 /!12779I.5t	  $,,(|t<
yy"	S	)	)!$**--+DJJ7I&t5IDD &,STUUzz$xx(::??c!!!::E /.s   	 J33
Kc                X   SnUb  UOSnU R                   [        R                  :w  a!  U R                  [        R                  5      n SnUS:w  aI  SU S3nU R	                  U5      n [        U R                   5      nX@R                   :w  a  [        XS9n SnX4$ U R	                  S5      n X4$ )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   r(  ztimedelta64[ns])r   rg   r  r   r   r   r   )r   rh   r  	dtype_strr  s        rK   r  r    s      I#4DzzRXX {{288$	t|"4&*	yy#'

3	

"&t=D I
 ? yy*+?rN   c                `    [         R                  " U [         R                  S9n[        X1US9nU$ )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.
r(  r  )rg   rB  object_r   )r   rh   r  rH   rI   s        rK   r  r    s*    @ ZZBJJ/F!&FCFMrN   c                    [        U 5      n U [        R                  " S5      :X  a  Sn[        U5      e[        R
                  " U S5      (       d  [        SU  S35      e[        U 5      (       d  [        S5      eU $ )Nr  zhPassing in 'timedelta' dtype with no precision is not allowed. Please pass in 'timedelta64[ns]' instead.r^   zdtype 'z,' is invalid, should be np.timedelta64 dtypez;Supported timedelta64 resolutions are 's', 'ms', 'us', 'ns')r&   rg   r   r   r   r_   r   )r   msgs     rK   r   r      st    E8 	 o??5#&&75')UVWW&&VWWLrN   )rU   r  rJ   r  rV   r  )FNraise)r   r  r  r4   rP   z$tuple[np.ndarray, Tick | Day | None])r   )rh   r  rP   ztuple[np.ndarray, bool])Nr  )r  r4   rP   rQ   )rP   r5   )^
__future__r   datetimer   rC  typingr   r   r   numpyrg   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  rW   TimelikeOpsrY   r   r  r  r   r   rN   rK   <module>r     s)   "        E  / . 6   
 , ? 2 =     ;2  ! , OLS__ L Lj 	#*	j
j !	j
 *jZ'V 5<#1##LrN   