HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/pandas/core/arrays/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/pandas/core/arrays/__pycache__/timedeltas.cpython-36.pyc
3

���h ��@s�ddlmZddlmZddlZddlmZmZddl	m
Z
mZmZm
Z
mZmZmZddlmZddlmZddlmZmZdd	lmZdd
lmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&ddl'm(Z(ddl)m*Z*m+Z+dd
l,m-Z-ddl.m/Z/ddl0m1Z1ddl2m3Z3m4Z5ddl6m7Z7ddl8j9j:Z;ddl<m=Z=ddl>m?Z?d#dd�Z@Gdd�de5jAe5jB�ZCd$dd�ZDd%dd�ZEd&dd �ZFd!d"�ZGdS)'�)�	timedelta)�ListN)�lib�tslibs)�NaT�Period�Tick�	Timedelta�	Timestamp�iNaT�	to_offset)�precision_from_unit)�get_timedelta_field)�array_to_timedelta64�parse_timedelta_unit)�function)�DT64NS_DTYPE�TD64NS_DTYPE�is_dtype_equal�is_float_dtype�is_integer_dtype�is_object_dtype�	is_scalar�is_string_dtype�is_timedelta64_dtype�is_timedelta64_ns_dtype�pandas_dtype)�DatetimeTZDtype)�	ABCSeries�ABCTimedeltaIndex)�isna)�nanops)�checked_add_with_arr)�IntegerArray�datetimelike)�generate_regular_range)�
extract_array)�unpack_zerodim_and_defercs(�fdd�}||_d|�d�|_t|�S)Ncs*|j}t|��}|jr&|j|ddd�}|S)N�float64)�
fill_value�convert)�asi8r�_hasnans�_maybe_mask_results)�self�values�result)�alias��?/tmp/pip-build-5_djhm0z/pandas/pandas/core/arrays/timedeltas.py�f(s
z_field_accessor.<locals>.f�
)�__name__�__doc__�property)�namer1Z	docstringr4r2)r1r3�_field_accessor's
r:cs�eZdZUdZdZeZeej	e
fZeZ
dZgZeegZeedgZddddgZeeeZd	d
ddd
gZedd��Zedd��Zeejdfdd�Zedefdd��Zeedejdfdd��Z edodd��Z!dd�Z"dd�Z#dpe$d �d!d"�Z%d#d$�Z&dqd&d'�Z'dre$e$e(d)�d*d+�Z)dse(e$e$d-�d.d/�Z*dte$e$e$d0�d1d2�Z+dud3d4�Z,dvd6d7�Z-d8d9�Z.e/d:�d;d<�Z0d=d>�Z1d?d@�Z2�fdAdB�Z3e4dC�dDdE��Z5e5Z6e4dF�dGdH��Z7e4dI�dJdK��Z8e4dL�dMdN��Z9e4dO�dPdQ��Z:e4dR�dSdT��Z;e4dU�dVdW��Z<e4dX�dYdZ��Z=e4d[�d\d]��Z>d^d_�Z?d`da�Z@dbdc�ZAddde�ZBejCdf�dgdh�ZDeEdddi�ZFeEdddj�ZGeEdddk�ZHeEdddl�ZIedmdn��ZJ�ZKS)w�TimedeltaArraya�
    Pandas ExtensionArray for timedelta data.

    .. versionadded:: 0.24.0

    .. warning::

       TimedeltaArray is currently experimental, and its API may change
       without warning. In particular, :attr:`TimedeltaArray.dtype` is
       expected to change to be an instance of an ``ExtensionDtype``
       subclass.

    Parameters
    ----------
    values : array-like
        The timedelta data.

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

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

    Methods
    -------
    None
    Ztimedeltaarrayi��freq�days�seconds�microseconds�nanoseconds�to_pytimedelta�
total_seconds�round�floor�ceilcCsdd�S)NcSst|dd�S)N�ns)�unit)r	)�xr2r2r3�<lambda>qsz*TimedeltaArray._box_func.<locals>.<lambda>r2)r.r2r2r3�	_box_funcoszTimedeltaArray._box_funccCstS)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
        )r)r.r2r2r3�dtypesszTimedeltaArray.dtypeFc	CsFt|�}t|dd�}|dk}|tjk	r*|nd}t|t|��r~|rBn6|dkrR|j}n&|rx|jrxt|�}tj	||jd�\}}|j
}t|tj�s�dt|�j
�d�}t|��|jdkr�td��|jdkr�|jt�}t|j�t|�}|d	kr�d
}t|��|�r�|j�}|�rt|�}||_
||_||_|dk�rB|dk	�rBt|�j||�dS)N�_freqFzUnexpected type 'zY'. 'values' must be a TimedeltaArray ndarray, or Series or Index containing one of those.��z.Only 1-dimensional input arrays are supported.�i8ZinferzUFrequency inference not allowed in TimedeltaArray.__init__. Use 'pd.array()' instead.)rMrN)r&�getattrr�
no_default�
isinstance�typer<r�dtl�validate_inferred_freq�_data�np�ndarrayr6�
ValueError�ndimrK�viewr�_validate_td64_dtype�copy�_dtyperL�_validate_frequency)	r.r/rKr<r]�
inferred_freq�
explicit_none�_�msgr2r2r3�__init__�sD




zTimedeltaArray.__init__NcCsn|tkst|��t|tj�s(tt|���|jtkrJ|jdks@t�|jt�}tj	|�}||_
t|�|_t|_
|S)NrO)r�AssertionErrorrRrWrXrSrKr[�object�__new__rVrrLr^)�clsr/r<rKr0r2r2r3�_simple_new�s



zTimedeltaArray._simple_newc
Cs�|rt|�|dk}|tjk	r"|nd}tj|�\}}t|||d�\}}tj|||�\}}|r`d}|j||d�}	|dkr�|dk	r�|j|	|�n|r�t	|	j
�|	_|	S)N)r]rG)r<)r\rrQrTZmaybe_infer_freq�sequence_to_td64nsrUrir_rr`rL)
rh�datarKr]r<rGraZ
freq_inferr`r0r2r2r3�_from_sequence�szTimedeltaArray._from_sequencec	Cs�tj|�}|dkr2tdd�|||gD��r2td��tj||||�dkrNtd��|dk	r^t|�}|dk	rnt|�}tj|�\}}|dk	r�t||||�}nt	j
|j|j|�jd�}|s�|dd�}|s�|dd	�}|j
||d�S)
Ncss|]}|dkVqdS)Nr2)�.0rHr2r2r3�	<genexpr>�sz1TimedeltaArray._generate_range.<locals>.<genexpr>z1Must provide freq argument if no data is supplied�zVOf the four parameters: start, end, periods, and freq, exactly three must be specifiedrOrM)r<���)rTZvalidate_periods�anyrY�comZcount_not_noner	Zvalidate_endpointsr%rWZlinspace�value�astyperi)	rh�start�endZperiodsr<�closedZleft_closedZright_closed�indexr2r2r3�_generate_range�s&
 zTimedeltaArray._generate_rangecCs.t||j�r|tk	rtd��|j|�|jS)Nz'value' should be a Timedelta.)rR�_scalar_typerrY�_check_compatible_withrs)r.rsr2r2r3�
_unbox_scalars
zTimedeltaArray._unbox_scalarcCst|�S)N)r	)r.rsr2r2r3�_scalar_from_stringsz"TimedeltaArray._scalar_from_string)�setitemcCsdS)Nr2)r.�otherr~r2r2r3r{sz%TimedeltaArray._check_compatible_withcCs
d|_dS)N)rL)r.r2r2r3�_maybe_clear_freqsz TimedeltaArray._maybe_clear_freqTcCs�t|�}t|�r^t|�r^|jrD|jj|dd�}|j|ddd�}|S|jj||d�}|jd�St|�rv|rr|j�S|Stj	j|||d�S)NF)r]r()r)r*rO)
rrrr,rVrtr-r]rT�DatetimeLikeArrayMixin)r.rKr]r0r/r2r2r3rt!s
zTimedeltaArray.astyper)�keepdims�skipna�	min_countc	CsPtjft||||d��t|�s$tS|r4|jr4tStj|j|||d�}t	|�S)N)rK�outr��initial)�axisr�r�)
�nvZvalidate_sum�dict�lenrr,r!ZnansumrVr	)	r.r�rKr�r�r�r�r�r0r2r2r3�sum>s
zTimedeltaArray.sumrM)�ddofr�r�cCsRtjft|||d�dd�t|�s&tS|r6|jr6tStj|j|||d�}t	|�S)N)rKr�r��std)�fname)r�r�r�)
r�Zvalidate_stat_ddof_funcr�r�rr,r!ZnanstdrVr	)r.r�rKr�r�r�r�r0r2r2r3r�Us	zTimedeltaArray.std)�overwrite_inputr�r�cCs(tjft|||d��tj|j||d�S)N)r�r�r�)r�r�)r�Zvalidate_medianr�r!Z	nanmedianrV)r.r�r�r�r�r�r2r2r3�medianiszTimedeltaArray.mediancCsddlm}||dd�S)Nr)�_get_format_timedelta64T)Zbox)�pandas.io.formats.formatr�)r.Zboxedr�r2r2r3�
_formatteryszTimedeltaArray._formatterrcs>ddlm}||j|��tj�fdd�|jj�D��j|j�S)Nr)r�csg|]}�|��qSr2r2)rmrH)�	formatterr2r3�
<listcomp>�sz7TimedeltaArray._format_native_types.<locals>.<listcomp>)r�r�rVrW�array�ravel�reshape�shape)r.Zna_repZdate_format�kwargsr�r2)r�r3�_format_native_types~sz#TimedeltaArray._format_native_typescCs4t|t�st�tdt|�j�dt|�j����dS)Nzcannot add the type z to a )rRrre�	TypeErrorrSr6)r.rr2r2r3�_add_offset�szTimedeltaArray._add_offset)rcCs2ddlm}tj|j|j�}|||jd�}||S)z&
        Add a Period object.
        rM)�PeriodArray)r<)Zperiodr�rWZbroadcast_toZordinalr�r<)r.rr�Zi8valsZothr2r2r3�_add_period�szTimedeltaArray._add_periodcCs(t|tj�r ddlm}||�}||S)zS
        Add DatetimeArray/Index or ndarray[datetime64] to TimedeltaArray.
        r)�
DatetimeArray)rRrWrX�pandas.core.arraysr�)r.rr�r2r2r3�_add_datetime_arraylike�sz&TimedeltaArray._add_datetime_arraylikecCs�ddlm}|tk	st�t|�}|tkrD|jjd�tj�}||�S|j}t||j	|j
d�}|j|�}|jrxt
|jd�nt}||||jd�S)Nr)r�zm8[ms])Zarr_mask)�tz)rKr<)r�r�rrer
r+r[Z
to_datetime64r"rs�_isnanr-r�rrr<)r.rr�r0rOrKr2r2r3�_add_datetimelike_scalar�s
z'TimedeltaArray._add_datetimelike_scalarcsLyt�j||�Stk
rF}ztdt|�j���|�WYdd}~XnXdS)Nz+Cannot add/subtract non-tick DateOffset to )�super�_addsub_object_array�AttributeErrorr�rSr6)r.r�op�err)�	__class__r2r3r��sz#TimedeltaArray._addsub_object_array�__mul__cs�t��rD�j�}d}�jdk	r4t��r4�j�}t��||d�St�d�sXtj���t��t��kr|t	�j
�r|td��t�j
�r���fdd�t
t���D�}tj|�}t��|�S�j�}t��|�S)N)r<rKz$Cannot multiply with unequal lengthscsg|]}�|�|�qSr2r2)rm�n)rr.r2r3r��sz*TimedeltaArray.__mul__.<locals>.<listcomp>)rrVr<r rS�hasattrrWr�r�rrKrYr�range)r.rr0r<r2)rr.r3r��s 






