
    g	                        d dl mZ d dlZd dlmZmZ d dlmZmZ d dl	m
Z
mZ ddZe	 	 	 	 	 	 dd       Zedd       Zd	d
	 	 	 	 	 ddZy)    )annotationsN)date	timedelta)Literaloverload)StreamlitAPIExceptionStreamlitBadTimeStringErrorc                ,   	 | j                  | j                  |z         S # t        $ ri}| j                  dk(  r5| j                  dk(  r&| j                  | j                  |z   dd      cY d}~S t        d|  d| j                  |z    d	      |d}~ww xY w)
z"Add or subtract years from a date.)year         )r   monthdayNzDate z# does not exist in the target year z3. This should never happen. Please report this bug.)replacer   
ValueErrorr   r   r   )
input_dateyearserrs      H/var/www/openai/venv/lib/python3.12/site-packages/streamlit/time_util.pyadjust_yearsr      s    !!z'>!?? 	 q Z^^r%9%%:??U+B!QS%TT#J<B:??UZCZB[ \@ @
 		s    ! 	B>B(B. BBc                    y N )tcoerce_none_to_infs     r   time_to_secondsr   )   s         c                     y r   r   )r   s    r   r   r   /   s    ADr   T)r   c               T   |r| t         j                  S t        | t              r| j	                         S t        | t
              rFddl}ddl}	 |j                  |       j	                         }|j                  |      rt        |       |S | S # t        $ r}t        |       |d}~ww xY w)zR
    Convert a time string value to a float representing "number of seconds".
    Nr   )mathinf
isinstancer   total_secondsstrnumpypandas	Timedeltaisnanr	   r   )r   r   nppdsecondsexs         r   r   r   3   s     aixx!Y  !S	9\\!_::<Gxx 1!44N H  	9-a0b8	9s   <B 	B'B""B')r   r   r   intreturnr   )r   float | timedelta | str | Noner   zLiteral[False]r/   float | None)r   r0   r/   float)r   r0   r   boolr/   r1   )
__future__r   r!   datetimer   r   typingr   r   streamlit.errorsr   r	   r   r   r   r   r   <module>r8      s{    #  $ $ O" 
%>L 

 
 D 
 D FJ%>Br   