ó
    Ñ]j€  ã                  óâ  • S r SSKJr  SSKJrJrJ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5        S       SS jj5       r) S     S S jjr*   S!     S"S jjr+g)#z
timedelta support tools
é    )Úannotations)ÚTYPE_CHECKINGÚAnyÚoverloadN)Úlib)ÚNaTÚNaTType)Ú	TimedeltaÚdisallow_ambiguous_unitÚparse_timedelta_unit)Ú
set_module)Úis_list_like)Ú
ArrowDtype)ÚABCIndexÚ	ABCSeries)Úsequence_to_td64ns)ÚHashable)Ú	timedelta)ÚUnitChoices)Ú	ArrayLikeÚDateTimeErrorChoices)ÚIndexÚSeriesÚTimedeltaIndexc                ó   • g ©N© ©ÚargÚunitÚerrorss      ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/core/tools/timedeltas.pyÚto_timedeltar#   5   s   € ð
 ó    c                ó   • g r   r   r   s      r"   r#   r#   =   s   € ð
 r$   c                ó   • g r   r   r   s      r"   r#   r#   E   s   € ð
 r$   Úpandasc                óÈ  • Ub  [        U5      n[        U5        US;  a  [        S5      eU c  [        $ [	        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[+        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'
    * 'm' / 'minute' / 'min' / 'minutes'
    * 's' / 'seconds' / 'sec' / 'second'
    * 'ms' / 'milliseconds' / 'millisecond' / 'milli' / 'millis'
    * 'us' / 'microseconds' / 'microsecond' / 'micro' / 'micros'
    * 'ns' / 'nanoseconds' / 'nano' / 'nanos' / 'nanosecond'

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

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

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[s]', freq=None)
>>> pd.to_timedelta(np.arange(5), unit="D")
TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'],
               dtype='timedelta64[s]', freq=None)
)ÚraiseÚcoercez+errors must be one of 'raise', or 'coerce'.)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   Ú
ValueErrorr   Ú
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#   M   s:  € ðD ÑÜ# DÓ)ˆÜ Ô%àÐ(Ó(ÜÐFÓGÐGà
�{Üˆ
Ü	�Cœ×	#Ñ	#Ü" 3§;¡;°TÑIˆØ×Ñ ¯i©i¸c¿h¹hÐÐGÐGÜ	�Cœ×	"Ñ	"Ü  ¸ÇXÁXÑNÐNÜ	�CœŸ™×	$Ñ	$¨¯©°Q«ô ×#Ò# CÓ(‰Ü	�c×	Ñ	œw s¨F°AÓ6¸!Ó;Ü  ¸Ñ?Ð?Ü	��f˜aÓ	  1Ó	$ÜØPó
ð 	
ô �#”s×Ñ Ñ 0ÜÐTÓUÐUô ,¨CÀ6ÑJÐJr$   c                óZ   •  [        X5      nU$ ! [         a    US:X  a  e [        n U$ f = f)z)Convert string 'r' to a timedelta object.r)   )r
   r/   r   )Úrr    r!   Úresults       r"   r:   r:   Ò   s>   € ðÜ˜1Ó#ˆð €Møô ó Ø�WÓØä‰à€Mðús   ‚ �*©*c                óT  • [        U SS5      n[        U [        [        45      (       d  Uc  [        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  XPL =(       d    [        R                  " X5      nU" XSUS	9nU$ )
z6Convert a list of objects to a timedelta index object.ÚdtypeN)r@   ÚmF)r    r!   Úcopyr   )r   )r,   rB   )r7   r0   ÚlistÚtupler4   ÚarrayÚobjectr   Úkindr   r'   r   Úmay_share_memory)	r   r    r!   r,   Ú	arg_dtypeÚtd64arrr   rB   Úvalues	            r"   r1   r1   ã   s“   € ô ˜˜W dÓ+€IÜ�#œœe�}×%Ñ%¨Ñ):Ü�hŠh�s¤&Ñ)‰Ü	�Iœz×	*Ñ	*¨y¯~©~ÀÓ/DØˆ
ä  ¸ÀUÑKÈAÑN€Gå%àˆ>×>œR×0Ò0°Ó>€DÙ˜7°DÑ9€EØ€Lr$   )..)r   zstr | float | timedeltar    úUnitChoices | Noner!   r   Úreturnr
   )r   r   r    rL   r!   r   rM   r   )r   z(list | tuple | range | ArrayLike | Indexr    rL   r!   r   rM   r   )Nr)   )r   zQstr | int | float | timedelta | list | tuple | range | ArrayLike | Index | Seriesr    rL   r!   r   rM   z3Timedelta | TimedeltaIndex | Series | NaTType | Any)Únsr)   )r    rL   r!   r   rM   zTimedelta | NaTType)Nr)   N)r    rL   r!   r   r,   zHashable | None),Ú__doc__Ú
__future__r   Útypingr   r   r   Únumpyr4   Úpandas._libsr   Úpandas._libs.tslibsr   r	   Úpandas._libs.tslibs.timedeltasr
   r   r   Úpandas.util._decoratorsr   Úpandas.core.dtypes.commonr   Úpandas.core.dtypes.dtypesr   Úpandas.core.dtypes.genericr   r   Úpandas.core.arrays.timedeltasr   Úcollections.abcr   Údatetimer   r   Úpandas._typingr   r   r'   r   r   r   r#   r:   r1   r   r$   r"   Ú<module>r^      sÆ  ðñõ #÷ñ ó å ÷÷ñ õ
 /å 2Ý 0÷õ
 =æÝ(Ý"å:÷÷
ñ ð 
ð  #Ø#&ðØ	 ðà
ðð !ðð ô	ó 
ðð 
ð  #Ø#&ðØ	ðà
ðð !ðð ô	ó 
ðð 
ð  #Ø#&ðØ	1ðà
ðð !ðð ô	ó 
ðñ ˆHÓð  $Ø#*ðAKð	
ðAKð ðAKð !ðAKð 9ôAKó ðAKðJ HOðØðØ0Dðàõð&  $Ø#*Ø ð	à
ðð !ðð ö	r$   