ó
    Ñ]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      €ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/core/arrays/timedeltas.pyÚfÚ_field_accessor.<locals>.fZ   s_   ø€ Ø—‘ˆØ�F‹?Ü'¨·[±[ÑA‰Fô
 )¨°¸T¿[¹[ÑIˆFØ�;�;Ø×-Ñ-Ø 4°ð .ð ˆFð ˆó    Ú
)Úreturnú
np.ndarray)Ú__name__Ú__doc__Úproperty)ÚnamerJ   Ú	docstringrL   s    `  rK   Ú_field_accessorrW   Y   s)   ø€ ÷ð  „JØ�Y�K˜rÐ"€A„IÜ�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ÚTimedeltaArrayéo   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   € ÄÇÂÐQRÐTWÔAXrN   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   € ä�~Š~˜e T§Y¡YÓ/Ð/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   € Ø�F‰F�4‹LˆØ”—
‘
‹?ÜˆJÜ×-Ò-¨a·k±kÑ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Ÿ\™\Ô*Ø—L‘LÓ ÜÐ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š   ø€ ô �Š˜u c×*Ñ*Ð*Ð*Ü×%Ò% e×,Ñ,Ð,Ð,Ü˜&¤"§*¡*×-Ñ-Ð;¬t°F«|Ó;Ð-ØŸ™Ó$Ð$Ð$Ø‰|œ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‰
ˆàÑÜ& t¸uÑEˆDà�‰˜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ÑˆàÑÜ& t¸uÑEˆDà—‘ ¯Z©Z¸m�ÐLˆà×Ñ˜t RÔ(Øˆ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                  XªR                   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   é € ÐIÒ3H¨a T¥	Ò3Hùs   ‚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ÑI°GÀCÑ3HÓI×IÑIÜÐPÓQÐQä×Ò˜e¨'Ó8¸AÓ=Üð<óð ð
 ÑÜ˜eÓ$×,Ñ,¨TÓ2ˆEà‰?Ü˜C“.×(Ñ(¨Ó.ˆCàÐ.Ó.ÜÐJÓKÐKàÑ Ñ!1Ø—M‘M $°�MÐ7ˆEØ‰?˜tÑ/Ø—+‘+˜d¨U�+Ð3ˆCä$6°vÓ$>Ñ!ˆàÑÜ*¨5°wÈ4ÑP‰Eä—K’K §¡¨c¯j©j¸'ÓB×IÑIÈ$ÓOˆEæØ˜!˜"�IˆEÞØ˜#˜2�JˆEà—Z‘Z # d V¨1 Ó.ˆ
Ø�‰˜z×1AÑ1AÈˆÐ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¸ÄSÒ8HÜÐ=Ó>Ð>Ø×#Ñ# 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 #×&Ñ&ØŸ
™
Ó"ÞØŸ9™9›;Ð&Ø�ä! %×(Ñ(ä0°·±ÀÈEÑR�
Ü˜D“z×-Ñ-Ø×&6Ñ&6¸T¿Y¹Yð .ð ð ô !Ø*¨4¯:©:¨,°d¸5¸'ð 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™   é € Ø�9‰9�q‹=Üœ3˜t›9Ö%�Ø‘g”ò &ð —=‘=ˆDÜ˜“YˆFØˆIØÑ)¨QÑ.ˆFÜ˜6–]�Ø™-�Ü˜Q ™U iÑ/°Ó8�Ü/°¸UÐ0CÈÑ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ô	
ô —’Ø�M‰M ¸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Ÿ}™}°4ÈTÑRˆØ‰<˜4Ÿ9™9¨›>Ø—>‘> &Ó)Ð)Ø×&Ñ& 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ÓÜÔ3°TÓ:ˆBÙ˜Ÿ™×*Ñ*Ó,ÑF°VÐF¸vÑFˆFä˜“:×)Ñ)¨&°tÀ4Ç:Á:Ð)ÐNÐNØ�YÓÜÐBÓCÐCô ‘7Ò& tÑE°FÐE¸fÑ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Ô-¨d¯m©mÓ<Ð<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   € Ü˜e¤d¬C [×1Ñ1Ð1Ð1ÜØ"¤4¨£;×#7Ñ#7Ð"8¸¼tÀD»z×?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»×8LÑ8LÐ7MÐ NÓOÐOØˆDØ�y‰yÑ$¬T°%¯[©[Ø—y‘y 5Ñ(�Ø—6‘6˜Q“;à�DÜ˜“:×)Ñ)¨&¿¹È4Ð)ÐPÐPä�u˜g×&Ñ&ä—H’H˜U“OˆEà�;‰;×Ñ˜sÓ"äØ# D§J¡J <ð 0#ð #óð ô �e—k‘k¤J´Ð#@×AÑAä!Ð!äˆu‹:œ˜T›Ó"¬3¯?ª?¸5¿;¹;È×+LÑ+Lô ÐCÓDÐDä˜5Ÿ;™;×'Ñ'ð —-‘-ˆCÜ16´s¸4³yÔ1AÓBÒ1A¨A˜!‘f˜u™xÔ'Ñ1AˆFÐBÜ—X’X˜fÓ%ˆFÜ˜“:×)Ñ)¨&¿¹Ð)ÐEÐEð —‘ Ñ&ˆØ�<‰<×Ñ Ó#ô Ð3´D¸³K×4HÑ4HÐ3IÐJÓKÐKÜ�D‹z×%Ñ% f·L±LÐ%Ð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Ó1´SÒ8ä—h’h˜tŸz™z´·±Ñ<�Ø—‘œŸ™Ô Ø�
ñ �d—m‘m UÓ+Ð+ð ”i×(Ñ(¬)×*=Ñ*=Ð>Ó>ÜØ$¤T¨%£[×%9Ñ%9Ð$:¸$¼tÀD»z×?RÑ?RÐ>SÐTóð ñ ˜Ÿ™ uÓ-ˆFØˆDà�y‰yÑ$ô ˜dŸi™i¬×-Ñ-Ø—y‘y—{‘{ UÑ*¨aÓ/Ü" 4§9¡9§;¡;°%Ñ#7Ó8™ä(¬¸¿	¹	¿¹Ñ)DÓEÈÑM™àŸ9™9 uÑ,�DØ—:‘: “? t§y¡y§¡¸!Ó';ð  �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=   € Ü�u˜g×&Ñ&ä—H’H˜U“OˆEäˆ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Ù   € ñ �D—M‘M¤2§:¢:¨eÓ#4Ó5ˆä˜UŸ[™[×)Ñ)¬^¸E¿K¹K×-HÑ-HÈbÜ×ÑÜ×ÑðU
ó O
ô ˜“:×)Ñ)¨&¿¹Ð)ÐEÐEà”(×#Ñ#¤Y×%8Ñ%8Ð9Ó9Ø—9‘9“;¤ e£Ñ,ˆDØ�x‰x�z‰zØŸ™¤r§z¡zÓ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Ó,ˆä�OŠO˜EŸK™K¨×-Ñ-Ü §¡×,Ñ,Ü˜eŸk™k×*Ñ*à×*Ñ*¨5Ó5Ð5ä˜5Ÿ;™;×'Ñ'Ü—J’J˜uÓ%ˆEØ�y‰y˜1‹}ä47¸ÈDÒ4QôÚ4Q¡[ T�D”LÑ4Qð ñ ñ 8@Ó@²x°!ŸY™Y q¨"Ö-±x�	Ð@ÜŸš¨	¸Ñ:�ð ˆMô .¨d¯m©m¸UÓ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À»YÔ7GÓHÒ7G°! ™8 d¡gÔ-Ñ7GˆKÐHÜ—8’8˜KÓ(Ð(ô "Ð!ùò	 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Ó,ˆä�OŠO˜EŸK™K¨×-Ñ-Ü §¡×,Ñ,Ü˜eŸk™k×*Ñ*à×*Ñ*¨5Ó5Ð5ä˜UŸ[™[×)Ñ)Ü—J’J˜uÓ%ˆEØ�y‰y˜1‹}ä58¸ÈTÒ5RôÚ5R¡k d�D”MÑ5Rð ñ ñ 8@Ó@²x°!ŸY™Y q¨"Ö-±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À$»iÔ8HÓIÒ8H°1 ™8 t¡wÔ.Ñ8HˆKÐIÜ—X’X˜kÓ*ˆ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à‰}ˆØ˜U‘lÑ"ˆØˆ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   € ØˆØ�9‰9Ñ Ø—I‘I�:ˆDÜ�D‹z×%Ñ% t§}¡} n¸D¿J¹JÈTÐ%Ð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:   € Ü�D‹z×%Ñ%Ø�M‰M×ÑÓ ¨¯
©
¸¿¹ð &ð 
ð 	
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-   € ä�D‹z×%Ñ%¤b§f¢f¨T¯]©]Ó&;À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+   ø€ Ü˜—7‘7ÜŸF™F˜8¤c¨'£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 	%ò
ˆð —+‘+ˆÞö$ò$ñ ©$Ó/ª$ Q˜A˜ažD©$Ñ/¸Ñ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Ø$ b§n¡n°dÐ;ÐÙ7XÐÐ4ÓXØ1€Nàó0ó ð0ð óó ðð Ðà€J�	ÓØ€IˆyÓÚN€J�	ÓNØ#-°	Ñ#9¸VÀVÐ<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'2ðR —_’_ð	)ó!€NñD ˜6 6¨>Ó:€Dà Ÿšð	'ó ÐñB ØØØó€Gð &Ÿ_š_ð 	'ó"ÐñF #ØØØó€Lð %ŸOšOð	'ó!Ðñ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–'   X”4$ [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ØÐ-ñ�J€Dô �$œ×'Ñ'ØŸ	™	ˆð ‡z�z”VÓœ¨t¯z©z×:Ñ:ä! $¸&ÑAˆØŠä	˜$Ÿ*™*×	%Ñ	%ä)¨$Ñ:‰ˆØ×%˜IœŠä	˜Ÿ
™
×	#Ñ	#ô �d—j‘j¤.×1Ñ1Ø—:‘:ˆDØ—:‘:‰Dä—8’8˜D“>ˆDàÑ ¨£ô —’ XÓ.ØŸ;™;¤r§x¡xÓ0�÷ /à¨Ñ!1Ñ2×7Ñ7Ó9ˆIÞÜ.Ø 5¨tñ‘	�ô  $�‘ØÐ,Ð,ä(¨¯|°tÓ<ˆÜˆ‰
Ø�y‰y˜Ó"ˆØ‰ä	�Š˜Ÿ™ S×	)Ñ	)Ü! $§*¡*×-Ñ-ä+¨D¯J©JÓ7ˆIÜ& tÀ5ÑIˆDØˆDøô ˜& §¡ Ð,SÐTÓUÐUæÜ�zŠz˜$Ó‰ä�xŠx˜Ñ(ˆà�:‰:�?‰?˜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à‡z�z”R—X‘XÓð �{‰{œ2Ÿ8™8Ó$ˆØˆ	àˆtƒ|Ø" 4 &¨Ð*ˆ	Ø�y‰y˜Ó#ˆä'¨¯
©
Ó3ˆ	ØŸ
™
Ó"Ü& tÑ=ˆDð ˆIð
 ˆ?Ðð �y‰yÐ*Ó+ˆàˆ?Ð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*   € ô@ �ZŠZ˜¤B§J¡JÑ/€Fä! &¸FÑC€FØ€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 #×&Ñ&Ü˜7 5 'Ð)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   