§
    	�’jè©  ã                  ó>  — 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lVZVd1d„ZW e)d¦  «         G d„ deAjX        ¦  «        ¦   «         ZY	 	 	 d2d3d(„ZZd4d5d,„Z[	 d6d7d.„Z\d8d0„Z]dS )9é    )Ú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©Ú	DataFrameÚnameÚstrÚaliasÚ	docstringc                óR   ‡— dˆfd„}| |_         d|› d�|_        t          |¦  «        S )NÚreturnú
np.ndarrayc                ó¼   •— | j         }‰dk    rt          || j        ¬¦  «        }nt          |‰| j        ¬¦  «        }| j        r|                      |d d¬¦  «        }|S )NÚdays©ÚresoÚfloat64)Ú
fill_valueÚconvert)Úasi8r   Ú_cresor   Ú_hasnaÚ_maybe_mask_results)ÚselfÚvaluesÚresultr=   s      €úKC:\Projects\DSCons\.venv\Lib\site-packages\pandas\core\arrays\timedeltas.pyÚfz_field_accessor.<locals>.fZ   ss   ø€ Ø”ˆØ�FŠ?ˆ?Ý'¨°T´[ÐAÑAÔAˆFˆFõ
 )¨°¸T¼[ÐIÑIÔIˆFØŒ;ð 	Ø×-Ò-Ø 4°ð .ñ ô ˆFð ˆó    ú
)r@   rA   )Ú__name__Ú__doc__Úproperty)r;   r=   r>   rQ   s    `  rP   Ú_field_accessorrW   Y   sH   ø€ ðð ð ð ð ð ð  €A„JØ"�YÐ"Ð"Ð"€A„IÝ�A‰;Œ;ÐrR   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€d1„Z$d�d‚d3„Z%dƒd5„Z&dddd%dd2d6d7œd„d?„Z'dddd@d%d2dAœd…dC„Z(d2dDœd†ˆ fdG„Z)d‡dˆdI„Z*dJddKœd‰dO„Z+dP„ Z, e-dQ¦  «        dŠdR„¦   «         Z.e.Z/dS„ Z0dT„ Z1d‹dV„Z2 e-dW¦  «        dX„ ¦   «         Z3 e-dY¦  «        dZ„ ¦   «         Z4 e-d[¦  «        d\„ ¦   «         Z5 e-d]¦  «        d^„ ¦   «         Z6 e-d_¦  «        d`„ ¦   «         Z7 e-da¦  «        db„ ¦   «         Z8 e-dc¦  «        dd„ ¦   «         Z9 e-de¦  «        df„ ¦   «         Z:dŒdg„Z;dŒdh„Z<dŒdi„Z=d�dk„Z>dŽdl„Z? e@jA        dm¦  «        ZB eCdndneB¦  «        ZD e@jA        do¦  «        ZE eCdpdpeE¦  «        ZF e@jA        dq¦  «        ZG eCdrdreG¦  «        ZH e@jA        ds¦  «        ZI eCdtdteI¦  «        ZJed�dv„¦   «         ZKˆ xZLS )�Ú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    rP   ú<lambda>zTimedeltaArray.<lambda>ž   s   € ÅÄÐQRÐTWÑAXÔAX€ rR   zCallable[[DtypeObj], bool]Ú_is_recognized_dtype)r   Útimedelta64r@   únp.timedelta64c                ó6   — t          j        d| j        ¦  «        S )Nr   )Únprb   Úunit©rM   s    rP   Ú_internal_fill_valuez#TimedeltaArray._internal_fill_value¡   s   € åŒ~˜e T¤YÑ/Ô/Ð/rR   útype[Timedelta]c                ó   — t           S ©N©r   rg   s    rP   Ú_scalar_typezTimedeltaArray._scalar_type¥   s   € åÐrR   iè  z	list[str]Ú
_other_opsÚ	_bool_ops)rC   ÚsecondsÚmicrosecondsÚnanosecondsÚ
_field_opsrf   ÚfreqÚ_datetimelike_ops)Úto_pytimedeltaÚtotal_secondsÚroundÚfloorÚceilÚas_unitÚ_datetimelike_methodsr_   úTimedelta | NaTTypec                ó�   — |                      d¦  «        }|t          j        k    rt          S t          j        || j        ¬¦  «        S )NÚi8rD   )Úviewr   Ú_valuer   Ú_from_value_and_resorJ   )rM   r_   Úys      rP   Ú	_box_funczTimedeltaArray._box_func»   s9   € Ø�FŠF�4‰LŒLˆØ•”
Š?ˆ?ÝˆJÝÔ-¨a°d´kÐBÑBÔBÐBrR   únp.dtype[np.timedelta64]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Údtyperg   s    rP   rˆ   zTimedeltaArray.dtypeÁ   s   € ð" Œ}Ô"Ð"rR   NúTick | Day | NoneÚ_freqc                ó€   — t          |¦  «        }t          |j        ¦  «         ||j        k    rt          d¦  «        ‚|S )Nz'Values resolution does not match dtype.)Ú_validate_td64_dtyperˆ   Ú
ValueError)ÚclsrN   rˆ   s      rP   Ú_validate_dtypezTimedeltaArray._validate_dtypeÙ   sB   € õ % UÑ+Ô+ˆÝ˜Vœ\Ñ*Ô*Ð*Ø�F”LÒ Ð ÝÐFÑGÔGÐGØˆrR   rN   únpt.NDArray[np.timedelta64]rˆ   r   c                ór  •— 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          ¦   «                              ||¬¦  «        }||_        |S )Nr\   )rN   rˆ   )r   r]   r	   Úis_unitlessÚ
isinstancere   ÚndarrayÚtyperˆ   r   r
   ÚsuperÚ_simple_newrŠ   )rŽ   rN   rt   rˆ   rO   Ú	__class__s        €rP   r—   zTimedeltaArray._simple_newã   s±   ø€ õ Œ˜u cÑ*Ô*Ð*Ð*Ð*ÝÔ% eÑ,Ô,Ð,Ð,Ð,Ý˜&¥"¤*Ñ-Ô-Ð;Ð;­t°F©|¬|Ñ;Ô;Ð-Ø˜œÒ$Ð$Ð$Ð$Øˆ|�z¨$µµs°Ñ<Ô<ˆ|ˆ|Ð<å‘”×$Ò$¨F¸%Ð$Ñ@Ô@ˆØˆŒØˆrR   F©rˆ   Úcopyrš   Úboolc               ó  — d }|rAt          |¦  «        }t          j        |¦  «        dk    rt          j        |¦  «        d         }t          |||¬¦  «        \  }}|�t          ||d¬¦  «        }|                      ||j        |¬¦  «        S )NÚintegerr   ©rš   rf   Fr™   ©rˆ   rt   )	rŒ   r   Úinfer_dtypere   Údatetime_dataÚsequence_to_td64nsr   r—   rˆ   )rŽ   Údatarˆ   rš   rf   rt   s         rP   Ú_from_sequencezTimedeltaArray._from_sequenceõ   s’   € àˆØð 	2Ý(¨Ñ/Ô/ˆEÝŒ˜tÑ$Ô$¨	Ò1Ð1ÝÔ'¨Ñ.Ô.¨qÔ1�å'¨°4¸dÐCÑCÔC‰
