Ë
    *�£jÙ¤  ã                  óD  — d dl mZ d dlmZ d dlZd dlmZmZmZ d dl	Z
d dlmZmZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZ d d	lm Z m!Z!m"Z"m#Z#m$Z$ d d
l%m&Z' d dl(m)Z) d dl*m+Z+ d dl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z< d dl=m>Z> d dl?m@ZA d dlBmCZC d dlDmEc mFZG d dlHmIZI erd dlJmKZKmLZL d dlMmNZNmOZOmPZPmQZQmRZRmSZS d dlTmUZU d dlVZVd d„ZW e)d«       G d„ deAj°                  «      «       ZY	 	 	 d!	 	 	 	 	 d"d„ZZd#d$d„Z[	 d%	 	 	 d&d„Z\d'd„Z]y)(é    )Ú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                óJ   ‡— dˆfd„}| |_         d|› d�|_        t        |«      S )Nc                óÊ   •— | j                   }‰dk(  rt        || j                  ¬«      }nt        |‰| j                  ¬«      }| j                  r| j                  |d d¬«      }|S )NÚdays©ÚresoÚfloat64)Ú
fill_valueÚconvert)Úasi8r   Ú_cresor   Ú_hasnaÚ_maybe_mask_results)ÚselfÚvaluesÚresultÚaliass      €ú?C:\FundamentalWorkbench\vendor\pandas\core\arrays\timedeltas.pyÚfz_field_accessor.<locals>.fZ   sa   ø€ Ø—‘ˆØ�FŠ?Ü'¨°T·[±[ÔA‰Fô
 )¨°¸T¿[¹[ÔIˆFØ�;Š;Ø×-Ñ-Ø 4°ð .ó ˆFð ˆó    Ú
)Úreturnú
np.ndarray)Ú__name__Ú__doc__Úproperty)ÚnamerJ   Ú	docstringrL   s    `  rK   Ú_field_accessorrV   Y   s+   ø€ õð  €A„JØ�Y�K˜rÐ"€A„IÜ�A‹;ÐrM   zpandas.arraysc                  óŽ  ‡ — e Zd ZU dZdZeej                  efZ	d„ Z
ded<   dZedWd„«       ZedXd„«       Zd	Zg Zd
ed<   g Zd
ed<   g d¢Zd
ed<   eez   ddgz   Zd
ed<   g d¢Zd
ed<   dYd„ZedZd„«       ZdZded<   ed„ «       Zedef	 	 	 	 	 	 	 d[ˆ fd„«       Zedddœd\d„«       Zeddej>                  ddœ	 	 	 d\d„«       Z e	 d]	 	 	 d^d „«       Z!dWd!„Z"d_d"„Z#d`d#„Z$dadbd%„Z%dcd&„Z&dddddd$d'd(œ	 	 	 	 	 	 	 	 	 ddd)„Z'dddd*dd$d+œ	 	 	 	 	 	 	 	 	 ded,„Z(d$d-œdfˆ fd.„Z)dgdhd/„Z*d0dd1œ	 	 	 did2„Z+d3„ Z, e-d4«      djd5„«       Z.e.Z/d6„ Z0d7„ Z1dkd8„Z2 e-d9«      d:„ «       Z3 e-d;«      d<„ «       Z4 e-d=«      d>„ «       Z5 e-d?«      d@„ «       Z6 e-dA«      dB„ «       Z7 e-dC«      dD„ «       Z8 e-dE«      dF„ «       Z9 e-dG«      dH„ «       Z:dldI„Z;dldJ„Z<dldK„Z=dmdL„Z>dndM„Z? e@j‚                  dN«      ZB eCdOdOeB«      ZD e@j‚                  dP«      ZE eCdQdQeE«      ZF e@j‚                  dR«      ZG eCdSdSeG«      ZH e@j‚                  dT«      ZI eCdUdUeI«      ZJedodV„«       ZKˆ xZLS )pÚTimedeltaArrayaa  
    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                ó.   — t        j                  | d«      S ©NÚm)r   Úis_np_dtype©Úxs    rK   Ú<lambda>zTimedeltaArray.<lambda>ž   s   € ÄÇÁÐQRÐTWÔAXrM   zCallable[[DtypeObj], bool]Ú_is_recognized_dtype)r   Útimedelta64c                óB   — t        j                  d| j                  «      S )Nr   )Únprb   Úunit©rG   s    rK   Ú_internal_fill_valuez#TimedeltaArray._internal_fill_value¡   s   € ä�~‰~˜e T§Y¡YÓ/Ð/rM   c                ó   — t         S ©N©r   rf   s    rK   Ú_scalar_typezTimedeltaArray._scalar_type¥   s   € äÐrM   iè  z	list[str]Ú
