
    Mh"                       S r SSKJr  SSKJrJr  SSKrSSKrSSK	J
r
  SSKJrJr  SSKJrJrJr  SSKJr  SS	KJr  SS
KJr  SSKJrJr  SSKJr  \(       a$  SSKJr  SSKJ r   SSKJ!r!  SSK"J#r#J$r$  SSK%J&r&J'r'J(r(  \  S       SS jj5       r)\  S       SS jj5       r)\  S       SS jj5       r)  S       SS jjr) S   SS jjr*   S      S!S jjr+g)"z
timedelta support tools
    )annotations)TYPE_CHECKINGoverloadN)lib)NaTNaTType)	Timedeltadisallow_ambiguous_unitparse_timedelta_unit)find_stack_level)is_list_like)
ArrowDtype)ABCIndex	ABCSeries)sequence_to_td64ns)Hashable)	timedelta)UnitChoices)	ArrayLikeDateTimeErrorChoices)IndexSeriesTimedeltaIndexc                    g N arguniterrorss      N/var/www/html/env/lib/python3.13/site-packages/pandas/core/tools/timedeltas.pyto_timedeltar"   4            c                    g r   r   r   s      r!   r"   r"   =   r#   r$   c                    g r   r   r   s      r!   r"   r"   F   r#   r$   c                   Ub  [        U5      n[        U5        US;  a  [        S5      eUS:X  a"  [        R                  " S[
        [        5       S9  U c  U $ [        U [        5      (       a8  [        U R                  XS9nU R                  X0R                  U R                  S9$ [        U [        5      (       a  [        XX R                  S9$ [        U [        R                   5      (       a'  U R"                  S	:X  a  [$        R&                  " U 5      n OG[)        U 5      (       a  [+        U S
S5      S:X  a
  [        XUS9$ [+        U S
S5      S:  a  [-        S5      e[        U [.        5      (       a  Ub  [        S5      e[1        XUS9$ )a  
Convert argument to timedelta.

Timedeltas are absolute differences in times, expressed in difference
units (e.g. days, hours, minutes, seconds). This method converts
an argument from a recognized timedelta format / value into
a Timedelta type.

Parameters
----------
arg : str, timedelta, list-like or Series
    The data to be converted to timedelta.

    .. versionchanged:: 2.0
        Strings with units 'M', 'Y' and 'y' do not represent
        unambiguous timedelta values and will raise an exception.

unit : str, optional
    Denotes the unit of the arg for numeric `arg`. Defaults to ``"ns"``.

    Possible values:

    * 'W'
    * 'D' / 'days' / 'day'
    * 'hours' / 'hour' / 'hr' / 'h' / 'H'
    * 'm' / 'minute' / 'min' / 'minutes' / 'T'
    * 's' / 'seconds' / 'sec' / 'second' / 'S'
    * 'ms' / 'milliseconds' / 'millisecond' / 'milli' / 'millis' / 'L'
    * 'us' / 'microseconds' / 'microsecond' / 'micro' / 'micros' / 'U'
    * 'ns' / 'nanoseconds' / 'nano' / 'nanos' / 'nanosecond' / 'N'

    Must not be specified when `arg` contains strings and ``errors="raise"``.

    .. deprecated:: 2.2.0
        Units 'H', 'T', 'S', 'L', 'U' and 'N' are deprecated and will be removed
        in a future version. Please use 'h', 'min', 's', 'ms', 'us', and 'ns'
        instead of 'H', 'T', 'S', 'L', 'U' and 'N'.

errors : {'ignore', 'raise', 'coerce'}, default 'raise'
    - If 'raise', then invalid parsing will raise an exception.
    - If 'coerce', then invalid parsing will be set as NaT.
    - If 'ignore', then invalid parsing will return the input.

Returns
-------
timedelta
    If parsing succeeded.
    Return type depends on input:

    - list-like: TimedeltaIndex of timedelta64 dtype
    - Series: Series of timedelta64 dtype
    - scalar: Timedelta

See Also
--------
DataFrame.astype : Cast argument to a specified dtype.
to_datetime : Convert argument to datetime.
convert_dtypes : Convert dtypes.

Notes
-----
If the precision is higher than nanoseconds, the precision of the duration is
truncated to nanoseconds for string inputs.

Examples
--------
Parsing a single string to a Timedelta:

>>> pd.to_timedelta('1 days 06:05:01.00003')
Timedelta('1 days 06:05:01.000030')
>>> pd.to_timedelta('15.5us')
Timedelta('0 days 00:00:00.000015500')

Parsing a list or array of strings:

>>> pd.to_timedelta(['1 days 06:05:01.00003', '15.5us', 'nan'])
TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT],
               dtype='timedelta64[ns]', freq=None)

Converting numbers by specifying the `unit` keyword argument:

>>> pd.to_timedelta(np.arange(5), unit='s')
TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02',
                '0 days 00:00:03', '0 days 00:00:04'],
               dtype='timedelta64[ns]', freq=None)
>>> pd.to_timedelta(np.arange(5), unit='d')
TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'],
               dtype='timedelta64[ns]', freq=None)
)ignoreraisecoercez5errors must be one of 'ignore', 'raise', or 'coerce'.r(   zerrors='ignore' is deprecated and will raise in a future version. Use to_timedelta without passing `errors` and catch exceptions explicitly instead)
stacklevel)r   r    )indexname)r   r    r-   r   ndim   zBarg must be a string, timedelta, list, tuple, 1-d array, or Seriesz9unit must not be specified if the input is/contains a str)r   r
   
ValueErrorwarningswarnFutureWarningr   
isinstancer   _convert_listlike_values_constructorr,   r-   r   npndarrayr.   r   item_from_zerodimr   getattr	TypeErrorstr _coerce_scalar_to_timedelta_type)r   r   r    valuess       r!   r"   r"   O   s`   N #D)%22PQQ! ')	
 {
	C	#	#"3;;TIiichhGG	C	"	" XXNN	C	$	$Q ##C(	c		wsFA6!; ??	fa	 1	$P
 	
 #s 0TUU ,C6JJr$   c                n     [        X5      nU$ ! [         a    US:X  a  e US:X  a  U s $ [        n U$ f = f)z)Convert string 'r' to a timedelta object.r)   r(   )r	   r0   r   )rr   r    results       r!   r>   r>      sM    	1# M  WXH Ms    444c                ~   [        U SS5      n[        U [        [        45      (       d  Uc6  [	        U S5      (       d  [        U 5      n [
        R                  " U [        S9n O'[        U[        5      (       a  UR                  S:X  a  U $  [        XUSS9S   nSS
KJn  U" XSS9nU$ ! [         a    US	:X  a  U s $ e f = f)z6Convert a list of objects to a timedelta index object.dtypeN	__array__)rD   mF)r   r    copyr   r(   )r   )r-   )r;   r4   listtuplehasattrr8   arrayobjectr   kindr   r0   pandasr   )r   r   r    r-   	arg_dtypetd64arrr   values           r!   r5   r5      s     Wd+I#e}%%):
 sK((s)Chhs&)	Iz	*	*y~~/D
$SFOPQR &7.EL!  XJ s   
B& &B<:B<)..)r   zstr | float | timedeltar   UnitChoices | Noner    r   returnr	   )r   r   r   rR   r    r   rS   r   )r   z(list | tuple | range | ArrayLike | Indexr   rR   r    r   rS   r   )Nr)   )r   zQstr | int | float | timedelta | list | tuple | range | ArrayLike | Index | Seriesr   rR   r    r   rS   z#Timedelta | TimedeltaIndex | Series)nsr)   )r   rR   r    r   )Nr)   N)r   rR   r    r   r-   zHashable | None),__doc__
__future__r   typingr   r   r1   numpyr8   pandas._libsr   pandas._libs.tslibsr   r   pandas._libs.tslibs.timedeltasr	   r
   r   pandas.util._exceptionsr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   pandas.core.dtypes.genericr   r   pandas.core.arrays.timedeltasr   collections.abcr   datetimer   r   pandas._typingr   r   rN   r   r   r   r"   r>   r5   r   r$   r!   <module>rd      s   #    
 5 2 0
 =(":
  
  ##&	 
 ! 	 
 
  ##&	
 ! 	 
 
  ##&	1
 ! 	 
&  $#*PK	
PK PK !PK )PKh HO0D,  $#* 	%
% !% 	%r$   