
    g=                        d Z ddlZddlmZ ddlmZ dedefdZdedefd	Z	d
edefdZ
dedefdZdedefdZdefdZdedefdZdedefdZdedefdZdedefdZdedefdZ	 ddedeej(                     dej                  fdZy)z#Contains the Timestamp helper APIs.    N)Optional)	Timestampvaluereturnc                 <    t               }|j                  |        |S )a<  Parse a RFC 3339 date string format to Timestamp.

  Args:
    value: A date string. Any fractional digits (or none) and any offset are
      accepted as long as they fit into nano-seconds precision. Example of
      accepted format: '1972-01-01T10:00:20.021-05:00'

  Raises:
    ValueError: On parsing problems.
  )r   FromJsonString)r   	timestamps     N/var/www/openai/venv/lib/python3.12/site-packages/google/protobuf/timestamp.pyfrom_json_stringr      s     k)5!	    microsc                 <    t               }|j                  |        |S )z/Converts microseconds since epoch to Timestamp.)r   FromMicroseconds)r   r	   s     r
   from_microsecondsr           k)V$	r   millisc                 <    t               }|j                  |        |S )z/Converts milliseconds since epoch to Timestamp.)r   FromMilliseconds)r   r	   s     r
   from_millisecondsr   '   r   r   nanosc                 <    t               }|j                  |        |S )z.Converts nanoseconds since epoch to Timestamp.)r   FromNanoseconds)r   r	   s     r
   from_nanosecondsr   .   s    k)E"	r   secondsc                 <    t               }|j                  |        |S )z*Converts seconds since epoch to Timestamp.)r   FromSeconds)r   r	   s     r
   from_secondsr   5   s    k) 	r   c                      t               } | j                  t        j                  j                  t        j                  j
                               | S )z&Converts the current UTC to Timestamp.)tz)r   FromDatetimedatetimenowtimezoneutc)r	   s    r
   from_current_timer%   <   s=    k)**..(2C2C2G2G.HI	r   tsc                 "    | j                         S )a  Converts Timestamp to RFC 3339 date string format.

  Returns:
    A string converted from timestamp. The string is always Z-normalized
    and uses 3, 6 or 9 fractional digits as required to represent the
    exact time. Example of the return format: '1972-01-01T10:00:20.021Z'
  )ToJsonStringr&   s    r
   to_json_stringr*   C   s     
	r   c                 "    | j                         S )z/Converts Timestamp to microseconds since epoch.)ToMicrosecondsr)   s    r
   to_microsecondsr-   N       				r   c                 "    | j                         S )z/Converts Timestamp to milliseconds since epoch.)ToMillisecondsr)   s    r
   to_millisecondsr1   S   r.   r   c                 "    | j                         S )z.Converts Timestamp to nanoseconds since epoch.)ToNanosecondsr)   s    r
   to_nanosecondsr4   X   s    				r   c                 "    | j                         S )z*Converts Timestamp to seconds since epoch.)	ToSecondsr)   s    r
   
to_secondsr7   ]   s    	r   r   c                 &    | j                  |      S )a7  Converts Timestamp to a datetime.

  Args:
    tz: A datetime.tzinfo subclass; defaults to None.

  Returns:
    If tzinfo is None, returns a timezone-naive UTC datetime (with no timezone
    information, i.e. not aware that it's UTC).

    Otherwise, returns a timezone-aware datetime in the input timezone.
  )tzinfo)
ToDatetime)r&   r   s     r
   to_datetimer;   b   s     
b	!!r   )N)__doc__r!   typingr   google.protobuf.timestamp_pb2r   strr   floatr   r   r   r   r%   r*   intr-   r1   r4   r7   r9   r;    r   r
   <module>rC      s   *   3C I  e 	 e 	 E i % I 9 y S 	 c 
	 c 
y S 
9   48""0""r   