_other_opsÚ	_bool_ops)r=   ÚsecondsÚmicrosecondsÚnanosecondsÚ
_field_opsre   ÚfreqÚ_datetimelike_ops)Úto_pytimedeltaÚtotal_secondsÚroundÚfloorÚceilÚas_unitÚ_datetimelike_methodsc                ó˜   — |j                  d«      }|t        j                  k(  rt        S t        j                  || j
                  ¬«      S )NÚi8r>   )Úviewr   Ú_valuer   Ú_from_value_and_resorD   )rG   r_   Úys      rK   Ú	_box_funczTimedeltaArray._box_func»   s6   € Ø�F‰F�4‹LˆØ”—
‘
Š?ÜˆJÜ×-Ñ-¨a°d·k±kÔBÐBrM   c                ó.   — | j                   j                  S )a3  
        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Údtyperf   s    rK   r„   zTimedeltaArray.dtypeÁ   s   € ð" �}‰}×"Ñ"Ð"rM   NúTick | Day | NoneÚ_freqc                óz   — t        |«      }t        |j                  «       ||j                  k7  rt        d«      ‚|S )Nz'Values resolution does not match dtype.)Ú_validate_td64_dtyper„   Ú
ValueError)ÚclsrH   r„   s      rK   Ú_validate_dtypezTimedeltaArray._validate_dtypeÙ   s7   € ô % UÓ+ˆÜ˜VŸ\™\Ô*Ø�F—L‘LÒ ÜÐFÓGÐGØˆrM   c                ó@  •— t        j                  |d«      sJ ‚t        j                  |«      rJ ‚t	        |t
        j                  «      sJ t        |«      «       ‚||j                  k(  sJ ‚|�t	        |t        t        f«      sJ ‚t        ‰| �1  ||¬«      }||_        |S )Nr\   )rH   r„   )r   r]   r	   Úis_unitlessÚ
isinstancerd   ÚndarrayÚtyper„   r   r
   ÚsuperÚ_simple_newr†   )rŠ   rH   rr   r„   rI   Ú	__class__s        €rK   r’   zTimedeltaArray._simple_newã   s”   ø€ ô �‰˜u cÔ*Ð*Ð*Ü×%Ñ% eÔ,Ð,Ð,Ü˜&¤"§*¡*Ô-Ð;¬t°F«|Ó;Ð-Ø˜Ÿ™Ò$Ð$Ð$Øˆ|œz¨$´´s°Ô<Ð<Ð<ä‘Ñ$¨F¸%Ð$Ó@ˆØˆŒØˆrM   F©r„   Úcopyc               óþ   — d }|r;t        |«      }t        j                  |«      dk(  rt        j                  |«      d   }t        |||¬«      \  }}|�t        ||d¬«      }| j                  ||j                  |¬«      S )NÚintegerr   ©r•   re   Fr”   ©r„   rr   )	rˆ   r   Úinfer_dtyperd   Údatetime_dataÚsequence_to_td64nsr   r’   r„   )rŠ   Údatar„   r•   re   rr   s         rK   Ú_from_sequencezTimedeltaArray._from_sequenceõ   sy   € àˆÙÜ(¨Ó/ˆEÜ�‰˜tÓ$¨	Ò1Ü×'Ñ'¨Ó.¨qÑ1�ä'¨°4¸dÔC‰
ˆˆdàÐÜ& t°5¸uÔEˆDà�‰˜t¨4¯:©:¸DˆÓAÐArM   )r„   r•   rr   re   c               ó2  — |r=t        |«      }|€0t        j                  |«      dk(  rt        j                  |«      d   }|dvsJ ‚t        |||¬«      \  }}|�t        ||d¬«      }| j                  ||j                  |¬«      }|j                  |i «       |S )zo
        _from_sequence_not_strict but without responsibility for finding the
        result's `freq`.
        r—   r   ©ÚYr€   ÚMr˜   Fr”   r™   )
rˆ   r   rš   rd   r›   rœ   r   r’   r„   Ú_maybe_pin_freq)rŠ   r�   r„   r•   rr   re   Úinferred_freqrI   s           rK   Ú_from_sequence_not_strictz(TimedeltaArray._from_sequence_not_strict  s�   € ñ Ü(¨Ó/ˆEØˆ|¤§¡°Ó 5¸Ò BÜ×'Ñ'¨Ó.¨qÑ1�à˜?Ñ*Ð*Ð*ä0°¸DÀtÔLÑˆˆmàÐÜ& t°5¸uÔEˆDà—‘ ¨T¯Z©Z¸m�ÓLˆà×Ñ˜t RÔ(ØˆrM   c               óÞ  — t        j                  |«      }|€ t        d„ |||fD «       «      rt        d«      ‚t	        j
                  ||||«      dk7  rt        d«      ‚|�t        |«      j                  d«      }|�t        |«      j                  d«      }|dvrt        d«      ‚|�|�|j                  |d¬	«      }|�|�|j                  |d¬	«      }t        |«      \  }}|�t        |||||¬
