
    =h                         d dl Z d dlmZmZ d dlmZ d dlmZmZ dZ	dZ
dedee j                  ef   fd	Zdedee j                   ef   fd
Zdedee j                      fdZdee   deeef   fdZdedeeef   fdZy)    N)BasicContextDecimal)	parsedate)OptionalUnionz%Y-%m-%dz%Y-%m-%dT%H:%M:%SZsreturnc                     	 t         j                   j                  | t              j                  t         j                  j
                        j                         S # t        t        f$ r | cY S w xY 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timezoneutcdate	TypeError
ValueErrorr   s    g/var/www/html/phonemate/phone_mate_backend/venv/lib/python3.12/site-packages/twilio/base/deserialize.pyiso8601_dater   
   s]    &&q*=>WH--11W2TV	

 z" s   AA A0/A0c                     	 t         j                   j                  | t              j                  t         j                  j
                        S # t        t        f$ r | cY S w xY 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   s    r   iso8601_datetimer      s^      ))!-DEMM$$(( N 
 	
 z" s   AA A"!A"c                     t        |       }|yt        j                  |dd  j                  t        j                  j                        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_tuples     r   rfc2822_datetimer   +   sG     1Jj!n-55X=N=N=R=R5SS    dc                 *    | s| S t        | t              S )zM
    Parses a decimal string into a Decimal
    :param d: decimal string
    )r   r   )r!   s    r   decimalr#   8   s    
 1l##r    ic                 H    	 t        |       S # t        t        f$ r | cY S w xY w)z\
    Parses an integer string into an int
    :param i: integer string
    :return: int
    )intr   r   )r$   s    r   integerr'   B   s)    1vz" s   
 !!)r   r#   r   r   email.utilsr   typingr   r   r   r   strr   r   r   r   r&   r'    r    r   <module>r,      s     ) ! "  . C E(--"45 "

8c!" 
T 
T):): ; 
T$x} $w|!4 $	s 	uS#X 	r    