ˆˆdàÐÝ& t°5¸uÐEÑEÔEˆDà�Š˜t¨4¬:¸DˆÑAÔAÐArR   )rˆ   rš   rt   rf   c               óT  — |rCt          |¦  «        }|€2t          j        |¦  «        dk    rt          j        |¦  «        d         }|dvsJ ‚t          |||¬¦  «        \  }}|�t          ||d¬¦  «        }|                      ||j        |¬¦  «        }| 	                    |i ¦  «         |S )	zo
        _from_sequence_not_strict but without responsibility for finding the
        result's `freq`.
        Nr�   r   ©ÚYrƒ   ÚMrž   Fr™   rŸ   )
rŒ   r   r    re   r¡   r¢   r   r—   rˆ   Ú_maybe_pin_freq)rŽ   r£   rˆ   rš   rt   rf   Úinferred_freqrO   s           rP   Ú_from_sequence_not_strictz(TimedeltaArray._from_sequence_not_strict  s¿   € ð ð 	2Ý(¨Ñ/Ô/ˆEØˆ|¥¤°Ñ 5Ô 5¸Ò BÐ BÝÔ'¨Ñ.Ô.¨qÔ1�à˜?Ð*Ð*Ð*Ð*å0°¸DÀtÐLÑLÔLÑˆˆmàÐÝ& t°5¸uÐEÑEÔEˆDà—’ ¨T¬Z¸m�ÑLÔLˆà×Ò˜t RÑ(Ô(Ð(ØˆrR   r8   c               óN  — t          j        |¦  «        }|€+t          d„ |||fD ¦   «         ¦  «        rt          d¦  «        ‚t	          j        ||||¦  «        dk    rt          d¦  «        ‚|�"t          |¦  «                             d¦  «        }|�"t          |¦  «                             d¦  «        }|dvrt          d¦  «        ‚|�|�|                     |d¬	¦  «        }|�|�|                     |d¬	¦  «        }t          |¦  «        \  }}|�t          |||||¬
¦  «        }	n3t          j        |j        |j        |¦  «                             d¦  «        }	|s
|	dd …         }	|s
|	d d…         }	|	                     d|› d�¦  «        }
|                      |
|
j        |¬¦  «        S )Nc              3  ó   K  — | ]}|d u V — Œ	d S rk   © ©Ú.0r_   s     rP   ú	<genexpr>z1TimedeltaArray._generate_range.<locals>.<genexpr>(  s&   è è € ÐIÐI¨a  T 	ÐIÐIÐIÐIÐIÐIrR   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©rf   r   é   éÿÿÿÿzm8[ú]rŸ   )ÚdtlÚvalidate_periodsÚanyr�   ÚcomÚcount_not_noner   r{   r   r/   re   Úlinspacer�   Úastyper€   r—   rˆ   )rŽ   ÚstartÚendÚperiodsrt   Úclosedrf   Úleft_closedÚright_closedÚindexÚ
td64valuess              rP   Ú_generate_rangezTimedeltaArray._generate_range#  sÍ  € õ Ô& wÑ/Ô/ˆØˆ<�CÐIÐI°G¸UÀCÐ3HÐIÑIÔIÑIÔIˆ<ÝÐPÑQÔQÐQåÔ˜e S¨'°4Ñ8Ô8¸AÒ=Ð=Ýð<ñô ð ð
 ÐÝ˜eÑ$Ô$×,Ò,¨TÑ2Ô2ˆEàˆ?Ý˜C‘.”.×(Ò(¨Ñ.Ô.ˆCàÐ.Ð.Ð.ÝÐJÑKÔKÐKàÐ Ð!1Ø—M’M $°�MÑ7Ô7ˆEØˆ?˜tÐ/Ø—+’+˜d¨U�+Ñ3Ô3ˆCå$6°vÑ$>Ô$>Ñ!ˆ�\àÐÝ*¨5°#°wÀÈ4ÐPÑPÔPˆEˆEå”K ¤¨c¬j¸'ÑBÔB×IÒIÈ$ÑOÔOˆEàð 	Ø˜!˜"˜"”IˆEØð 	Ø˜#˜2˜#”JˆEà—Z’Z  d   Ñ.Ô.ˆ
Ø�Š˜z°Ô1AÈˆÑMÔMÐMrR   c                ó  — t          || j        ¦  «        s|t          urt          d¦  «        ‚|                      |¦  «         |t          u rt          j        |j        | j        ¦  «        S | 	                    | j        d¬¦  «        j
        S )Nz'value' should be a Timedelta.Fr·   )r“   rm   r   r�   Ú_check_compatible_withre   rb   r�   rf   r{   Úasm8©rM   Úvalues     rP   Ú_unbox_scalarzTimedeltaArray._unbox_scalarQ  s~   € Ý˜% Ô!2Ñ3Ô3ð 	?¸ÅSÐ8HÐ8HÝÐ=Ñ>Ô>Ð>Ø×#Ò# EÑ*Ô*Ð*Ø•Cˆ<ˆ<Ý”> %¤,°´	Ñ:Ô:Ð:à—=’= ¤°U�=Ñ;Ô;Ô@Ð@rR   c                ó    — t          |¦  «        S rk   rl   rÐ   s     rP   Ú_scalar_from_stringz"TimedeltaArray._scalar_from_stringZ  s   € Ý˜ÑÔÐrR   ÚNonec                ó   — d S rk   r®   ©rM   Úothers     rP   rÎ   z%TimedeltaArray._check_compatible_with]  s   € àˆrR   Tc                ó´  — t          |¦  «        }t          j        |d¦  «        r“|| j        k    r|r|                      ¦   «         S | S t          |¦  «        rFt          | j        |d¬¦  «        }t          | ¦  «         	                    ||j        | j
        ¬¦  «        S t          d| j        › d|› d�¦  «        ‚t          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—   rt   r�   r½   ÚDatetimeLikeArrayMixinrÃ   )rM   rˆ   rš   Ú