«      }	n:t        j                  |j                  |j                  |«      j                  d«      }	|s|	dd  }	|s|	d d }	|	j                  d|› d�«      }
| j                  |
|
j                   |¬«      S )Nc              3  ó$   K  — | ]  }|d u –— Œ
 y ­wri   © )Ú.0r_   s     rK   Ú	<genexpr>z1TimedeltaArray._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©re   r|   é   éÿÿÿÿzm8[Ú]r™   )ÚdtlÚvalidate_periodsÚanyr‰   ÚcomÚcount_not_noner   ry   r   r/   rd   Úlinspacer~   Úastyper}   r’   r„   )rŠ   ÚstartÚendÚperiodsrr   Úclosedre   Úleft_closedÚright_closedÚindexÚ
td64valuess              rK   Ú_generate_rangezTimedeltaArray._generate_range#  s�  € ô ×&Ñ& wÓ/ˆØˆ<œCÑI°G¸UÀCÑ3HÓIÔIÜÐPÓQÐQä×Ñ˜e S¨'°4Ó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ÐMrM   c                ó(  — t        || j                  «      s|t        urt        d«      ‚| j	                  |«       |t        u r*t        j                  |j                  | j                  «      S |j                  | j                  d¬«      j                  S )Nz'value' should be a Timedelta.Fr°   )rŽ   rk   r   r‰   Ú_check_compatible_withrd   rb   r~   re   ry   Úasm8©rG   Úvalues     rK   Ú_unbox_scalarzTimedeltaArray._unbox_scalarQ  sp   € Ü˜% ×!2Ñ!2Ô3¸ÄSÑ8HÜÐ=Ó>Ð>Ø×#Ñ# EÔ*Ø”C‰<Ü—>‘> %§,¡,°·	±	Ó:Ð:à—=‘= §¡°U�=Ó;×@Ñ@Ð@rM   c                ó   — t        |«      S ri   rj   rÉ   s     rK   Ú_scalar_from_stringz"TimedeltaArray._scalar_from_stringZ  s   € Ü˜ÓÐrM   c                 ó   — y ri   r¨   ©rG   Úothers     rK   rÇ   z%TimedeltaArray._check_compatible_with]  s   € àrM   Tc                ó®  — t        |«      }t        j                  |d«      r“|| j                  k(  r|r| j	                  «       S | S t        |«      rIt        | j                  |d¬«      }t        | «      j                  ||j                  | j                  ¬«      S t        d| j                  › d|› d�«      ‚t        j                  j                  | ||¬«      S )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’   rr   r‰   r¶   ÚDatetimeLikeArrayMixinr¼   )rG   r„   r•   Ú
res_valuess       rK   r¼   zTimedeltaArray.astyped  sÐ   € ô
 ˜UÓ#ˆä�?‰?˜5 #Ô&Ø˜Ÿ
™
Ò"ÙØŸ9™9›;Ð&Ø�ä! %Ô(ä0°·±ÀÈEÔR�
Ü˜D“z×-Ñ-Ø j×&6Ñ&6¸T¿Y¹Yð .ó ð ô !Ø*¨4¯:©:¨,°d¸5¸'ð BFð Fóð ô
 ×)Ñ)×0Ñ0°°uÀ4Ð0ÓHÐHrM   c              #  ó4  K  — | j                   dkD  r!t        t        | «      «      D ]	  }| |   –— Œ y | j                  }t        | «      }d}||z  dz   }t        |«      D ]3  }||z  }t	        |dz   |z  |«      }t        ||| d¬«      }|E d {  –—†  Œ5 y 7 Œ­w)Nr³   i'  T©Úbox)ÚndimÚrangeÚlenrƒ   Úminr   )	rG   Úir�   ÚlengthÚ	chunksizeÚchunksÚstart_iÚend_iÚ	converteds	            rK   Ú__iter__zTimedeltaArray.__iter__  s¢   è ø€ Ø�9‰9�qŠ=Üœ3˜t›9Ö%�Ø˜1‘g“ñ &ð —=‘=ˆDÜ˜“YˆFØˆIØ 	Ñ)¨QÑ.ˆFÜ˜6–]�Ø˜i™-�Ü˜Q ™U iÑ/°Ó8�Ü/°°W¸UÐ0CÈÔN�	Ø$×$Ñ$ñ	 #ð %ús   ‚BBÂBÂBr   )Úaxisr„   ÚoutÚkeepdimsÚinitialÚskipnaÚ	min_countc               ó¢   — t        j                  d||||dœ«       t        j                  | j                  |||¬«      }| j                  ||«      S )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   ÚsumzTimedeltaArray.sum’  sP   € ô 	�‰Ø˜%¨¸ÈgÑVô	
ô —‘Ø�M‰M ¨V¸yô
ˆð ×*Ñ*¨4°Ó8Ð8rM   r³   )rä   r„   rå   Úddofræ   rè   c               óæ   — t        j                  d|||dœd¬«       t        j                  | j                  |||¬«      }|�| j
                  dk(  r| j                  |«      S | j                  |«      S )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ò   zTimedeltaArray.std¦  si   € ô 	×"Ñ"Ø˜%¨¸ÑBÈ%õ	
