
    MhƓ                       S SK Jr  S SKJr  S SKrS SK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  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(J)r)J*r*J+r+J,r,J-r-J.r.  S SK/J0r0  S SK1J2r2  S SK3J4r4J5r5  S SK6J7r7  S SK8J9r:  S SK;J<r<  S SK=J>s  J?r@  S SKAJBrB  \(       a  S SKCJDrD  S SKEJFrFJGrGJHrHJIrIJJrJJKrK  S SKLJMrM  S SKNrNSS jrO " S S\:R                  5      rQ   S     S S jjrRS!S"S jjrSS#S$S jjrTS%S jrUg)&    )annotations)	timedeltaN)TYPE_CHECKINGcast)libtslibs)	NaTNaTTypeTick	Timedeltaastype_overflowsafeget_supported_dtypeiNaTis_supported_dtypeperiods_per_second)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)validate_endpoints)TD64NS_DTYPEis_float_dtypeis_integer_dtypeis_object_dtype	is_scalaris_string_dtypepandas_dtype)ExtensionDtype)isna)nanops	roperator)datetimelike_accumulations)datetimelike)generate_regular_range)unpack_zerodim_and_defer)Iterator)AxisIntDateTimeErrorChoicesDtypeObjNpDtypeSelfnpt	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      O/var/www/html/env/lib/python3.13/site-packages/pandas/core/arrays/timedeltas.pyf_field_accessor.<locals>.fR   s_    F?'[[AF
 )T[[IF;;--4 . F     
)returnz
np.ndarray)__name____doc__property)namerC   	docstringrE   s    `  rD   _field_accessorrO   Q   s)      JYKr"AIA;rG   c                     ^  \ rS rSr% SrSr\R                  " SS5      r\	\R                  \
4rS rSr\SWS j5       rS	r/ rS
\S'   / rS
\S'   S/rS
\S'   / SQrS
\S'   \\-   \-   S/-   rS
\S'   / SQrS
\S'   SXS jr\SYS j5       rSr\r\S 5       r\S\4       SZU 4S jjj5       r\SSS.S[S jj5       r \SS\!RD                  SS.   S[S jj5       r#\ S\SS.   S]S  jjj5       r$S^S! jr%S_S" jr&S`S# jr'SaSbS% jjr(ScS& jr)SSSSSS$S'S(.         SdS) jjr*SSSS*SS$S+.         SeS, jjr+S$S-.SfU 4S. jjjr,SgShS/ jjr-SSS0.   SiS1 jjr.S2 r/\0" S35      SjS4 j5       r1\1r2S5 r3S6 r4SkS7 jr5\0" S85      S9 5       r6\0" S:5      S; 5       r7\0" S<5      S= 5       r8\0" S>5      S? 5       r9\0" S@5      SA 5       r:\0" SB5      SC 5       r;\0" SD5      SE 5       r<\0" SF5      SG 5       r=SlSH jr>SlSI jr?SlSJ jr@SmSK jrASnSL jrB\CR                  " SM5      rE\F" SNSN\E5      rG\CR                  " SO5      rH\F" SPSP\H5      rI\CR                  " SQ5      rJ\F" SRSR\J5      rK\CR                  " SS5      rL\F" STST\L5      rM\SoSU j5       rNSVrOU =rP$ )pTimedeltaArrayg   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
----------
values : array-like
    The timedelta data.

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

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

Methods
-------
None

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[ns]
timedeltaarrayr	   nsc                0    [         R                  " U S5      $ Nm)r   is_np_dtypexs    rD   <lambda>TimedeltaArray.<lambda>   s    S__Q%<rG   )r   timedelta64c                    [         $ Nr   r@   s    rD   _scalar_typeTimedeltaArray._scalar_type   s    rG   i  z	list[str]
_other_ops	_bool_opsfreq_object_ops)r6   secondsmicrosecondsnanoseconds
_field_opsunit_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i8r7   )viewr	   _valuer   _from_value_and_resor=   )r@   rZ   ys      rD   	_box_funcTimedeltaArray._box_func   s4    FF4L

