o
    4g                     @   s   d dl Z d dlmZmZ d dlmZ d dlmZmZ d dl	Z	dZ
dZdedeee jef  fd	d
Zdedeee j ef  fddZdedee j  fddZdee deeeef  fddZdedeeeef  fddZdS )    N)BasicContextDecimal)	parsedate)OptionalUnionz%Y-%m-%dz%Y-%m-%dT%H:%M:%SZsreturnc              	   C   s:   zt j | tjtjd W S  ttfy   |  Y S w )z
    Parses an ISO 8601 date string and returns a UTC date object or the string
    if the parsing failed.
    :param s: ISO 8601-formatted date string (2015-01-25)
    :return:
    tzinfo)	datetimestrptimeISO8601_DATE_FORMATreplacepytzutcdate	TypeError
ValueErrorr    r   c/var/www/html/Testing_prj/Navya-Bakers/venv/lib/python3.10/site-packages/twilio/base/deserialize.pyiso8601_date   s   r   c              	   C   s6   zt j | tjtjdW S  ttfy   |  Y S w )z
    Parses an ISO 8601 datetime string and returns a UTC datetime object,
    or the string if parsing failed.
    :param s: ISO 8601-formatted datetime string (2015-01-25T12:34:56Z)
    r	   )r   r   ISO8601_DATETIME_FORMATr   r   r   r   r   r   r   r   r   iso8601_datetime   s   r   c                 C   s0   t | }|du r
dS tj|dd  jtjdS )z
    Parses an RFC 2822 date string and returns a UTC datetime object,
    or the string if parsing failed.
    :param s: RFC 2822-formatted string date
    :return: datetime or str
    N   r	   )r   r   r   r   r   )r   
date_tupler   r   r   rfc2822_datetime-   s   r   dc                 C   s   | s| S t | tS )zM
    Parses a decimal string into a Decimal
    :param d: decimal string
    )r   r   )r   r   r   r   decimal:   s   
r   ic              	   C   s&   zt | W S  ttfy   |  Y S w )z\
    Parses an integer string into an int
    :param i: integer string
    :return: int
    )intr   r   )r   r   r   r   integerD   s
   
r!   )r   r   r   r   email.utilsr   typingr   r   r   r   r   strr   r   r   r   r    r!   r   r   r   r   <module>   s      
""