ô —‘˜tŸ}™}°4ÀÈTÔRˆØˆ<˜4Ÿ9™9¨š>Ø—>‘> &Ó)Ð)Ø×&Ñ& vÓ.Ð.rM   )rè   c               ó  •— |dk(  rZt        t        |«      } || j                  j                  «       fd|i|¤Ž}t	        | «      j                  |d | j                  ¬«      S |dk(  rt        d«      ‚t        ‰| �$  |fd|i|¤ŽS )NÚcumsumrè   )rr   r„   Úcumprodz$cumprod not supported for Timedelta.)
Úgetattrr-   rƒ   r•   r�   r’   r„   Ú	TypeErrorr‘   Ú_accumulate)rG   rT   rè   ÚkwargsÚoprI   r“   s         €rK   rü   z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ÐErM   c                ó"   — ddl m}  || d¬«      S )Nr   ©Úget_format_timedelta64TrÖ   )Úpandas.io.formats.formatr  )rG   Úboxedr  s      rK   Ú
_formatterzTimedeltaArray._formatterË  s   € ÝCá% d°Ô5Ð5rM   r   )Úna_repÚdate_formatc               ón   — ddl m}  || |«      } t        j                  |dd«      | j                  «      S )Nr   r   r³   )r  r  rd   Ú
frompyfuncrƒ   )rG   r  r  rý   r  Ú	formatters         rK   Ú_format_native_typesz#TimedeltaArray._format_native_typesÐ  s6   € õ 	Dñ +¨4°Ó8ˆ	ð .Œr�}‰}˜Y¨¨1Ó-¨d¯m©mÓ<Ð<rM   c                ó    — t        |t        t        f«      rJ ‚t        dt	        |«      j
                  › dt	        | «      j
                  › �«      ‚)Nzcannot add the type z to a )rŽ   r   r
   rû   r�   rQ   rÏ   s     rK   Ú_add_offsetzTimedeltaArray._add_offsetÞ  sI   € Ü˜e¤d¬C [Ô1Ð1Ð1ÜØ"¤4¨£;×#7Ñ#7Ð"8¸¼tÀD»z×?RÑ?RÐ>SÐTó
ð 	
rM   Ú__mul__c                ó0  — t        |«      r×t        j                  |«      rt        d| j                  › d�«      ‚| j
                  |z  }|j                  j                  dk7  r!t        dt        |«      j                  › �«      ‚d }| j                  �+t        |«      s | j                  |z  }|j                  dk(  rd }t        | «      j                  ||j                  |¬«      S t        |d«      st        j                  |«      }|j                  j                  dk(  rt        d| j                  › d�«      ‚t!        |j                  t"        t$        f«      rt&        S t)        |«      t)        | «      k7  r+t        j*                  |j                  d«      st-        d	«      ‚t/        |j                  «      rq| j
                  }t1        t)        | «      «      D �cg c]  }||   ||   z  ‘Œ }}t        j                  |«      }t        | «      j                  ||j                  ¬
«      S | j
                  |z  }|j                  j                  dk7  r!t        dt        |«      j                  › �«      ‚t        | «      j                  ||j                  ¬
«      S c c}w )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�   rQ   rr   r*   Únr’   Úhasattrrd   ÚarrayrŽ   r'   r(   ÚNotImplementedrÚ   r]   r‰   r#   rÙ   )rG   rÐ   rI   rr   Úarrr  s         rK   r  zTimedeltaArray.__mul__ä  s7  € ä�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ä!Ð!äˆu‹:œ˜T›Ò"¬3¯?©?¸5¿;¹;ÈÔ+Lô ÐCÓDÐDä˜5Ÿ;™;Ô'ð —-‘-ˆCÜ16´s¸4³yÔ1AÓBÑ1A¨A�c˜!‘f˜u Q™xÓ'Ð1AˆFÐBÜ—X‘X˜fÓ%ˆFÜ˜“:×)Ñ)¨&¸¿¹Ð)ÓEÐEð —‘ Ñ&ˆØ�<‰<×Ñ Ò#ô Ð3´D¸³K×4HÑ4HÐ3IÐJÓKÐKÜ�D‹z×%Ñ% f°F·L±LÐ%ÓAÐAùò Cs   ÇJc                óî  — t        || j                  «      r€t        |«      }t        d|«      t        u rPt        j                  | j                  t
        j                  ¬«      }|j                  t
        j                  «       |S  || j                  |«      S |t        j                  t        j                  fv r7t        dt!        |«      j"                  › dt!        | «      j"                  › �«      ‚ || j                  |«      }d}| j$                  �¿t        | j$                  t&        «      rl| j$                  j(                  |z  dk(  r#t'        | j$                  j(                  |z  «      }n<t+        t        | j$                  j(                  ¬«      «      |z  }n| j$                  |z  }|j,                  dk(  r| j$                  j,                  dk7  rd}t!        | «      j/                  ||j0                  |¬«      S )	zv
        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   rd   ÚemptyÚshaper@   ÚfillÚnanrƒ   r,   ÚrtruedivÚ	rfloordivrû   r�   rQ   rr   r
   r  r   Únanosr’   r„   )rG   rÐ   rþ   ÚresrI   rr   s         rK   Ú_scalar_divlike_opz!TimedeltaArray._scalar_divlike_op   s†  € ô
 �e˜T×5Ñ5Ô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ÐPrM   c                óŒ   — t        |d«      st        j                  |«      }t        |«      t        | «      k7  rt	        d«      ‚|S )Nr„   z*Cannot divide vectors with unequal lengths)r  rd   r  rÚ   r‰   rÏ   s     rK   Ú_cast_divlike_opzTimedeltaArray._cast_divlike_opO  s:   € Ü�u˜gÔ&ä—H‘H˜U“OˆEäˆu‹:œ˜T›Ò"ÜÐIÓJÐJØˆrM   c                óZ  —  || j                   t        j                  |«      «      }t        |j                  «      st        |j                  «      rH|t        j                  t        j                  fv r&t        | «      j                  ||j                  ¬«      S |t        j                  t        j                  fv rp| j                  «       t        |«      z  }|j                  «       rD|j                  t        j                   «      }t        j"                  ||t        j$                  «       |S )z‡
        Shared logic for __truediv__, __floordiv__, and their reversed versions
        with timedelta64-dtype ndarray other.
        r  )rƒ   rd   Úasarrayr"   r„   r!   ÚoperatorÚtruedivÚfloordivr�   r’   r,   r   r*   r¸   r¼   r@   Úputmaskr  )rG   rÐ   rþ   rI   Úmasks        rK   Ú_vector_divlike_opz!TimedeltaArray._vector_divlike_opX  sÕ   € ñ �D—M‘M¤2§:¡:¨eÓ#4Ó5ˆä˜UŸ[™[Ô)¬^¸E¿K¹KÔ-HÈbÜ×ÑÜ×ÑðU
