Ë

����ˆ£éf‰��ã������������������óh���—�d�Z�ddlmZ�ddlZddlZddlmZmZ�ddlm	Z	m
Z
�ddlmZ�dZ
�G�d„�d	«������Zy)
z3Tools for representing MongoDB internal Timestamps.é����)ÚannotationsN)ÚAnyÚUnion)Ú_getstate_slotsÚ_setstate_slots)Úutcl��������c������������������ó”���—�e�Zd�ZdZdZeZeZdZ	dd„Z
edd„«�������Zedd„«�������Z
dd„Zdd„Zdd	„Zdd
„Zdd„Zdd„Zdd
„Zdd„Zdd„Zy)Ú	Timestampz.MongoDB internal timestamps used in the opLog.)Ú__timeÚ__incé���c����������������óÞ��—�t��������|t��������j������������������«������rC|j������������������«�������}|||z
��}t��������t	��������j
������������������|j
������������������«�������«������«������}t��������|t��������«������st��������d«������‚t��������|t��������«������st��������d«������‚d|cxk��rt��������k��st��������d«������‚�t��������d«������‚d|cxk��rt��������k��st��������d«������‚�t��������d«������‚||�_
��������||�_��������y)a“��Create a new :class:`Timestamp`.

        This class is only for use with the MongoDB opLog. If you need
        to store a regular timestamp, please use a
        :class:`~datetime.datetime`.

        Raises :class:`TypeError` if `time` is not an instance of
        :class: `int` or :class:`~datetime.datetime`, or `inc` is not
        an instance of :class:`int`. Raises :class:`ValueError` if
        `time` or `inc` is not in [0, 2**32).

        :param time: time in seconds since epoch UTC, or a naive UTC
            :class:`~datetime.datetime`, or an aware
            :class:`~datetime.datetime`
        :param inc: the incrementing counter
        Nztime must be an instance of intzinc must be an instance of intr���z$time must be contained in [0, 2**32)z#inc must be contained in [0, 2**32))Ú
isinstanceÚdatetimeÚ	utcoffsetÚintÚcalendarÚtimegmÚ	timetupleÚ	TypeErrorÚ
UPPERBOUNDÚ
ValueErrorÚ_Timestamp__timeÚ_Timestamp__inc)ÚselfÚtimeÚincÚoffsets���    úW/var/lib/jenkins/workspace/mettalog/venv/lib/python3.12/site-packages/bson/timestamp.pyÚ__init__zTimestamp.__init__&���s×���€�ô"�dœH×-Ñ-Ô.Ø—^‘^Ó%ˆFØÐ!ؘf‘}Ü”x—‘ t§~¡~Ó'7Ó8Ó9ˆDܘ$¤Ô$ÜÐ=Ó>Ð>ܘ#œsÔ#ÜÐ<Ó=Ð=ؐDÔ%œ:Ò%ÜÐCÓDÐDð�&ÜÐCÓDÐDؐCÔ$œ*Ò$ÜÐBÓCÐCð�%ÜÐBÓCÐCàˆŒØˆ
ó����c����������������ó���—�|�j�������������������S�)z0Get the time portion of this :class:`Timestamp`.)r���©r���s��� r���r���zTimestamp.timeH���s���€�ð�{‰{Ðr!���c����������������ó���—�|�j�������������������S�)z/Get the inc portion of this :class:`Timestamp`.)r���r#���s��� r���r���z
Timestamp.incM���s���€�ð�z‰zÐr!���c����������������ó–���—�t��������|t��������«������r4|�j������������������|j������������������k(��xr�|�j������������������|j
������������������k(��S�t��������S�©N)r���r
���r���r���r���r���ÚNotImplemented©r���Úothers���  r���Ú__eq__zTimestamp.__eq__R���s7���€�ܐeœYÔ'Ø—;‘; %§*¡*Ñ,ÒH°·±¸u¿y¹yÑ1HÐHä!Ð!r!���c����������������óX���—�t��������|�j������������������«������t��������|�j������������������«������z��S�r&���)Úhashr���r���r#���s��� r���Ú__hash__zTimestamp.__hash__X���s���€�ܐD—I‘I‹¤ d§h¡h£Ñ/Ð/r!���c����������������ó���—�|�|k(���S�r&���©�r(���s���  r���Ú__ne__zTimestamp.__ne__[���s���€�ؘ5‘=Ð Ð r!���c����������������ó���—�t��������|t��������«������r1|�j������������������|�j������������������f|j������������������|j������������������fk��S�t��������S�r&���©r���r
���r���r���r'���r(���s���  r���Ú__lt__zTimestamp.__lt__^���ó7���€�ܐeœYÔ'Ø—I‘I˜tŸx™xÐ(¨E¯J©J¸¿	¹	Ð+BÑBÐBÜÐr!���c����������������ó���—�t��������|t��������«������r1|�j������������������|�j������������������f|j������������������|j������������������fk��S�t��������S�r&���r2���r(���s���  r���Ú__le__zTimestamp.__le__c���ó7���€�ܐeœYÔ'Ø—I‘I˜tŸx™xÐ(¨U¯Z©Z¸¿¹Ð,CÑCÐCÜÐr!���c����������������ó���—�t��������|t��������«������r1|�j������������������|�j������������������f|j������������������|j������������������fkD��S�t��������S�r&���r2���r(���s���  r���Ú__gt__zTimestamp.__gt__h���r4���r!���c����������������ó���—�t��������|t��������«������r1|�j������������������|�j������������������f|j������������������|j������������������fk\��S�t��������S�r&���r2���r(���s���  r���Ú__ge__zTimestamp.__ge__m���r7���r!���c����������������ó<���—�d|�j�������������������›�d|�j������������������›�dS�)Nz
Timestamp(z, ú))r���r���r#���s��� r���Ú__repr__zTimestamp.__repr__r���s���€�ؘDŸK™K˜=¨¨4¯:©:¨,°aÐ8Ð8r!���c����������������ó^���—�t���������j�������������������j������������������|�j������������������t��������«������S�)z®Return a :class:`~datetime.datetime` instance corresponding
        to the time portion of this :class:`Timestamp`.

        The returned datetime's timezone is UTC.
        )r���Ú
fromtimestampr���r���r#���s��� r���Úas_datetimezTimestamp.as_datetimeu���s!���€�ô�× Ñ ×.Ñ.¨t¯{©{¼CÓ@Ð@r!���N)r���zUnion[datetime.datetime, int]r���r���ÚreturnÚNone)rB���r���)r)���r���rB���Úbool)rB���Ústr)rB���zdatetime.datetime)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r���Ú__getstate__r���Ú__setstate__Ú_type_markerr ���Úpropertyr���r���r*���r-���r0���r3���r6���r9���r;���r>���rA���r/���r!���r���r
���r
������su���„�Ù8à#€Ià"€LØ"€Là€Ló ðD�òó�ðð�òó�ðó"ó0ó!óó
ó
ó
ó
9ôAr!���r
���)rI���Ú
__future__r���r���r���Útypingr���r���Ú
bson._helpersr���r���Úbson.tz_utilr���r���r
���r/���r!���r���ú<module>rS������s/���ðñ�:Ý�"ã�Û�ß�ç�:Ý�à
€
÷_Aò�_Ar!���