zTimedeltaArray.__mul__�__truediv__cs~t|ttjtf�rNt|�}|tkrDtj|jtj	d�}|j
tj�|S|j|St
j|�r�|j|}d}|jdk	r||jj|}t|�||d�St|d�s�tj|�}t|�t|�kr�td��n�t|j�r�|j|St|j��rd|j��|j����fdd�tt���D�}tj|�j|j�}t
j|�}|dk�rL|j�}t|�j|�j|j�}n|dk�r`|jt�}|S|j|}t|�|�SdS)	N)rK)r<rKz*Cannot divide vectors with unequal lengthscsg|]}�|�|�qSr2r2)rmr�)�orav�sravr2r3r�sz.TimedeltaArray.__truediv__.<locals>.<listcomp>rZfloating) rRrrW�timedelta64rr	r�emptyr�r(�fill�nanrVrrr<�deltarSr�r�r�rYrrKrr�r�r��infer_dtyperlrt�float)r.rr0r<�inferredZflatr2)r�r�r3r��sB













zTimedeltaArray.__truediv__�__rtruediv__cs
t�ttjtf�rNt����tkrDtj�jtj	d�}|j
tj�|S��jSt
j��rxtdt��j�dt��j����t�d�s�tj���t��t��kr�td��n`t�j�r���jSt�j�r��fdd�tt���D�}tj|�Std�j�dt��j����dS)	N)rKzCannot divide z by rKz*Cannot divide vectors with unequal lengthscsg|]}�|�|�qSr2r2)rmr�)rr.r2r3r�?sz/TimedeltaArray.__rtruediv__.<locals>.<listcomp>z	 data by )rRrrWr�rr	rr�r�r(r�r�rVrrr�rSr6r�r�r�rYrrKrr�)r.rr0r2)rr.r3r�s*








zTimedeltaArray.__rtruediv__�__floordiv__cs�t��r�t�ttjtf�r\t����tkrLtj�j	tj
d�}|jtj�|S�j
�j�}|S�j�}t|�j<d}�jdk	r��j�}|jdkr��jjdkr�d}t��|jd�|d�St�d�s�tj���t��t��kr�td���nt�j��r<t������j�j}�j�jB}|j��r8|jtj�}tj||<|St�j��r���fdd�t t���D�}tj|�}t!j"|d	d
�dk�r�t#|�\}}t��|�S|St$�j��s�t%�j��r̈j�}t��|�St&�dt��j'�}t(d|�d
t��j'����dS)N)rKrzm8[ns])r<rKz"Cannot divide with unequal lengthscsg|]}�|�|�qSr2r2)rmr�)rr.r2r3r�xsz/TimedeltaArray.__floordiv__.<locals>.<listcomp>F)r�rzCannot divide z by ))rrRrrWr�rr	rr�r�r(r�r��
__rfloordiv__rVr+rr�r<ZnanosrSr[r�r�r�rYrrKrqrt�int64rr�rr�rjrrrPr6r�)r.rr0r<�maskrbrKr2)rr.r3r�GsR