ñ O
ô ˜“:×)Ñ)¨&¸¿¹Ð)ÓEÐEà”(×#Ñ#¤Y×%8Ñ%8Ð9Ñ9Ø—9‘9“;¤ e£Ñ,ˆDØ�x‰xŒzØŸ™¤r§z¡zÓ2�Ü—
‘
˜6 4¬¯©Ô0àˆrM   Ú__truediv__c                ó°  — t         j                  }t        |«      r| j                  ||«      S | j	                  |«      }t        j                  |j                  d«      s*t        |j                  «      st        |j                  «      r| j                  ||«      S t        |j                  «      r—t        j                  |«      }| j                  dkD  r[t        | |d¬«      D ��cg c]
  \  }}||z  ‘Œ }}}|D �cg c]  }|j!                  dd«      ‘Œ }}t        j"                  |d¬«      }|S t%        | j&                  |«      }|S t(        S c c}}w c c}w ©Nr\   r³   T)Ústrictr´   r   )rä   )r(  r)  r$   r#  r%  r   r]   r„   r"   r!   r-  r#   rd   r'  rØ   ÚzipÚreshapeÚconcatenater   rƒ   r  ©	rG   rÐ   rþ   ÚleftÚrightÚres_colsr_   Ú	res_cols2rI   s	            rK   r.  zTimedeltaArray.__truediv__n  s-  € ô ×ÑˆÜ�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¸¸eÈDÕ4QôÙ4Q¡[ T¨5�D˜5“LÐ4Qð ñ ñ 8@Ó@±x°!˜QŸY™Y q¨"Õ-°x�	Ð@ÜŸ™¨	¸Ô:�ð ˆMô .¨d¯m©m¸UÓC�àˆMô "Ð!ùóùò As   Ã%EÃ;EÚ__rtruediv__c                ó   — t         j                  }t        |«      r| j                  ||«      S | j	                  |«      }t        j                  |j                  d«      r| j                  ||«      S t        |j                  «      r?t        t        | «      «      D �cg c]  }||   | |   z  ‘Œ }}t        j                  |«      S t        S c c}w r[   )r,   r  r$   r#  r%  r   r]   r„   r-  r#   rÙ   rÚ   rd   r  r  )rG   rÐ   rþ   r  Úresult_lists        rK   r:  zTimedeltaArray.__rtruediv__�  s¶   € ô ×ÑˆÜ�UÔØ×*Ñ*¨5°"Ó5Ð5à×%Ñ% eÓ,ˆÜ�?‰?˜5Ÿ;™;¨Ô,Ø×*Ñ*¨5°"Ó5Ð5ä˜UŸ[™[Ô)ô 8=¼SÀ»YÔ7GÓHÑ7G°!˜5 ™8 d¨1¡gÓ-Ð7GˆKÐHÜ—8‘8˜KÓ(Ð(ô "Ð!ùò	 Is   ÂCÚ__floordiv__c                óØ  — t         j                  }t        |«      r| j                  ||«      S | j	                  |«      }t        j                  |j                  d«      s*t        |j                  «      st        |j                  «      r| j                  ||«      S t        |j                  «      r«t        j                  |«      }| j                  dkD  rZt        | |d¬«      D ��cg c]
  \  }}||z  ‘Œ }}}|D �cg c]  }|j!                  dd«      ‘Œ }}t        j"                  |d¬«      }nt%        | j&                  |«      }|j                  t(        k(  sJ ‚|S t*        S c c}}w c c}w r0  )r(  r*  r$   r#  r%  r   r]   r„   r"   r!   r-  r#   rd   r'  rØ   r2  r3  r4  r   rƒ   Úobjectr  r5  s	            rK   r=  zTimedeltaArray.__floordiv__¢  s4  € ä×ÑˆÜ�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¸¸uÈTÕ5RôÙ5R¡k d¨E�D˜E“MÐ5Rð ñ ñ 8@Ó@±x°!˜QŸY™Y q¨"Õ-°x�	Ð@ÜŸ™¨	¸Ô:‘ä.¨t¯}©}¸eÓD�à—<‘<¤6Ò)Ð)Ð)ØˆMô "Ð!ùóùò As   Ã%E!Ã;E'Ú__rfloordiv__c                ó¤  — t         j                  }t        |«      r| j                  ||«      S | j	                  |«      }t        j                  |j                  d«      r| j                  ||«      S t        |j                  «      rAt        t        | «      «      D �cg c]  }||   | |   z  ‘Œ }}t        j                  |«      }|S t        S c c}w r[   )r,   r   r$   r#  r%  r   r]   r„   r-  r#   rÙ   rÚ   rd   r  r  )rG   rÐ   rþ   r  r<  rI   s         rK   r@  zTimedeltaArray.__rfloordiv__Á  s¶   € ä× Ñ ˆÜ�UÔØ×*Ñ*¨5°"Ó5Ð5à×%Ñ% eÓ,ˆÜ�?‰?˜5Ÿ;™;¨Ô,Ø×*Ñ*¨5°"Ó5Ð5ä˜UŸ[™[Ô)Ü8=¼cÀ$»iÔ8HÓIÑ8H°1˜5 ™8 t¨A¡wÓ.Ð8HˆKÐIÜ—X‘X˜kÓ*ˆFØˆMô "Ð!ùò Js   ÂCÚ__mod__c                óZ   — t        || j                  «      rt        |«      }| | |z  |z  z
  S ri   ©rŽ   r  r   rÏ   s     rK   rB  zTimedeltaArray.__mod__Ó  s2   € ô �e˜T×5Ñ5Ô6Ü˜eÓ$ˆEØ�t˜u‘}¨Ñ-Ñ-Ð-rM   Ú__rmod__c                óZ   — t        || j                  «      rt        |«      }||| z  | z  z
  S ri   rD  rÏ   s     rK   rE  zTimedeltaArray.__rmod__Ú  s2   € ô �e˜T×5Ñ5Ô6Ü˜eÓ$ˆEØ˜ ™¨Ñ-Ñ-Ð-rM   Ú