?J--akkBBrG   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dtypera   s    rD   r   TimedeltaArray.dtype   s    " }}"""rG   Nc                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)clsrA   r   s      rD   _validate_dtypeTimedeltaArray._validate_dtype   s5     %U+V\\*LL FGGrG   c                X  > [         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[        5      (       d   e[        TU ]-  XS9nX$l        U$ )NrW   )rA   r   )r   rX   r   is_unitless
isinstancenpndarraytyper   r   super_simple_new_freq)r   rA   rf   r   rB   	__class__s        rD   r   TimedeltaArray._simple_new   s     uc****%%e,,,,&"**--;tF|;-$$$|z$5555$F$@rG   Fr   copyc                   U(       a  [        U5      n[        XS S9u  pUb
  [        XSS9nU R                  XR                  US9$ )Nr   rl   Fr   r   rf   )r   sequence_to_td64nsr   r   r   )r   datar   r   rf   s        rD   _from_sequenceTimedeltaArray._from_sequence   sF    (/E'dC
&tuEDt::DAArG   )r   r   rf   rl   c                   U(       a  [        U5      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`.
Yrz   Mr   Fr   r   )r   r   r   r   r   _maybe_pin_freq)r   r   r   r   rf   rl   inferred_freqrB   s           rD   _from_sequence_not_strict(TimedeltaArray._from_sequence_not_strict   sk     (/E?***0tL&tuEDZZmLtR(rG   rl   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b  US;  a  [        S5      eOSn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r_    ).0rZ   s     rD   	<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 specifiedrT   )smsusrT   z+'unit' must be one of 's', 'ms', 'us', 'ns'F)round_okr   rv      zm8[]r   )dtlvalidate_periodsanyr   comcount_not_noner   rs   r   r)   r   linspacerx   astyperw   r   r   )r   startendperiodsrf   closedrl   left_closedright_closedindex
td64valuess              rD   _generate_rangeTimedeltaArray._generate_range  s    &&w/<CIGC3HIIIPQQe'8A=< 
 e$,,T2E?C.((.C22 !NOO 3 D!1MM$M7E?t/++dU+3C$6v$>!*5w4PEKKcjj'BII$OE!"IE#2JEZZ#dV1.
z1A1AMMrG   c                2   [        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                  5      R                  $ )Nz'value' should be a Timedelta.)r   rb   r	   r   _check_compatible_withr   r]   rx   rl   rs   asm8r@   values     rD   _unbox_scalarTimedeltaArray._unbox_scalar?  sm    %!2!233S8H=>>##E*C<>>%,,		::==+000rG   c                    [        U5      $ r_   r`   r   s     rD   _scalar_from_string"TimedeltaArray._scalar_from_stringH  s    rG   c                    g r_   r   r@   others     rD   r   %TimedeltaArray._check_compatible_withK  s    rG   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$ )NrW   Fr   r   zCannot convert from z to z1. Supported resolutions are 's', 'ms', 'us', 'ns')r"   r   rX   r   r   r   r   r~   r   r   rf   r   r   DatetimeLikeArrayMixinr   )r@   r   r   
res_valuess       rD   r   TimedeltaArray.astypeR  s    
 U#??5#&&

"99;&!%((0ER
Dz--&6&6TYY .   !*4::,d5' BF F 
 ))0040HHrG   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   )	r@   ir   length	chunksizechunksstart_iend_i	converteds	            rD   __iter__TimedeltaArray.__iter__m  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)	r@   r   r   r   r   r   r   r   rB   s	            rD   sumTimedeltaArray.sum  sH     	%V	
 MMy
 **488rG   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)r@   r   r   r   r   r   r   rB   s           rD   r   TimedeltaArray.std  se     	""%B%	
 t}}4TR<499>>>&))&&v..rG   )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   )rf   r   cumprodz$cumprod not supported for Timedelta.)
getattrr'   r~   r   r   r   r   	TypeErrorr   _accumulate)r@   rM   r   kwargsoprB   r   s         rD   r   TimedeltaArray._accumulate  s    83T:B**,FVFvFF:))&t4::)NNYBCC 7&tEFEfEErG   c                    SSK Jn  U" U SS9$ )Nr   get_format_timedelta64Tr   )pandas.io.formats.formatr  )r@   boxedr  s      rD   
_formatterTimedeltaArray._formatter  s    C%d55rG   )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  r   
frompyfuncr~   )r@   r  r  r  r  	formatters         rD   _format_native_types#TimedeltaArray._format_native_types  s2     	D +48	 }}Y1-dmm<<rG   c                    [        U[        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   rJ   r   s     rD   _add_offsetTimedeltaArray._add_offset  sH    eT****"4;#7#7"8tDz?R?R>ST
 	
