
    I 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      m/root/GenerationalWealth/GenerationalWealth/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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                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     Wd+I#e}%%):hhs&)	Iz	*	*y~~/D
 UKANG%>>R00>D7D9E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$   