__divmod__c                óf   — t        || j                  «      rt        |«      }| |z  }| ||z  z
  }||fS ri   rD  ©rG   rÐ   Úres1Úres2s       rK   rG  zTimedeltaArray.__divmod__á  s?   € ô �e˜T×5Ñ5Ô6Ü˜eÓ$ˆEà�u‰}ˆØ�d˜U‘lÑ"ˆØ�TˆzÐrM   Ú__rdivmod__c                óf   — t        || j                  «      rt        |«      }|| z  }||| z  z
  }||fS ri   rD  rI  s       rK   rL  zTimedeltaArray.__rdivmod__ë  s?   € ô �e˜T×5Ñ5Ô6Ü˜eÓ$ˆEà˜‰}ˆØ�t˜d‘{Ñ"ˆØ�TˆzÐrM   c                óœ   — d }| j                   �| j                    }t        | «      j                  | j                   | j                  |¬«      S ©Nr™   )rr   r�   r’   rƒ   r„   )rG   rr   s     rK   Ú__neg__zTimedeltaArray.__neg__õ  sB   € ØˆØ�9‰9Ð Ø—I‘I�:ˆDÜ�D‹z×%Ñ% t§}¡} n¸D¿J¹JÈTÐ%ÓRÐRrM   c                ó”   — t        | «      j                  | j                  j                  «       | j                  | j
                  ¬«      S rO  )r�   r’   rƒ   r•   r„   rr   rf   s    rK   Ú__pos__zTimedeltaArray.__pos__û  s:   € Ü�D‹z×%Ñ%Ø�M‰M×ÑÓ ¨¯