res_valuess       rP   rÃ   zTimedeltaArray.astyped  s   € õ
 ˜UÑ#Ô#ˆåŒ?˜5 #Ñ&Ô&ð 	Ø˜œ
Ò"Ð"Øð 'ØŸ9š9™;œ;Ð&Ø�å! %Ñ(Ô(ð 
å0°´ÀÈEÐRÑRÔR�
Ý˜D‘z”z×-Ò-Ø jÔ&6¸T¼Yð .ñ ô ð õ !ðF¨4¬:ð Fð F¸5ð Fð Fð Fñô ð õ
 Ô)×0Ò0°°uÀ4Ð0ÑHÔHÐHrR   r2   c              #  óR  K  — | j         dk    r+t          t          | ¦  «        ¦  «        D ]}| |         V — Œd S | j        }t          | ¦  «        }d}||z  dz   }t          |¦  «        D ]>}||z  }t	          |dz   |z  |¦  «        }t          |||…         d¬¦  «        }|E d {V —† Œ?d S )Nrº   i'  T©Úbox)ÚndimÚrangeÚlenr‡   Úminr   )	rM   Úir£   ÚlengthÚ	chunksizeÚchunksÚstart_iÚend_iÚ	converteds	            rP   Ú__iter__zTimedeltaArray.__iter__  så   è è € ØŒ9�qŠ=ˆ=Ý�3˜t™9œ9Ñ%Ô%ð ð �Ø˜1”g����ðð ð ”=ˆDÝ˜‘Y”YˆFØˆIØ 	Ñ)¨QÑ.ˆFÝ˜6‘]”]ð %ð %�Ø˜i™-�Ý˜Q ™U iÑ/°Ñ8Ô8�Ý/°°W¸U°]Ô0CÈÐNÑNÔN�	Ø$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ð	%ð %rR   r   )Úaxisrˆ   ÚoutÚkeepdimsÚinitialÚskipnaÚ	min_countrì   úAxisInt | NoneúNpDtype | Nonerî   rð   rñ   Úintc               óœ   — t          j        d||||dœ¦  «         t          j        | j        |||¬¦  «        }|                      ||¦  «        S )Nr®   )rˆ   rí   rî   rï   )rì   rð   rñ   )ÚnvÚvalidate_sumr+   Únansumr‡   Ú_wrap_reduction_result)	rM   rì   rˆ   rí   rî   rï   rð   rñ   rO   s	            rP   ÚsumzTimedeltaArray.sum’  sd   € õ 	ŒØ˜%¨¸ÈgÐVÐVñ	
ô 	
ð 	
õ ”ØŒM ¨V¸yð
ñ 
ô 
ˆð ×*Ò*¨4°Ñ8Ô8Ð8rR   rº   )rì   rˆ   rí   Úddofrî   rð   rû   c               óà   — t          j        d|||dœd¬¦  «         t          j        | j        |||¬¦  «        }|�| j        dk    r|                      |¦  «        S |                      |¦  «        S )Nr®   )rˆ   rí   rî   Ústd)Úfname)rì   rð   rû   rº   )rö   Úvalidate_stat_ddof_funcr+   Únanstdr‡   rà   r„   Ú_from_backing_data)rM   rì   rˆ   rí   rû   rî   rð   rO   s           rP   rý   zTimedeltaArray.std¦  s€   € õ 	Ô"Ø˜%¨¸ÐBÐBÈ%ð	
ñ 	
ô 	
ð 	
õ ”˜tœ}°4ÀÈTÐRÑRÔRˆØˆ<˜4œ9¨š>˜>Ø—>’> &Ñ)Ô)Ð)Ø×&Ò& vÑ.Ô.Ð.rR   )rð   r;   r<   c               ó4  •— |dk    rat          t          |¦  «        } || j                             ¦   «         fd|i|¤Ž}t	          | ¦  «                             |d | j        ¬¦  «        S |dk    rt          d¦  «        ‚ t          ¦   «         j	        |fd|i|¤ŽS )NÚcumsumrð   )rt   rˆ   Úcumprodz$cumprod not supported for Timedelta.)
Úgetattrr-   r‡   rš   r•   r—   rˆ   Ú	TypeErrorr–   Ú_accumulate)rM   r;   rð   ÚkwargsÚoprO   r˜   s         €rP   r  zTimedeltaArray._accumulate¼  s«   ø€ Ø�8ÒÐÝÕ3°TÑ:Ô:ˆBØ�R˜œ×*Ò*Ñ,Ô,ÐFÐF°VÐF¸vÐFÐFˆFå˜‘:”:×)Ò)¨&°tÀ4Ä:Ð)ÑNÔNÐNØ�YÒÐÝÐBÑCÔCÐCð '•5‘7”7Ô& tÐEÐE°FÐE¸fÐEÐEÐErR   Úboxedc                ó(   — ddl m}  || d¬¦  «        S )Nr   ©Úget_format_timedelta64TrÞ   )Úpandas.io.formats.formatr  )rM   r
  r  s      rP   Ú