zTimedeltaArray.__floordiv__r�cs`t��r|t�ttjtf�r\t����tkrLtj�j	tj
d�}|jtj�|S�j
�j�}|Stdt��j�dt��j����t�d�s�tj���t��t��kr�td��n�t�j�r�t������j�j}�j�jB}|j�r�|jtj�}tj||<|St�j��r0��fdd�tt���D�}tj|�}|St�dt��j�}td|�dt��j����dS)N)rKzCannot divide z by rKz"Cannot divide with unequal lengthscsg|]}�|�|�qSr2r2)rmr�)rr.r2r3r��sz0TimedeltaArray.__rfloordiv__.<locals>.<listcomp>) rrRrrWr�rr	rr�r�r(r�r�r�rVr�rSr6r�r�r�rYrrKr+r�rqrtr�rr�rP)r.rr0r�rKr2)rr.r3r��s:





zTimedeltaArray.__rfloordiv__�__mod__cCs*t|ttjtf�rt|�}||||S)N)rRrrWr�rr	)r.rr2r2r3r��szTimedeltaArray.__mod__�__rmod__cCs*t|ttjtf�rt|�}||||S)N)rRrrWr�rr	)r.rr2r2r3r��szTimedeltaArray.__rmod__�
__divmod__cCs6t|ttjtf�rt|�}||}|||}||fS)N)rRrrWr�rr	)r.r�res1�res2r2r2r3r��s
zTimedeltaArray.__divmod__�__rdivmod__cCs6t|ttjtf�rt|�}||}|||}||fS)N)rRrrWr�rr	)r.rr�r�r2r2r3r��s
zTimedeltaArray.__rdivmod__cCs2|jdk	r"t|�|j|jd�St|�|j�S)N)r<)r<rSrV)r.r2r2r3�__neg__�s
zTimedeltaArray.__neg__cCst|�|j|jd�S)N)r<)rSrVr<)r.r2r2r3�__pos__�szTimedeltaArray.__pos__cCst|�tj|j��S)N)rSrW�absrV)r.r2r2r3�__abs__�szTimedeltaArray.__abs__cCs|jd|jdd�S)a�
        Return total duration of each element expressed in seconds.

        This method is available directly on TimedeltaArray, TimedeltaIndex
        and on Series containing timedelta values under the ``.dt`` namespace.

        Returns
        -------
        seconds : [ndarray, Float64Index, Series]
            When the calling object is a TimedeltaArray, the return type
            is ndarray.  When the calling object is a TimedeltaIndex,
            the return type is a Float64Index. When the calling object
            is a Series, the return type is Series of type `float64` whose
            index is the same as the original.

        See Also
        --------
        datetime.timedelta.total_seconds : Standard library version
            of this method.
        TimedeltaIndex.components : Return a DataFrame with components of
            each Timedelta.

        Examples
        --------
        **Series**

        >>> s = pd.Series(pd.to_timedelta(np.arange(5), unit='d'))
        >>> s
        0   0 days
        1   1 days
        2   2 days
        3   3 days
        4   4 days
        dtype: timedelta64[ns]

        >>> s.dt.total_seconds()
        0         0.0
        1     86400.0
        2    172800.0
        3    259200.0
        4    345600.0
        dtype: float64

        **TimedeltaIndex**

        >>> idx = pd.to_timedelta(np.arange(5), unit='d')
        >>> idx
        TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'],
                       dtype='timedelta64[ns]', freq=None)

        >>> idx.total_seconds()
        Float64Index([0.0, 86400.0, 172800.0, 259200.00000000003, 345600.0],
                     dtype='float64')
        g��&�.>N)r))r-r+)r.r2r2r3rB�s7zTimedeltaArray.total_seconds)�returncCstj|j�S)z�
        Return Timedelta Array/Index as object ndarray of datetime.timedelta
        objects.

        Returns
        -------
        datetimes : ndarray
        )rZints_to_pytimedeltar+)r.r2r2r3rA!s	zTimedeltaArray.to_pytimedeltaz Number of days for each element.z>Number of seconds (>= 0 and less than 1 day) for each element.zFNumber of microseconds (>= 0 and less than 1 second) for each element.zJNumber of nanoseconds (>= 0 and less than 1 microsecond) for each element.csjddlm}ddddddd	g�|j}|r6�fd
d��ndd��|�fd
d�|D��d�}|sf|jd�}|S)z�
        Return a dataframe of the components (days, hours, minutes,
        seconds, milliseconds, microseconds, nanoseconds) of the Timedeltas.

        Returns
        -------
        a DataFrame
        r)�	DataFramer=�hours�minutesr>Zmillisecondsr?r@cst|�rtjgt��S|jS)N)r rWr�r��
components)rH)�columnsr2r3r4Usz$TimedeltaArray.components.<locals>.fcSs|jS)N)r�)rHr2r2r3r4\scsg|]}�|��qSr2r2)rmrH)r4r2r3r�_sz-TimedeltaArray.components.<locals>.<listcomp>)r�r�)Zpandasr�r,rt)r.r�Zhasnansr0r2)r�r4r3r�=s 

zTimedeltaArray.components)N)F)T)NNNFNTr)NNNrMFT)NNFFT)F)rN)Lr6�
__module__�__qualname__r7Z_typr	rzrrWr�rZ_recognized_scalarsrZ_is_recognized_dtypeZ__array_priority__Z
_other_opsr�strZ	_bool_opsZ_object_opsZ
_field_opsZ_datetimelike_opsZ_datetimelike_methodsr8rJrKrrrQrd�classmethodrirlryr|r}�boolr{r�rt�intr�r�r�r�r�r�rr�r�r�r�r'r��__rmul__r�r�r�r�r�r�r�r�r�r�r�rBrXrAr:r=r>r?r@r��
__classcell__r2r2)r�r3r;7s�
7
#



	
:*@0

9r;F�raisecCs�d}|dk	rt|�}t|d�sDtj|�dkr4t|�}tj|dd�}nHt|t�rV|j}n6t|t	t
f�rr|j}|j}nt|t
�r�|jdtjd�}t|j�s�t|j�r�t|||d�}d}n�t|j�r�t||d	�\}}|o�|}n�t|j��rRtj|�}t|p�d
�\}}|jtj�}	||	}
|�r&tj|
|�}
|	||
|jtj�jd�}t||<d}n:t|j��rz|jtk�r�|jt�}d}nt d|j�d
���tj||d�}|jdk�s�t!|��||fS)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 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.
    NrKrF)r]r�)Zna_value)rG�errors)rGrFztimedelta64[ns]zdtype z' cannot be converted to timedelta64[ns]zm8[ns])"rr�rWrZ�listr�rRrZ_valuesrr;r<rVr#Zto_numpyrrrrKr�objects_to_td64nsr�ints_to_td64nsr�isnanr
rtr�rCr[rrr�re)rkr]rGr�r`�	copy_mader��m�p�base�fracr2r2r3rjisL





