
    Ng=                        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dS )z#Contains the Timestamp helper APIs.    N)Optional)	Timestampvaluereturnc                 L    t                      }|                    |            |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     U/var/www/html/ai-engine/env/lib/python3.11/site-packages/google/protobuf/timestamp.pyfrom_json_stringr      s'     kk)5!!!	    microsc                 L    t                      }|                    |            |S )z/Converts microseconds since epoch to Timestamp.)r   FromMicroseconds)r   r	   s     r
   from_microsecondsr       %    kk)V$$$	r   millisc                 L    t                      }|                    |            |S )z/Converts milliseconds since epoch to Timestamp.)r   FromMilliseconds)r   r	   s     r
   from_millisecondsr   '   r   r   nanosc                 L    t                      }|                    |            |S )z.Converts nanoseconds since epoch to Timestamp.)r   FromNanoseconds)r   r	   s     r
   from_nanosecondsr   .   s%    kk)E"""	r   secondsc                 L    t                      }|                    |            |S )z*Converts seconds since epoch to Timestamp.)r   FromSeconds)r   r	   s     r
   from_secondsr   5   s%    kk)   	r   c                      t                      } |                     t          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?    kk)*..(2C2G.HHIII	r   tsc                 *    |                                  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                 *    |                                  S )z/Converts Timestamp to microseconds since epoch.)ToMicrosecondsr)   s    r
   to_microsecondsr-   N       					r   c                 *    |                                  S )z/Converts Timestamp to milliseconds since epoch.)ToMillisecondsr)   s    r
   to_millisecondsr1   S   r.   r   c                 *    |                                  S )z.Converts Timestamp to nanoseconds since epoch.)ToNanosecondsr)   s    r
   to_nanosecondsr4   X   s    					r   c                 *    |                                  S )z*Converts Timestamp to seconds since epoch.)	ToSecondsr)   s    r
   
to_secondsr7   ]   s    	r   r   c                 .    |                      |          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 3 3 3 3 3C I     e 	    e 	    E i    % I    9    y S    	 c    
	 c    
y S    
9      48" ""0"" " " " " "r   