_formatterzTimedeltaArray._formatterË  s*   € ØCÐCÐCÐCÐCÐCà%Ð% d°Ð5Ñ5Ô5Ð5rR   r   )Úna_repÚdate_formatr  ústr | floatúnpt.NDArray[np.object_]c               ón   — ddl m}  || |¦  «        } t          j        |dd¦  «        | j        ¦  «        S )Nr   r  rº   )r  r  re   Ú
frompyfuncr‡   )rM   r  r  r  r  Ú	formatters         rP   Ú_format_native_typesz#TimedeltaArray._format_native_typesÐ  sM   € ð 	DÐCÐCÐCÐCÐCð +Ð*¨4°Ñ8Ô8ˆ	ð .�rŒ}˜Y¨¨1Ñ-Ô-¨d¬mÑ<Ô<Ð<rR   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•   rT   r×   s     rP   Ú_add_offsetzTimedeltaArray._add_offsetÞ  sS   € Ý˜e¥d­C [Ñ1Ô1Ð1Ð1Ð1ÝØT¥4¨¡;¤;Ô#7ÐTÐT½tÀD¹z¼zÔ?RÐTÐTñ
ô 
ð 	
rR   Ú__mul__c                óô  ‡‡— t          ‰¦  «        rÃt          j        ‰¦  «        rt          d| j        › d�¦  «        ‚| j        ‰z  }|j        j        dk    r$t          dt          ‰¦  «        j        › �¦  «        ‚d }| j	        �&t          ‰¦  «        s| j	        ‰z  }|j        dk    rd }t          | ¦  «                             ||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)          | ¦  «        k    r)t          j        ‰j        d¦  «        st-          d	¦  «        ‚t/          ‰j        ¦  «        rm| j        Šˆˆfd
„t1          t)          | ¦  «        ¦  «        D ¦   «         }t          j        |¦  «        }t          | ¦  «                             ||j        ¬¦  «        S | j        ‰z  }|j        j        dk    r$t          dt          ‰¦  «        j        › �¦  «        ‚t          | ¦  «                             ||j        ¬¦  «        S )NzCannot multiply 'z.' by bool, explicitly cast to integers insteadr\   zCannot multiply with r   rŸ   rˆ   Úbz$Cannot multiply with unequal lengthsc                ó2   •— g | ]}‰|         ‰|         z  ‘ŒS r®   r®   )r°   ÚnÚarrrØ   s     €€rP   ú
<listcomp>z*TimedeltaArray.__mul__.<locals>.<listcomp>  s&   ø€ ÐBÐBÐB¨A�c˜!”f˜u QœxÑ'ÐBÐBÐBrR   ©rˆ   )r$   r   Úis_boolr  rˆ   r‡   Úkindr•   rT   rt   r*   r  r—   Úhasattrre   Úarrayr“   r'   r(   ÚNotImplementedrâ   r]   r�   r#   rá   )rM   rØ   rO   rt   r  s    `  @rP   r  zTimedeltaArray.__mul__ä  st  øø€ å�UÑÔð 	QÝŒ{˜5Ñ!Ô!ð Ýð'¨¬
ð 'ð 'ð 'ñô ð ð
 ”] UÑ*ˆFØŒ|Ô  CÒ'Ð'õ  Ð N½¸U¹¼Ô8LÐ NÐ NÑOÔOÐOØˆDØŒyÐ$­T°%©[¬[Ð$Ø”y 5Ñ(�Ø”6˜Q’;�;à�DÝ˜‘:”:×)Ò)¨&¸¼È4Ð)ÑPÔPÐPå�u˜gÑ&Ô&ð 	$å”H˜U‘O”OˆEàŒ;Ô˜sÒ"Ð"åð# D¤Jð #ð #ð #ñô ð õ �e”k¥JµÐ#@ÑAÔAð 	"å!Ð!åˆu‰:Œ:�˜T™œÒ"Ð"­3¬?¸5¼;ÈÑ+LÔ+LÐ"õ ÐCÑDÔDÐDå˜5œ;Ñ'Ô'ð 	Fð ”-ˆCØBÐBÐBÐBÐBµµs¸4±y´yÑ1AÔ1AÐBÑBÔBˆFÝ”X˜fÑ%Ô%ˆFÝ˜‘:”:×)Ò)¨&¸¼Ð)ÑEÔEÐEð ” Ñ&ˆØŒ<Ô Ò#Ð#õ ÐJµD¸±K´KÔ4HÐJÐJÑKÔKÐKÝ�D‰zŒz×%Ò% f°F´LÐ%ÑAÔAÐArR   c                óŒ  — t          || j        ¦  «        r}t          |¦  «        }t          d|¦  «        t          u rFt          j        | j        t
          j        ¬¦  «        }| 	                    t
          j
        ¦  «         |S  || j        |¦  «        S |t          j        t          j        fv r9t          dt!          |¦  «        j        › dt!          | ¦  «        j        › �¦  «        ‚ || j        |¦  «        }d}| j        �œt          | j        t&          ¦  «        r[| j        j        |z  dk    rt'          | j        j        |z  ¦  «        }n5t+          t          | j        j        ¬¦  «        ¦  «        |z  }n
| j        |z  }|j        dk    r| j        j        dk    rd}t!          | ¦  «                             ||j        |¬¦  «        S )	zv
        Shared logic for __truediv__, __rtruediv__, __floordiv__, __rfloordiv__
        with scalar 'other'.
        r}   r!  zCannot divide z by Nr   )rC   rŸ   )r“   Ú_recognized_scalarsr   r   r   re   ÚemptyÚshaperF   ÚfillÚnanr‡   r,   ÚrtruedivÚ	rfloordivr  r•   rT   rt   r
   r  r   Únanosr—   rˆ   )rM   rØ   r	  ÚresrO   rt   s         rP   Ú_scalar_divlike_opz!TimedeltaArray._scalar_divlike_op   s«  € õ
 �e˜TÔ5Ñ6Ô6ð (	QÝ˜eÑ$Ô$ˆEõ Ð)¨5Ñ1Ô1µSÐ8Ð8å”h˜tœzµ´Ð<Ñ<Ô<�Ø—’�œÑ Ô Ð Ø�
ð �2�d”m UÑ+Ô+Ð+ð •iÔ(­)Ô*=Ð>Ð>Ð>ÝØT¥T¨%¡[¤[Ô%9ÐTÐT½tÀD¹z¼zÔ?RÐTÐTñô ð ð �R˜œ uÑ-Ô-ˆFØˆDàŒyÐ$õ ˜dœi­Ñ-Ô-ð -Ø”y”{ UÑ*¨aÒ/Ð/Ý" 4¤9¤;°%Ñ#7Ñ8Ô8˜˜å(­¸¼	¼Ð)DÑ)DÔ)DÑEÔEÈÑM˜˜àœ9 uÑ,�DØ”: ’?�? t¤y¤¸!Ò';Ð';ð  �Då˜‘:”:×)Ò)¨&¸¼È4Ð)ÑPÔPÐPrR   c                ó¬   — t          |d¦  «        st          j        |¦  «        }t          |¦  «        t          | ¦  «        k    rt	          d¦  «        ‚|S )Nrˆ   z*Cannot divide vectors with unequal lengths)r$  re   r%  râ   r�   r×   s     rP   Ú_cast_divlike_opzTimedeltaArray._cast_divlike_opO  sL   € Ý�u˜gÑ&Ô&ð 	$å”H˜U‘O”OˆEåˆu‰:Œ:�˜T™œÒ"Ð"ÝÐIÑJÔJÐJØˆrR   únp.ndarray | Selfc                óD  —  || j         t          j        |¦  «        ¦  «        }t          |j        ¦  «        st          |j        ¦  «        rC|t          j        t          j        fv r)t          | ¦  «         
                    ||j        ¬¦  «        S |t          j        t          j        fv rw|                      ¦   «         t          |¦  «        z  }|                     ¦   «         r?|                     t          j        ¦  «        }t          j        ||t          j        ¦  «         |S )z‡
        Shared logic for __truediv__, __floordiv__, and their reversed versions
        with timedelta64-dtype ndarray other.
        r!  )r‡   re   Úasarrayr"   rˆ   r!   ÚoperatorÚtruedivÚfloordivr•   r—   r,   r.  r*   r¿   rÃ   rF   Úputmaskr,  )rM   rØ   r	  rO   Úmasks        rP   Ú_vector_divlike_opz!TimedeltaArray._vector_divlike_opX  sõ   € ð ��D”M¥2¤:¨eÑ#4Ô#4Ñ5Ô5ˆå˜Uœ[Ñ)Ô)ð 	F­^¸E¼KÑ-HÔ-Hð 	FÈbÝÔÝÔðU
ð O
ð O
õ ˜‘:”:×)Ò)¨&¸¼Ð)ÑEÔEÐEà•(Ô#¥YÔ%8Ð9Ð9Ð9Ø—9’9‘;”;¥ e¡¤Ñ,ˆDØ�xŠx‰zŒzð 1ØŸš¥r¤zÑ2Ô2�Ý”
˜6 4­¬Ñ0Ô0Ð0àˆrR   Ú__truediv__c                ó^  — t           j        }t          |¦  «        r|                      ||¦  «        S |                      |¦  «        }t          j        |j        d¦  «        s(t          |j        ¦  «        st          |j        ¦  «        r|  
                    ||¦  «        S t          |j        ¦  «        rut          j        |¦  «        }| j        dk    r?d„ t          | |d¬¦  «        D ¦   «         }d„ |D ¦   «         }t          j        |d¬¦  «        }nt#          | j        |¦  «        }|S t&          S )	Nr\   rº   c                ó   — g | ]
\  }}||z  ‘ŒS r®   r®   ©r°   ÚleftÚrights      rP   r   z.TimedeltaArray.__truediv__.<locals>.<listcomp>€  s-   € ð ð ð Ù%0 T¨5�D˜5‘Lðð ð rR   T©Ústrictc                ó:   — g | ]}|                      d d¦  «        ‘ŒS ©rº   r»   ©Úreshaper¯   s     rP   r   z.TimedeltaArray.__truediv__.<locals>.<listcomp>ƒ  ó&   € Ð@Ð@Ð@°!˜QŸYšY q¨"Ñ-Ô-Ð@Ð@Ð@rR   r   ©rì   )r7  r8  r$   r1  r3  r   r]   rˆ   r"   r!   r<  r#   re   r6  rà   ÚzipÚconcatenater   r‡   r&  ©rM   rØ   r	  Úres_colsÚ	res_cols2rO   s         rP   r=  zTimedeltaArray.__truediv__n  s<  € õ ÔˆÝ�UÑÔð 	6Ø×*Ò*¨5°"Ñ5Ô5Ð5à×%Ò% eÑ,Ô,ˆåŒO˜EœK¨Ñ-Ô-ð	6å ¤Ñ,Ô,ð	6õ ˜eœkÑ*Ô*ð	6ð
 ×*Ò*¨5°"Ñ5Ô5Ð5å˜5œ;Ñ'Ô'ð 	"Ý”J˜uÑ%Ô%ˆEØŒy˜1Š}ˆ}ðð Ý47¸¸eÈDÐ4QÑ4QÔ4Qðñ ô �ð AÐ@°xÐ@Ñ@Ô@�	Ýœ¨	¸Ð:Ñ:Ô:��å-¨d¬m¸UÑCÔC�àˆMõ "Ð!rR   Ú__rtruediv__c                ó¢  ‡ ‡— t           j        }t          ‰¦  «        r‰                      ‰|¦  «        S ‰                      ‰¦  «        Št          j        ‰j        d¦  «        r‰                      ‰|¦  «        S t          ‰j        ¦  «        r=ˆˆ fd„t          t          ‰ ¦  «        ¦  «        D ¦   «         }t          j        |¦  «        S t          S )Nr\   c                ó2   •— g | ]}‰|         ‰|         z  ‘ŒS r®   r®   ©r°   r  rØ   rM   s     €€rP   r   z/TimedeltaArray.__rtruediv__.<locals>.<listcomp>œ  s&   ø€ ÐHÐHÐH°!˜5 œ8 d¨1¤gÑ-ÐHÐHÐHrR   )r,   r-  r$   r1  r3  r   r]   rˆ   r<  r#   rá   râ   re   r%  r&  )rM   rØ   r	  Úresult_lists   ``  rP   rP  zTimedeltaArray.__rtruediv__�  sÊ   øø€ õ ÔˆÝ�UÑÔð 	6Ø×*Ò*¨5°"Ñ5Ô5Ð5à×%Ò% eÑ,Ô,ˆÝŒ?˜5œ;¨Ñ,Ô,ð 	"Ø×*Ò*¨5°"Ñ5Ô5Ð5å˜Uœ[Ñ)Ô)ð 	"ð IÐHÐHÐHÐHµu½SÀ¹Y¼YÑ7GÔ7GÐHÑHÔHˆKÝ”8˜KÑ(Ô(Ð(õ "Ð!rR   Ú__floordiv__c                ó‚  — t           j        }t          |¦  «        r|                      ||¦  «        S |                      |¦  «        }t          j        |j        d¦  «        s(t          |j        ¦  «        st          |j        ¦  «        r|  
                    ||¦  «        S t          |j        ¦  «        r‡t          j        |¦  «        }| j        dk    r?d„ t          | |d¬¦  «        D ¦   «         }d„ |D ¦   «         }t          j        |d¬¦  «        }nt#          | j        |¦  «        }|j        t&          k    sJ ‚|S t(          S )	Nr\   rº   c                ó   — g | ]
