o
    沪g	                     @  s~   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dZedddZedddZdddddZdS )    )annotationsN)date	timedelta)Literaloverload)StreamlitAPIExceptionStreamlitBadTimeStringError
input_dater   yearsintreturnc              
   C  s   z
| j | j| dW S  ty@ } z*| jdkr-| jdkr-| j | j| dddW  Y d}~S td|  d| j|  d	|d}~w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   )r	   r
   err r   O/var/www/html/chatdoc2/venv/lib/python3.10/site-packages/streamlit/time_util.pyadjust_years   s   "r   tfloat | timedelta | str | Nonecoerce_none_to_infLiteral[False]float | Nonec                C     d S Nr   )r   r   r   r   r   time_to_seconds)   s   r    floatc                 C  r   r   r   )r   r   r   r   r    /   s   T)r   boolc             
   C  s   |r	| du r	t jS t| tr|  S t| trDddl}ddl}z||  }|	|r0t
| |W S  tyC } zt
| |d}~ww | S )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exr   r   r   r    3   s"   



)r	   r   r
   r   r   r   )r   r   r   r   r   r   )r   r   r   r!   )r   r   r   r"   r   r   )
__future__r   r#   datetimer   r   typingr   r   streamlit.errorsr   r   r   r    r   r   r   r   <module>   s   