©
¸¿¹ð &ó 
ð 	
rM   c                óˆ   — t        | «      j                  t        j                  | j                  «      | j
                  ¬«      S )Nr  )r�   r’   rd   Úabsrƒ   r„   rf   s    rK   Ú__abs__zTimedeltaArray.__abs__   s-   € ä�D‹z×%Ñ%¤b§f¡f¨T¯]©]Ó&;À4Ç:Á:Ð%ÓNÐNrM   c                ól   — t        | j                  «      }| j                  | j                  |z  d¬«      S )ay  
        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   ru   zTimedeltaArray.total_seconds  s1   € ôl ! §¡Ó-ˆØ×'Ñ'¨¯	©	°C©ÀDÐ'ÓIÐIrM   c                ó,   — t        | j                  «      S )a;  
        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ƒ   rf   s    rK   rt   zTimedeltaArray.to_pytimedelta@  s   € ôN # 4§=¡=Ó1Ð1rM   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')rn   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')ro   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')rp   c                ó¶   ‡— ddl m} g d¢Š| j                  }|rˆfd„}nd„ } || D �cg c]
  } ||«      ‘Œ c}‰¬«      }|s|j                  d«      }|S c c}w )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Úminutesrn   Úmillisecondsro   rp   c                ól   •— t        | «      rt        j                  gt        ‰«      z  S | j                  S ri   )r*   rd   r  rÚ   Ú
components)r_   Úcolumnss    €rK   rL   z$TimedeltaArray.components.<locals>.f/  s)   ø€ Ü˜”7ÜŸF™F˜8¤c¨'£lÑ2Ð2Ø—|‘|Ð#rM   c                ó   — | j                   S ri   )r^  r^   s    rK   rL   z$TimedeltaArray.components.<locals>.f6  s   € Ø—|‘|Ð#rM   )r_  Úint64)Úpandasr:   rE   r¼   )rG   r:   ÚhasnansrL   r_   rI   r_  s         @rK   r^  zTimedeltaArray.components  sc   ø€ õ8 	%ò
ˆð —+‘+ˆÙõ$ò$ñ ©$Ó/©$ Q™A˜a�D¨$Ñ/¸ÔAˆÙØ—]‘] 7Ó+ˆFØˆùò 0s   ©A)rO   únp.timedelta64)rO   ztype[Timedelta])r_   rd  rO   r  )rO   únp.dtype[np.timedelta64])rH   znpt.NDArray[np.timedelta64]rr   r…   r„   re  rO   r   )r•   ÚboolrO   r   ri   )re   r8   rO   r   )rO   r  )rO   ÚNone)T)r•   rf  )rO   r2   )
rä   úAxisInt | Noner„   úNpDtype | Noneræ   rf  rè   rf  ré   Úint)
rä   rh  r„   ri  rð   rj  ræ   rf  rè   rf  )rT   Ústrrè   rf  )F)r  rf  )r  zstr | floatrO   únpt.NDArray[np.object_])rO   r   )rO   znp.ndarray | Self)rO   rX   )rO   znpt.NDArray[np.float64])rO   rl  )rO   r:   )MrQ   Ú
__module__Ú__qualname__rR   Ú_typr   rd   rb   r   r  ra   Ú__annotations__Ú_infer_matchesrS   rg   rk   Ú__array_priority__rl   rm   rq   rs   rz   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%  r-  r.  r:  r=  r@  rB  rE  rG  rL  rP  rR  rU  ru   rt   ÚtextwrapÚdedentÚdays_docstringrV   r=   Úseconds_docstringrn   Úmicroseconds_docstringro   Únanoseconds_docstringrp   r^  Ú__classcell__)r“   s   @rK   rX   rX   o   sf  ø… ñ)ð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ô6ð (-¸$ñ	=Ø$ð	=à	 ó	=ò
ñ ˜iÓ(ò7Bó )ð7Bðr €Hò-Qò^óñ, ˜mÓ,ñ"ó -ð"ñ< ˜nÓ-ñ"ó .ð"ñ( ˜nÓ-ñ"ó .ð"ñ< ˜oÓ.ñ"ó /ð"ñ" ˜iÓ(ñ.ó )ð.ñ ˜jÓ)ñ.ó *ð.ñ ˜lÓ+ñó ,ðñ ˜mÓ,ñó -ðóSó
ó
Oó7Jór'2ðR %�X—_‘_ð	)ó!€NñD ˜6 6¨>Ó:€Dà'˜Ÿ™ð	'ó ÐñB ØØØó€Gð -˜XŸ_™_ð 	'ó"ÐñF #ØØØó€Lð ,˜HŸO™Oð	'ó!ÐñD "ØØØó€Kð ò6ó ô6rM   rX   c                ó6  — |dvsJ ‚d}|�t        |«      }t        j                  | |d¬«      \  } }t        | t        «      r| j
                  }| j                  t        k(  st        | j                  «      rt        | ||¬«      } d}�n¨t        | j                  «      rt        | |¬«      \  } }|xr | }�nzt        | j                  «      rñt        | j                  t        «      r| j                  }| j                  } nt!        j"                  | «      }|�z|dk7  rut!        j$                  d	¬