\  }}||z  ‘ŒS r®   r®   r@  s      rP   r   z/TimedeltaArray.__floordiv__.<locals>.<listcomp>³  s-   € ð ð ð Ù&1 d¨E�D˜E‘Mðð ð rR   TrC  c                ó:   — g | ]}|                      d d¦  «        ‘ŒS rF  rG  r¯   s     rP   r   z/TimedeltaArray.__floordiv__.<locals>.<listcomp>¶  rI  rR   r   rJ  )r7  r9  r$   r1  r3  r   r]   rˆ   r"   r!   r<  r#   re   r6  rà   rK  rL  r   r‡   Úobjectr&  rM  s         rP   rU  zTimedeltaArray.__floordiv__¢  sM  € åÔˆÝ�UÑÔð 	6Ø×*Ò*¨5°"Ñ5Ô5Ð5à×%Ò% eÑ,Ô,ˆåŒO˜EœK¨Ñ-Ô-ð	"å ¤Ñ,Ô,ð	"õ ˜eœkÑ*Ô*ð	"ð
 ×*Ò*¨5°"Ñ5Ô5Ð5å˜Uœ[Ñ)Ô)ð 	"Ý”J˜uÑ%Ô%ˆEØŒy˜1Š}ˆ}ðð Ý58¸¸uÈTÐ5RÑ5RÔ5Rðñ ô �ð AÐ@°xÐ@Ñ@Ô@�	Ýœ¨	¸Ð:Ñ:Ô:��å.¨t¬}¸eÑDÔD�à”<¥6Ò)Ð)Ð)Ð)ØˆMõ "Ð!rR   Ú__rfloordiv__c                ó¦  ‡ ‡— t           j        }t          ‰¦  «        r‰                      ‰|¦  «        S ‰                      ‰¦  «        Št          j        ‰j        d¦  «        r‰                      ‰|¦  «        S t          ‰j        ¦  «        r?ˆˆ fd„t          t          ‰ ¦  «        ¦  «        D ¦   «         }t          j        |¦  «        }|S t          S )Nr\   c                ó2   •— g | ]}‰|         ‰|         z  ‘ŒS r®   r®   rS  s     €€rP   r   z0TimedeltaArray.__rfloordiv__.<locals>.<listcomp>Ì  s&   ø€ ÐIÐIÐI°1˜5 œ8 t¨A¤wÑ.ÐIÐIÐIrR   )r,   r.  r$   r1  r3  r   r]   rˆ   r<  r#   rá   râ   re   r%  r&  )rM   rØ   r	  rT  rO   s   ``   rP   rZ  zTimedeltaArray.__rfloordiv__Á  sÉ   øø€ åÔ ˆÝ�UÑÔð 	6Ø×*Ò*¨5°"Ñ5Ô5Ð5à×%Ò% eÑ,Ô,ˆÝŒ?˜5œ;¨Ñ,Ô,ð 		"Ø×*Ò*¨5°"Ñ5Ô5Ð5å˜Uœ[Ñ)Ô)ð 	"ØIÐIÐIÐIÐI½½cÀ$¹i¼iÑ8HÔ8HÐIÑIÔIˆKÝ”X˜kÑ*Ô*ˆFØˆMõ "Ð!rR   Ú__mod__c                ó`   — t          || j        ¦  «        rt          |¦  «        }| | |z  |z  z
  S rk   ©r“   r(  r   r×   s     rP   r]  zTimedeltaArray.__mod__Ó  s:   € õ �e˜TÔ5Ñ6Ô6ð 	%Ý˜eÑ$Ô$ˆEØ�t˜u‘}¨Ñ-Ñ-Ð-rR   Ú__rmod__c                ó`   — t          || j        ¦  «        rt          |¦  «        }||| z  | z  z
  S rk   r_  r×   s     rP   r`  zTimedeltaArray.__rmod__Ú  s:   € õ �e˜TÔ5Ñ6Ô6ð 	%Ý˜eÑ$Ô$ˆEØ˜ ™¨Ñ-Ñ-Ð-rR   Ú
__divmod__c                ól   — t          || j        ¦  «        rt          |¦  «        }| |z  }| ||z  z
  }||fS rk   r_  ©rM   rØ   Úres1Úres2s       rP   rb  zTimedeltaArray.__divmod__á  sG   € õ �e˜TÔ5Ñ6Ô6ð 	%Ý˜eÑ$Ô$ˆEà�u‰}ˆØ�d˜U‘lÑ"ˆØ�TˆzÐrR   Ú__rdivmod__c                ól   — t          || j        ¦  «        rt          |¦  «        }|| z  }||| z  z
  }||fS rk   r_  rd  s       rP   rg  zTimedeltaArray.__rdivmod__ë  sG   € õ �e˜TÔ5Ñ6Ô6ð 	%Ý˜eÑ$Ô$ˆEà˜‰}ˆØ�t˜d‘{Ñ"ˆØ�TˆzÐrR   c                ó„   — d }| j         �| j          }t          | ¦  «                             | j         | j        |¬¦  «        S ©NrŸ   )rt   r•   r—   r‡   rˆ   )rM   rt   s     rP   Ú__neg__zTimedeltaArray.__neg__õ  s?   € ØˆØŒ9Ð Ø”I�:ˆDÝ�D‰zŒz×%Ò% t¤} n¸D¼JÈTÐ%ÑRÔRÐRrR   c                óŽ   — t          | ¦  «                             | j                             ¦   «         | j        | j        ¬¦  «        S rj  )r•   r—   r‡   rš   rˆ   rt   rg   s    rP   Ú__pos__zTimedeltaArray.__pos__û  s>   € Ý�D‰zŒz×%Ò%ØŒM×ÒÑ Ô ¨¬
¸¼ð &ñ 
ô 
ð 	
rR   c                ó‚   — t          | ¦  «                             t          j        | j        ¦  «        | j        ¬¦  «        S )Nr!  )r•   r—   re   Úabsr‡   rˆ   rg   s    rP   Ú__abs__zTimedeltaArray.__abs__   s/   € å�D‰zŒz×%Ò%¥b¤f¨T¬]Ñ&;Ô&;À4Ä:Ð%ÑNÔNÐNrR   únpt.NDArray[np.float64]c                óh   — t          | 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)rG   )r   rJ   rL   rI   )rM   Úppss     rP   rw   zTimedeltaArray.total_seconds  s3   € õl ! ¤Ñ-Ô-ˆØ×'Ò'¨¬	°C©ÀDÐ'ÑIÔIÐIrR   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‡   rg   s    rP   rv   zTimedeltaArray.to_pytimedelta@  s   € õN # 4¤=Ñ1Ô1Ð1rR   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')rC   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')rp   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')rq   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')rr   r:   c                ó¢   ‡‡— ddl m} g d¢Š| j        }|rˆfd„Šnd„ Š |ˆfd„| D ¦   «         ‰¬¦  «        }|s|                     d¦  «        }|S )	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   )rC   ÚhoursÚminutesrp   Úmillisecondsrq   rr   c                ój   •— t          | ¦  «        rt          j        gt          ‰¦  «        z  S | j        S rk   )r*   re   r,  râ   Ú
components)r_   Úcolumnss    €rP   rQ   z$TimedeltaArray.components.<locals>.f/  s.   ø€ Ý˜‘7”7ð 3ÝœF˜8¥c¨'¡l¤lÑ2Ð2Ø”|Ð#rR   c                ó   — | j         S rk   )rz  r^   s    rP   rQ   z$TimedeltaArray.components.<locals>.f6  s
   € Ø”|Ð#rR   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r®   r®   )r°   r_   rQ   s     €rP   r   z-TimedeltaArray.components.<locals>.<listcomp>9  s!   ø€ Ð/Ð/Ð/ Q˜A˜A˜a™DœDÐ/Ð/Ð/rR   )r{  Úint64)Úpandasr:   rK   rÃ   )rM   r:   ÚhasnansrO   r{  rQ   s       @@rP   rz  zTimedeltaArray.components  s°   øø€ ð8 	%Ð$Ð$Ð$Ð$Ð$ð
ð 
ð 
ˆð ”+ˆØð 
	$ð$ð $ð $ð $ð $ð $ð$ð $ð $ð �Ð/Ð/Ð/Ð/¨$Ð/Ñ/Ô/¸ÐAÑAÔAˆØð 	,Ø—]’] 7Ñ+Ô+ˆFØˆrR   )r@   rc   )r@   ri   )r_   rc   r@   r}   )r@   r…   )rN   r�   rt   r‰   rˆ   r…   r@   r   )rš   r›   r@   r   rk   )rf   r8   r@   r   )r@   r}   )r@   rÕ   )T)rš   r›   )r@   r2   )
rì   rò   rˆ   ró   rî   r›   rð   r›   rñ   rô   )
rì   rò   rˆ   ró   rû   rô   rî   r›   rð   r›   )r;   r<   rð   r›   )F)r
  r›   )r  r  r@   r  )r@   r   )r@   r4  )r@   rY   )r@   rq  )r@   r  )r@   r:   )MrT   Ú
__module__Ú__qualname__rU   Ú_typr   re   rb   r   r(  ra   Ú__annotations__Ú_infer_matchesrV   rh   rm   Ú__array_priority__rn   ro   rs   ru   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__r1  r3  r<  r=  rP  rU  rZ  r]  r`  rb  rg  rk  rm  rp  rw   rv   ÚtextwrapÚdedentÚdays_docstringrW   rC   Úseconds_docstringrp   Úmicroseconds_docstringrq   Únanoseconds_docstringrr   rz  Ú__classcell__)r˜   s   @rP   rY   rY   o   sÃ  ø€ € € € € € ð)ð )ðV €DØ$ b¤n°dÐ;ÐØ7XÐ7XÐÐXÐXÐXÑXØ1€Nàð0ð 0ð 0ñ „Xð0ð ðð ð ñ „Xðð Ðà€JÐÐÐÑØ€IÐÐÐÑØNÐNÐN€JÐNÐNÐNÑNØ#-°	Ñ#9¸VÀVÐ<LÑ#LÐÐLÐLÐLÑLð(ð (ð (Ðð ð ð ñ ðCð Cð Cð Cð ð#ð #ð #ñ „Xð#ð&  $€EÐ#Ð#Ð#Ñ#àðð ñ „[ðð ð #'Ø*6ð	ð ð ð ð ð ñ „[ðð" Ø+/¸eð Bð Bð Bð Bð Bñ „[ðBð ð
 ØØŒ^Øðð ð ð ð ñ „[ðð< à/3ð(Nð (Nð (Nð (Nñ „[ð(NðZAð Að Að Að ð  ð  ð  ðð ð ð ðIð Ið Ið Ið Ið6%ð %ð %ð %ð,  $Ø $ØØØØØð9ð 9ð 9ð 9ð 9ð 9ð.  $Ø $ØØØØð/ð /ð /ð /ð /ð /ð, 8<ð 
Fð 
Fð 
Fð 
Fð 
Fð 
Fð 
Fð 
Fð6ð 6ð 6ð 6ð 6ð (-¸$ð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð
ð 
ð 
ð Ð˜iÑ(Ô(ð7Bð 7Bð 7Bñ )Ô(ð7Bðr €Hð-Qð -Qð -Qð^ð ð ðð ð ð ð, Ð˜mÑ,Ô,ð"ð "ñ -Ô,ð"ð< Ð˜nÑ-Ô-ð"ð "ñ .Ô-ð"ð( Ð˜nÑ-Ô-ð"ð "ñ .Ô-ð"ð< Ð˜oÑ.Ô.ð"ð "ñ /Ô.ð"ð" Ð˜iÑ(Ô(ð.ð .ñ )Ô(ð.ð Ð˜jÑ)Ô)ð.ð .ñ *Ô)ð.ð Ð˜lÑ+Ô+ðð ñ ,Ô+ðð Ð˜mÑ,Ô,ðð ñ -Ô,ððSð Sð Sð Sð
ð 
ð 
ð 
ð
Oð Oð Oð Oð7Jð 7Jð 7Jð 7Jðr'2ð '2ð '2ð '2ðR %�X”_ð	)ñ!ô !€NðD ˆ?˜6 6¨>Ñ:Ô:€Dà'˜œð	'ñ ô  ÐðB ˆoØØØñô €Gð -˜Xœ_ð 	'ñ"ô "ÐðF #�?ØØØñô €Lð ,˜HœOð	'ñ!ô !ÐðD "�/ØØØñô €Kð ð6ð 6ð 6ñ „Xð6ð 6ð 6ð 6ð 6rR   rY   FÚraiserš   r›   Úerrorsr4   r@   ú$tuple[np.ndarray, Tick | Day | None]c                ó&  — |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          | |¬¦  «        \  } }|o| }�nŠt          | j        ¦  «        �rt          | j        t          ¦  «        r| j        }| j        } nt!          j        | ¦  «        }|�“|dk    r�t!          j        d	¬
¦  «        5  |                      t           j        ¦  «        }ddd¦  «         n# 1 swxY w Y   || |k    z                       ¦   «         }|r$t-          |d||¬¦  «        \  }	}
t.          |	|<   |	|fS t1          | |pd¦  «        } t.          | |<   |                      d¦  «        } d}not5          j        | j        d¦  «        r=t9          | j        ¦  «        s(t;          | j        ¦  «        }t=          | |d¬¦  «        } d}nt?          d| j        › d�¦  «        ‚|st!          j         | ¦  «        } nt!          j!        | |¬¦  «        } | j        j"        dk    sJ ‚| j        dk    sJ ‚| |fS )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¦   NrY   )Úcls_name©rf   r’  Fr¹   r³   Úignore)Úinvalid)rš   rf   r’  zm8[ns]r\   r™   zdtype z' cannot be converted to timedelta64[ns]rÚ   Úm8)#r   r½   Ú!ensure_arraylike_for_datetimeliker“   rY   rt   rˆ   rY  r%   Ú_objects_to_td64nsr"   Ú_ints_to_td64nsr!   r)   Ú_maskÚ_datare   ÚisnanÚerrstaterÃ   r~  Úallr¢   r   r   r€   r   r]   r   r   r   r  r6  r%  r#  )r£   rš   rf   r’  rª   Ú	copy_mader;  Úint_dataÚ	all_roundrO   Ú_Ú	new_dtypes               rP   r¢   r¢   C  s  € ðH �Ð&Ð&Ð&Ð&à€MØÐÝ# DÑ)Ô)ˆåÔ6ØˆdÐ-ðñ ô �J€Dˆ$õ �$�Ñ'Ô'ð "Øœ	ˆð „z•VÒÐ�¨t¬zÑ:Ô:Ðå! $¨T¸&ÐAÑAÔAˆØˆ‰å	˜$œ*Ñ	%Ô	%ð )Vå)¨$°TÐ:Ñ:Ô:‰ˆˆiØÐ%˜I˜ˆ‰å	˜œ
Ñ	#Ô	#ñ $Võ �d”j¥.Ñ1Ô1ð 	"Ø”:ˆDØ”:ˆDˆDå”8˜D‘>”>ˆDàÐ ¨¢ õ ” XÐ.Ñ.Ô.ð 1ð 1ØŸ;š;¥r¤xÑ0Ô0�ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1à ¨Ò!1Ñ2×7Ò7Ñ9Ô9ˆIØð -Ý.Ø 5¨t¸Fðñ ô ‘	�˜õ  $��t‘Ø˜}Ð,Ð,å(¨¨t¨|°tÑ<Ô<ˆÝˆˆT‰
Ø�yŠy˜Ñ"Ô"ˆØˆˆå	Œ˜œ SÑ	)Ô	)ð 	VÝ! $¤*Ñ-Ô-ð 	å+¨D¬JÑ7Ô7ˆIÝ& t°9À5ÐIÑIÔIˆDØˆDøõ ÐT ¤ÐTÐTÐTÑUÔUÐUàð )ÝŒz˜$ÑÔˆˆåŒx˜ 4Ð(Ñ(Ô(ˆàŒ:Œ?˜cÒ!Ð!Ð!Ð!ØŒ:˜ÒÐÐÐà�ÐÐs   Ä( EÅEÅEr³   rf   útuple[np.ndarray, bool]c                óX  — d}|�|nd}| j         t          j        k    r!|                      t          j        ¦  «        } d}|dk    rNd|› d�}|                      |¦  «        } t          | j         ¦  «        }|| j         k    rt          | |¬¦  «        } d}n|                      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
    FNr³   Tztimedelta64[r¼   r!  ztimedelta64[ns])rˆ   re   r~  rÃ   r€   r   r   )r£   rf   r¢  Ú	dtype_strr¦  s        rP   rœ  rœ  °  s¾   € ð  €IØÐ#ˆ4ˆ4¨€Dà„z•R”XÒÐð �{Š{�2œ8Ñ$Ô$ˆØˆ	àˆt‚|€|Ø* 4Ð*Ð*Ð*ˆ	Ø�yŠy˜Ñ#Ô#ˆå'¨¬
