o
    �¨ÊhÐ  ã                   @   s`   d dl Z d dlmZmZ d dlmZ d dlZdZdZdd„ Z	dd	„ Z
d
d„ Zdd„ Zdd„ ZdS )é    N©ÚDecimalÚBasicContext)Ú	parsedatez%Y-%m-%dz%Y-%m-%dT%H:%M:%SZc              	   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©Ús© r   úI/var/www/html/env/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)
    :return: datetime or str
    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   c                 C   s   | s| S t | tƒS )zb
    Parses a decimal string into a Decimal
    :param d: decimal string
    :return: Decimal
    r   )Údr   r   r   Údecimal1   s   
r   c              	   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   )Úir   r   r   Úinteger<   s
   
ÿr   )r   r   r   r   Úemail.utilsr   r   r
   r   r   r   r   r   r   r   r   r   Ú<module>   s    