rG   __mul__c                P   [        U5      (       a  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5      [        U 5      :w  a1  [        R                   " UR                  S5      (       d  [#        S5      e[%        UR                  5      (       ao  U R                  n['        [        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 )NrW   zCannot multiply with r   r   r   z$Cannot multiply with unequal lengthsr   )r    r~   r   kindr   r   rJ   rf   r$   nr   hasattrr   arrayr   r   rX   r   r   r   )r@   r   rB   rf   arrr  s         rD   r  TimedeltaArray.__mul__  s   U]]U*F||  C'  "7U8L8L7M NOODyy$T%[[yy5(66Q;D:))&4)PPug&&HHUOE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   *H#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$                  U-  nUR&                  S:X  a  U R$                  R&                  S:w  a  Sn[!        U 5      R)                  XDR*                  US9$ )z^
Shared logic for __truediv__, __rtruediv__, __floordiv__, __rfloordiv__
with scalar 'other'.
Timedelta | NaTTyper  zCannot divide z by Nr   r   )r   _recognized_scalarsr   r   r	   r   emptyshaper9   fillnanr~   r&   rtruediv	rfloordivr   r   rJ   rf   nanosr   r   )r@   r   r  resrB   rf   s         rD   _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$ yy5(::?tyy!';  D:))&4)PPrG   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  r   r  r   r   r   s     rD   _cast_divlike_opTimedeltaArray._cast_divlike_op'  s=    ug&&HHUOEu:T"IJJrG   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~   r   asarrayr   r   r   operatortruedivfloordivr   r   r&   r&  r$   r   r   r9   putmaskr$  )r@   r   r  rB   masks        rD   _vector_divlike_op!TimedeltaArray._vector_divlike_op0  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rG   __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:  aY  [        X5       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 NrW   r   r   r   )r   )r0  r1  r    r)  r,  r   rX   r   r   r   r5  r   r   r/  r   zipreshapeconcatenater   r~   NotImplemented	r@   r   r  leftrightres_colsrZ   	res_cols2rB   s	            rD   r7  TimedeltaArray.__truediv__F  s"    U**555%%e,OOEKK--,,ekk****5555;;''JJu%Eyy1}<?<LM<L[TDL<LM7?@x!YYq"-x	@	: M .dmmUCM "! N@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 rV   )r&   r%  r    r)  r,  r   rX   r   r5  r   r   r   r   r  r=  )r@   r   r  r  result_lists        rD   rD  TimedeltaArray.__rtruediv__c  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:  aX  [        X5       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 r9  )r0  r2  r    r)  r,  r   rX   r   r   r   r5  r   r   r/  r   r:  r;  r<  r   r~   objectr=  r>  s	            rD   rH  TimedeltaArray.__floordiv__x  s)   U**555%%e,OOEKK--,,ekk****555U[[))JJu%Eyy1}=@=MN=MkdDM=MN7?@x!YYq"-x	@	:.t}}eD<<6)))M "! O@s   <E:F __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 rV   )r&   r&  r    r)  r,  r   rX   r   r5  r   r   r   r   r  r=  )r@   r   r  r  rF  rB   s         rD   rL  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-  -
  $ r_   r   r   r   r   s     rD   rO  TimedeltaArray.__mod__  s1     e5566e$Eu}---rG   __rmod__c                `    [        XR                  5      (       a  [        U5      nXU -  U -  -
  $ r_   rQ  r   s     rD   rS  TimedeltaArray.__rmod__  s1     e5566e$E---rG   
__divmod__c                h    [        XR                  5      (       a  [        U5      nX-  nXU-  -
  nX#4$ r_   rQ  r@   r   res1res2s       rD   rV  TimedeltaArray.__divmod__  s:     e5566e$E}Ul"zrG   __rdivmod__c                h    [        XR                  5      (       a  [        U5      nX-  nXU -  -
  nX#4$ r_   rQ  rX  s       rD   r\  TimedeltaArray.__rdivmod__  s:     e5566e$E}d{"zrG   c                    S nU R                   b  U R                   * n[        U 5      R                  U R                  * U R                  US9$ Nr   )rf   r   r   r~   r   )r@   rf   s     rD   __neg__TimedeltaArray.__neg__  sB    99 II:DDz%%t}}nDJJT%RRrG   c                    [        U 5      R                  U R                  R                  5       U R                  U R
                  S9$ r`  )r   r   r~   r   r   rf   ra   s    rD   __pos__TimedeltaArray.__pos__  s:    Dz%%MM 

 & 
 	