rjrFcCspd}|dk	r|nd}|jtjkr0|jtj�}d}|dkr^d|�d�}|j|�}|jd�}d}n
|jd�}||fS)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
    FNrFTztimedelta64[�]ztimedelta64[ns])rKrWr�rtr[)rkrGr�Z	dtype_strr2r2r3r��s


r�cCs*tj|tjdd�}t|||d�}|jd�S)aR
    Convert a object-dtyped or string-dtyped array into an
    timedelta64[ns]-dtyped array.

    Parameters
    ----------
    data : ndarray or Index
    unit : str, default "ns"
        The timedelta unit to treat integers as multiples of.
        Must not be specified if the data contains a str.
    errors : {"raise", "coerce", "ignore"}, default "raise"
        How to handle elements that cannot be converted to timedelta64[ns].
        See ``pandas.to_timedelta`` for details.

    Returns
    -------
    numpy.ndarray : timedelta64[ns] array converted from data

    Raises
    ------
    ValueError : Data cannot be converted to timedelta64[ns].

    Notes
    -----
    Unlike `pandas.to_timedelta`, if setting `errors=ignore` will not cause
    errors to be ignored; they are caught and subsequently ignored at a
    higher level.
    F)rKr])rGr�ztimedelta64[ns])rWr�Zobject_rr[)rkrGr�r/r0r2r2r3r��sr�cCsBt|�}t|tjd��r$d}t|��t|t�s>td|�d���|S)Nr�zhPassing in 'timedelta' dtype with no precision is not allowed. Please pass in 'timedelta64[ns]' instead.zdtype z' cannot be converted to timedelta64[ns])rrrWrKrYr)rKrcr2r2r3r\s
r\)N)FNr�)rF)Nr�)H�datetimerZtypingrZnumpyrWZpandas._libsrrZpandas._libs.tslibsrrrr	r
rrZpandas._libs.tslibs.conversionr
Zpandas._libs.tslibs.fieldsrZpandas._libs.tslibs.timedeltasrrZpandas.compat.numpyrr�Zpandas.core.dtypes.commonrrrrrrrrrrrZpandas.core.dtypes.dtypesrZpandas.core.dtypes.genericrrZpandas.core.dtypes.missingr Zpandas.corer!Zpandas.core.algorithmsr"r�r#r$rTZpandas.core.arrays._rangesr%Zpandas.core.common�core�commonrrZpandas.core.constructionr&Zpandas.core.ops.commonr'r:r�ZTimelikeOpsr;rjr�r�r\r2r2r2r3�<module>s>$4

8
[
(
$