Ë
    òmxi?  ã                   óx   — d dl m Z  d dl mZ d dl mZ d dlmZ d dlmZ d dlmZmZ  G d„ d«      Z	 G d	„ d
«      Z
y)é    )Údatetime)Ú	timedelta)Útimezone)Úduration_pb2)Útimestamp_pb2)Údatetime_helpersÚutilsc                   óZ   — e Zd ZdZddœdedej                  fd„Zdej                  fd„Z
y)ÚTimestampRulea&  A marshal between Python datetimes and protobuf timestamps.

    Note: Python datetimes are less precise than protobuf datetimes
    (microsecond vs. nanosecond level precision). If nanosecond-level
    precision matters, it is recommended to interact with the internal
    proto directly.
    N©Úabsentr   Úreturnc                ó~   — t        |t        j                  «      r"|ry t        j                  j                  |«      S |S )N)Ú
isinstancer   Ú	Timestampr   ÚDatetimeWithNanosecondsÚfrom_timestamp_pb©ÚselfÚvaluer   s      úP/home/htdocs/ttos/venv/lib/python3.12/site-packages/proto/marshal/rules/dates.pyÚ	to_pythonzTimestampRule.to_python!   s6   € ô �eœ]×4Ñ4Ô5ÙØÜ#×;Ñ;×MÑMÈeÓTÐTØˆó    c                 ó`  — t        |t        j                  «      r|j                  «       S t        |t        «      r;t        j                  t        |j                  «       «      |j                  dz  ¬«      S t        |t        «      r(t        j                  «       }|j                  |¬«       |S |S )Néè  ©ÚsecondsÚnanos©r   )r   r   r   Útimestamp_pbr   r   r   ÚintÚ	timestampÚmicrosecondÚstrÚFromJsonString)r   r   Útimestamp_values      r   Úto_protozTimestampRule.to_proto*   s’   € Ü�eÔ-×EÑEÔFØ×%Ñ%Ó'Ð'Ü�eœXÔ&Ü ×*Ñ*Ü˜EŸO™OÓ-Ó.Ø×'Ñ'¨$Ñ.ôð ô �eœSÔ!Ü+×5Ñ5Ó7ˆOØ×*Ñ*°Ð*Ô7Ø"Ð"Øˆr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úboolr   r   r   r   r   r'   © r   r   r   r      s9   „ ñð (,òØ $ðà	×	1Ñ	1óð ×!8Ñ!8ô r   r   c                   óF   — e Zd ZdZddœdedefd„Zdej                  fd„Z	y)ÚDurationRulea'  A marshal between Python timedeltas and protobuf durations.

    Note: Python timedeltas are less precise than protobuf durations
    (microsecond vs. nanosecond level precision). If nanosecond-level
    precision matters, it is recommended to interact with the internal
    proto directly.
    Nr   r   r   c                ó¤   — t        |t        j                  «      r5t        |j                  dz  |j                  dz  |j
                  dz  ¬«      S |S )Né€Q r   )Údaysr   Úmicroseconds)r   r   ÚDurationr   r   r   r   s      r   r   zDurationRule.to_pythonB   sJ   € Ü�eœ\×2Ñ2Ô3ÜØ—]‘] eÑ+ØŸ™¨Ñ-Ø"Ÿ[™[¨DÑ0ôð ð
 ˆr   c                 ó  — t        |t        «      r>t        j                  |j                  dz  |j
                  z   |j                  dz  ¬«      S t        |t        «      r(t        j                  «       }|j                  |¬«       |S |S )Nr1   r   r   r   )	r   r   r   r4   r2   r   r3   r$   r%   )r   r   Úduration_values      r   r'   zDurationRule.to_protoK   sx   € Ü�eœYÔ'Ü×(Ñ(ØŸ
™
 UÑ*¨U¯]©]Ñ:Ø×(Ñ(¨4Ñ/ôð ô �eœSÔ!Ü)×2Ñ2Ó4ˆNØ×)Ñ)°Ð)Ô6Ø!Ð!Øˆr   )
r(   r)   r*   r+   r,   r   r   r   r4   r'   r-   r   r   r/   r/   9   s1   „ ñð 26ò ¨$ð ¸)ó ð
 ×!6Ñ!6ô 
r   r/   N)r   r   r   Úgoogle.protobufr   r   Úprotor   r	   r   r/   r-   r   r   ú<module>r9      s.   ðõ Ý Ý å (Ý )ß )÷ñ ÷Bò r   