rG   c                    [        U 5      R                  [        R                  " U R                  5      U R
                  S9$ )Nr  )r   r   r   absr~   r   ra   s    rD   __abs__TimedeltaArray.__abs__  s-    Dz%%bffT]]&;4::%NNrG   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[ns]

>>> 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[ns]', freq=None)

>>> idx.total_seconds()
Index([0.0, 86400.0, 172800.0, 259200.0, 345600.0], dtype='float64')
N)r:   )r   r=   r?   r<   )r@   ppss     rD   ro   TimedeltaArray.total_seconds  s1    l !-''		CD'IIrG   c                ,    [        U R                  5      $ )a  
Return an ndarray of datetime.timedelta objects.

Returns
-------
numpy.ndarray

Examples
--------
>>> tdelta_idx = pd.to_timedelta([1, 2, 3], unit='D')
>>> tdelta_idx
TimedeltaIndex(['1 days', '2 days', '3 days'],
                dtype='timedelta64[ns]', freq=None)
>>> tdelta_idx.to_pytimedelta()
array([datetime.timedelta(days=1), datetime.timedelta(days=2),
       datetime.timedelta(days=3)], dtype=object)
)r   r~   ra   s    rD   rn   TimedeltaArray.to_pytimedelta  s    $ #4==11rG   aC  Number of days 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[ns]
    >>> 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[ns]', freq=None)
    >>> tdelta_idx.days
    Index([0, 10, 20], dtype='int64')r6   a  Number of seconds (>= 0 and less than 1 day) 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[ns]
    >>> 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[ns]', freq=None)
    >>> tdelta_idx.seconds
    Index([1, 2, 3], dtype='int32')rh   a  Number of microseconds (>= 0 and less than 1 second) for each element.

    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[ns]
    >>> 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[ns]', freq=None)
    >>> tdelta_idx.microseconds
    Index([1, 2, 3], dtype='int32')ri   a  Number of nanoseconds (>= 0 and less than 1 microsecond) 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')rj   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 )aX  
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

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   r2   )r6   hoursminutesrh   millisecondsri   rj   c                v   > [        U 5      (       a  [        R                  /[        T5      -  $ U R                  $ r_   )r$   r   r$  r   
components)rZ   columnss    rD   rE   $TimedeltaArray.components.<locals>.f  s+    77FF8c'l22||#rG   c                    U R                   $ r_   )rt  rY   s    rD   rE   rv    s    ||#rG   )ru  int64)pandasr3   r>   r   )r@   r3   hasnansrE   rZ   rB   ru  s         @rD   rt  TimedeltaArray.components  sc    , 	%
 ++$$ $/$QAaD$/A]]7+F 0s   A r   )rI   ztype[Timedelta])rZ   np.timedelta64rI   r  )rI   np.dtype[np.timedelta64])rA   znpt.NDArray[np.timedelta64]rf   zTick | Noner   r}  rI   r0   )r   boolrI   r0   r_   )rl   z