«      5  | j'                  t         j(                  «      }ddd«       || k(  z  j+                  «       }|rt-        |d||¬«      \  }	}
t.        |	|<   |	|fS t1        | |xs d«      } t.        | |<   | j3                  d«      } d}ntt5        j6                  | j                  d«      r;t9        | j                  «      s?t;        | j                  «      }t=        | |d¬«      } d}nt?        d| j                  › d�«      ‚|st!        j@                  | «      } nt!        jB                  | |¬«      } | j                  jD                  dk(  sJ ‚| j                  dk7  sJ ‚| |fS # 1 sw Y   �ŒAxY w)aÜ  
    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    NrX   )Úcls_name©re   ÚerrorsFr²   r¬   Úignore)Úinvalid)r•   re   r€  zm8[ns]r\   r”   zdtype z' cannot be converted to timedelta64[ns]rÒ   Úm8)#r   r¶   Ú!ensure_arraylike_for_datetimelikerŽ   rX   rr   r„   r?  r%   Ú_objects_to_td64nsr"   Ú_ints_to_td64nsr!   r)   Ú_maskÚ_datard   ÚisnanÚerrstater¼   ra  Úallrœ   r   r   r}   r   r]   r   r   r   rû   r'  r  r  )r�   r•   re   r€  r¤   Ú	copy_mader,  Úint_dataÚ	all_roundrI   Ú_Ú	new_dtypes               rK   rœ   rœ   C  sE  € ðH �Ñ&Ð&Ð&à€MØÐÜ# DÓ)ˆä×6Ñ6ØˆdÐ-ô�J€Dˆ$ô �$œÔ'ØŸ	™	ˆð ‡z�z”VÒœ¨t¯z©zÔ:ä! $¨T¸&ÔAˆØŠä	˜$Ÿ*™*Ô	%ä)¨$°TÔ:‰ˆˆiØÒ%˜I˜Šä	˜Ÿ
™
Ô	#ô �d—j‘j¤.Ô1Ø—:‘:ˆDØ—:‘:‰Dä—8‘8˜D“>ˆDàÐ ¨¢ô —‘ XÖ.ØŸ;™;¤r§x¡xÓ0�÷ /à ¨Ñ!1Ñ2×7Ñ7Ó9ˆIÙÜ.Ø 5¨t¸Fô‘	�˜ô  $��t‘Ø˜}Ð,Ð,ä(¨¨tª|°tÓ<ˆÜˆˆT‰
Ø�y‰y˜Ó"ˆØ‰ä	�‰˜Ÿ™ SÔ	)Ü! $§*¡*Ô-ä+¨D¯J©JÓ7ˆIÜ& t°9À5ÔIˆDØ‰Dô ˜& §¡ Ð,SÐTÓUÐUáÜ�z‰z˜$Ó‰ä�x‰x˜ 4Ô(ˆà�:‰:�?‰?˜cÒ!Ð!Ð!Ø�:‰:˜ÒÐÐà�ÐÐ÷E /Ñ.ús   Ä/ JÊJc                ó^  — d}|�|nd}| j                   t        j                  k7  r!| j                  t        j                  «      } d}|dk7  rNd|› d�}| j	                  |«      } t        | j                   «      }|| j                   k7  rt        | |¬«      } d}| |fS | j	                  d«      } | |fS )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„   rd   ra  r¼   r}   r   r   )r�   re   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°9Ô=ˆDð ˆIð
 �ˆ?Ðð �y‰yÐ*Ó+ˆà�ˆ?ÐrM   c                ól   — t        j                  | t         j                  ¬«      }t        |||¬«      }|S )aR  
    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  )rd   r'  Úobject_r   )r�   re   r€  rH   rI   s        rK   r…  r…  Ú  s,   € ô@ �Z‰Z˜¤B§J¡JÔ/€Fä! &¨t¸FÔC€FØ€MrM   c                óÜ   — t        | «      } | t        j                  d«      k(  rd}t        |«      ‚t	        j
                  | d«      st        d| › d�«      ‚t        | «      st        d«      ‚| S )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&   rd   r„   r‰   r   r]   r   )r„   Úmsgs     rK   rˆ   rˆ      sn   € Ü˜Ó€EØ”—‘˜“Òð8ð 	ô ˜‹oÐä�?‰?˜5 #Ô&Ü˜7 5 'Ð)UÐVÓWÐWÜ Ô&ÜÐVÓWÐWà€LrM   )rT   rk  rJ   rk  rU   rk  )FNÚraise)r•   rf  r€  r4   rO   z$tuple[np.ndarray, Tick | Day | None])r¬   )re   rk  rO   ztuple[np.ndarray, bool])Nr—  )r€  r4   rO   rP   )rO   r5   )^Ú
__future__r   Údatetimer   r(  Útypingr   r   r   Únumpyrd   Ú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   rb  r:   rv  rV   ÚTimelikeOpsrX   rœ   r†  r…  rˆ   r¨   rM   rK   Ú<module>r²     s)  ðÝ "å Û ÷ñ ó ÷÷÷ ÷ ñ õ E÷÷õ õ /Ý .Ý 6÷÷ ñ ÷ñ õ
 ,÷õ ?Ý 2Ý =ß  Ð  Ý ;áß2÷÷ õ !ã óñ, ˆOÓôL�S—_‘_ó Ló ðLðj Ø	Ø#*ð	jà
ðjð !ð	jð
 *ójôZ'ðV 5<ð#Ø1ð#àó#ôLrM   