a
    !f                     @   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eeee jef  ddd	Zeeee j ef  dd
dZeee j  dddZee eeeef  dddZeeeeef  d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y8   |  Y S 0 dS )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:
    tzinfoN)	datetimestrptimeISO8601_DATE_FORMATreplacepytzutcdate	TypeError
ValueErrorr    r   X/var/www/html/python-backend/venv/lib/python3.9/site-packages/twilio/base/deserialize.pyiso8601_date   s    r   c              	   C   s:   zt j | tjtjdW S  ttfy4   |  Y S 0 dS )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	   N)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   Z
date_tupler   r   r   rfc2822_datetime-   s    r   )dr   c                 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   )ir   c              	   C   s*   z
t | W S  ttfy$   |  Y S 0 dS )z\
    Parses an integer string into an int
    :param i: integer string
    :return: int
    N)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    
