K i= dZddlZddlmZddlmZdedefdZdedefd Z d edefd Z d edefd Z dedefdZ defdZ dedefdZdedefdZdedefdZdedefdZdedefdZ ddedeej(dejfdZy)z#Contains the Timestamp helper APIs.N)Optional) Timestampvaluereturnc<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. )rFromJsonString)r timestamps _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/google/protobuf/timestamp.pyfrom_json_stringr sk) 5! microsc<t}|j||S)z/Converts microseconds since epoch to Timestamp.)rFromMicroseconds)r r s r from_microsecondsr k) V$ r millisc<t}|j||S)z/Converts milliseconds since epoch to Timestamp.)rFromMilliseconds)rr s r from_millisecondsr'rr nanosc<t}|j||S)z.Converts nanoseconds since epoch to Timestamp.)rFromNanoseconds)rr s r from_nanosecondsr.sk) E" r secondsc<t}|j||S)z*Converts seconds since epoch to Timestamp.)r FromSeconds)rr s r from_secondsr5sk)  r ct}|jtjjtjj |S)z&Converts the current UTC to Timestamp.)tz)r FromDatetimedatetimenowtimezoneutc)r s r from_current_timer%<s=k) **..(2C2C2G2G.HI r tsc"|jS)aConverts 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' ) ToJsonStringr&s r to_json_stringr*Cs  r c"|jS)z/Converts Timestamp to microseconds since epoch.)ToMicrosecondsr)s r to_microsecondsr-N   r c"|jS)z/Converts Timestamp to milliseconds since epoch.)ToMillisecondsr)s r to_millisecondsr1Sr.r c"|jS)z.Converts Timestamp to nanoseconds since epoch.) ToNanosecondsr)s r to_nanosecondsr4Xs   r c"|jS)z*Converts Timestamp to seconds since epoch.) ToSecondsr)s r to_secondsr7]s r rc&|j|S)a7Converts 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&rs r to_datetimer;bs b !!r )N)__doc__r!typingrgoogle.protobuf.timestamp_pb2rstrr floatrrrrr%r*intr-r1r4r7r9r;r r rCs*3 C I  e e Ei%I9yS c  c yS 9 48""0" "r