Ñ3Ô3ˆ	Ø˜œ
Ò"Ð"Ý& t°9Ð=Ñ=Ô=ˆDð ˆIøð �yŠyÐ*Ñ+Ô+ˆà�ˆ?ÐrR   rA   c                ój   — 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–  )re   r6  Úobject_r   )r£   rf   r’  rN   rO   s        rP   r›  r›  Ú  s4   € õ@ ŒZ˜¥B¤JÐ/Ñ/Ô/€Få! &¨t¸FÐCÑCÔC€FØ€MrR   r5   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&   re   rˆ   r�   r   r]   r   )rˆ   Úmsgs     rP   rŒ   rŒ      sŽ   € Ý˜ÑÔ€EØ•”˜‘”ÒÐð8ð 	õ ˜‰oŒoÐåŒ?˜5 #Ñ&Ô&ð XÝÐV 5ÐVÐVÐVÑWÔWÐWÝ Ñ&Ô&ð XÝÐVÑWÔWÐWà€LrR   )r;   r<   r=   r<   r>   r<   )FNr‘  )rš   r›   r’  r4   r@   r“  )r³   )rf   r<   r@   r§  )Nr‘  )r’  r4   r@   rA   )r@   r5   )^Ú
__future__r   Údatetimer   r7  Útypingr   r   r   Únumpyre   Ú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®   rR   rP   ú<module>rÈ     sr  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð Ð Ð Ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð EÐ DÐ DÐ DÐ DÐ Dðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .Ø .Ð .Ð .Ð .Ð .Ð .Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 ,Ð +Ð +Ð +Ð +Ð +ðð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø =Ð =Ð =Ð =Ð =Ð =Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;àð !Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð !Ð Ð Ð Ð Ð à €€€ðð ð ð ð, €ˆOÑÔðLð Lð Lð Lð L�S”_ñ Lô Lñ ÔðLðj Ø	Ø#*ð	jð jð jð jð jðZ'ð 'ð 'ð 'ð 'ðV 5<ð#ð #ð #ð #ð #ðLð ð ð ð ð rR   