str | NonerI   r0   )rI   r|  )rI   r  )rI   None)T)r   r~  )rI   r+   )
r   AxisInt | Noner   NpDtype | Noner   r~  r   r~  r   int)
r   r  r   r  r   r  r   r~  r   r~  )rM   strr   r~  )F)r  r~  )r  zstr | floatrI   npt.NDArray[np.object_])rI   r0   )rI   znp.ndarray | Self)rI   rQ   )rI   znpt.NDArray[np.float64])rI   r  )rI   r3   )QrJ   
__module____qualname____firstlineno__rK   _typr   r]   _internal_fill_valuer   r   r   _is_recognized_dtype_infer_matchesrL   rb   __array_priority__rd   __annotations__re   rg   rk   rm   rt   r{   r   r   r   _default_dtypeclassmethodr   r   r   r   
no_defaultr   r   r   r   r   r   r   r   r   r   r	  r  r  r*   r  __rmul__r)  r,  r5  r7  rD  rH  rL  rO  rS  rV  r\  ra  rd  rh  ro   rn   textwrapdedentdays_docstringrO   r6   seconds_docstringrh   microseconds_docstringri   nanoseconds_docstringrj   rt  __static_attributes____classcell__)r   s   @rD   rQ   rQ   g   sk   #J D>>%6$bnnd;<1N  J	Iy$XK%NJ	N#-#;i#G6(#RyR(9 C # #& E!N   !*6	+  (	
 
 " +/e 	B 	B 
 ^^
  
 8 /3+NKO+N>H+N	+N +N`1 I6%,  $ $9 9 	9 9 9 9.  $ $/ / 	/ / / /, 8< 
F 
F6 (-$	=$	=	 	=
 i('B )'BR H'QR, m," -"8 n-" ."( n-" ."8 o." /"" i(. ). j). *. l+ , m, -S

O7Jr2( __	)N8 66>:D 	'8 G &__	': #L %OO	': "K 0 0rG   rQ   c                t   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OJ[        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[%        X=(       d    S5      n [&        X'   U R)                  S	5      n SnO{[*        R,                  " U R                  S
5      (       a<  [/        U R                  5      (       d!  [1        U R                  5      n[3        XSS9n SnO[5        SU R                   S35      eU(       d  [         R6                  " U 5      n O[         R8                  " XS9n U R                  R:                  S
:X  d   eU R                  S:w  d   eX4$ )an  
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 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   NrQ   )cls_namerl   errorsFr   rT   zm8[ns]rW   r   zdtype z' cannot be converted to timedelta64[ns]r   m8)r   r   !ensure_arraylike_for_datetimeliker   rQ   rf   r   rJ  r!   _objects_to_td64nsr   _ints_to_td64nsr   r#   _mask_datar   isnanr   r   rw   r   rX   r   r   r   r   r/  r  r  )r   r   rl   r  r   	copy_mader4  	new_dtypes           rD   r   r     s   H &&&M#D)66-JD $''		 zzVtzz::!$&A	$**	%	%)$:%I	

	#	# djj.11::D::D88D>D(|t<
yy"	S	)	)!$**--+DJJ7I&t5IDD &,STUUzz$xx(::??c!!!::rG   c                   SnUb  UOSnU R                   [        R                  :w  a!  U R                  [        R                  5      n SnUS:w  a*  SU S3nU R	                  U5      n [        U [        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
FrT   Tztimedelta64[r   r  timedelta64[ns])r   r   rx  r   rw   r   r   )r   rl   r  	dtype_strs       rD   r  r  F  s      I#4DzzRXX {{288$	t|"4&*	yy#"4|< 	
 ? yy*+?rG   c                ~    [         R                  " U [         R                  S9n[        X1US9nUR	                  S5      $ )a  
Convert a object-dtyped or string-dtyped array into an
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  r  )r   r/  object_r   rw   )r   rl   r  rA   rB   s        rD   r  r  n  s4    < ZZBJJ/F!&FCF;;())rG   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.rW   zdtype 'z,' is invalid, should be np.timedelta64 dtypez;Supported timedelta64 resolutions are 's', 'ms', 'us', 'ns')r"   r   r   r   r   rX   r   )r   msgs     rD   r   r     st    E8 	 o??5#&&75')UVWW&&VWWLrG   )rM   r  rC   r  rN   r  )FNraise)r   r~  r  r-   rI   ztuple[np.ndarray, Tick | None])rT   )rl   r  )Nr  )r  r-   )rI   r.   )V
__future__r   datetimer   r0  typingr   r   numpyr   pandas._libsr   r   pandas._libs.tslibsr	   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._validatorsr   pandas.core.dtypes.commonr   r   r   r   r    r!   r"   pandas.core.dtypes.dtypesr#   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.commonr*   collections.abcr+   pandas._typingr,   r-   r.   r/   r0   r1   ry  r3   r  rO   TimelikeOpsrQ   r   r  r  r   r   rG   rD   <module>r     s    "  
 
 
 
 E  / 6   5 + ? 2 =     ;(  ! ,xS__ xB 	#*	]
] !	]
 $]@%P!*HrG   