Ë

����ˆ£éfx��ã������������������ód���—�d�Z�ddlmZ�ddlmZ�ddlmZmZmZ�ddl	m
Z
mZ�ddlm
Z
��G�d„�d«������Zy	)
z@Tools for manipulating DBRefs (references to MongoDB documents).é����)Úannotations)Údeepcopy)ÚAnyÚMappingÚOptional)Ú_getstate_slotsÚ_setstate_slots)ÚSONc������������������ó²���—�e�Zd�ZdZdZeZeZdZ		�	�d	�	�	�	�	�	�	�	�	�	�	�dd„Z
edd„«�������Zedd„«�������Z
edd„«�������Zdd	„Zdd
„Zdd„Zdd„Zdd
„Zdd„Zdd„Zy)ÚDBRefz,A reference to a document stored in MongoDB.)Ú__collectionÚ__idÚ
__databaseÚ__kwargséd���Nc����������������óÖ���—�t��������|t��������«������st��������d«������‚|t��������|t��������«������st��������d«������‚||�_��������||�_��������||�_��������|j
������������������|xs�i�«�������||�_��������y)aù��Initialize a new :class:`DBRef`.

        Raises :class:`TypeError` if `collection` or `database` is not
        an instance of :class:`str`. `database` is optional and allows
        references to documents to work across databases. Any additional
        keyword arguments will create additional fields in the resultant
        embedded document.

        :param collection: name of the collection the document is stored in
        :param id: the value of the document's ``"_id"`` field
        :param database: name of the database to reference
        :param kwargs: additional keyword arguments will
            create additional, custom fields

        .. seealso:: The MongoDB documentation on `dbrefs <https://dochub.mongodb.org/core/dbrefs>`_.
        z%collection must be an instance of strNz#database must be an instance of str)Ú
isinstanceÚstrÚ	TypeErrorÚ_DBRef__collectionÚ
_DBRef__idÚ_DBRef__databaseÚupdateÚ_DBRef__kwargs)ÚselfÚ
collectionÚidÚdatabaseÚ_extraÚkwargss���      úS/var/lib/jenkins/workspace/mettalog/venv/lib/python3.12/site-packages/bson/dbref.pyÚ__init__zDBRef.__init__"���sb���€�ô0�˜*¤cÔ*ÜÐCÓDÐDØЬ
°8¼SÔ(AÜÐAÓBÐBà&ˆÔ؈Œ	Ø"ˆŒØ
‰
f’l Ô#؈
ó����c����������������ó���—�|�j�������������������S�)z(Get the name of this DBRef's collection.)r���©r���s��� r!���r���zDBRef.collectionE���s���€�ð�× Ñ Ð r#���c����������������ó���—�|�j�������������������S�)zGet this DBRef's _id.)r���r%���s��� r!���r���zDBRef.idJ���s���€�ð�y‰yÐr#���c����������������ó���—�|�j�������������������S�)zoGet the name of this DBRef's database.

        Returns None if this DBRef doesn't specify a database.
        )r���r%���s��� r!���r���zDBRef.databaseO���s���€�ð�‰Ðr#���c����������������óT���—�	�|�j�������������������|���S�#�t��������$�r
�t��������|«������d�‚w�xY�w©N)r���ÚKeyErrorÚAttributeError)r���Úkeys���  r!���Ú__getattr__zDBRef.__getattr__W���s2���€�ð	0Ø—=‘= Ñ%Ð%øÜò�	0Ü  Ó%¨4Ð/ð	0ús���‚�‘'c����������������ó¼���—�t��������d|�j������������������fd|�j������������������fg«������}|�j������������������|�j������������������|d<���|j	������������������|�j
������������������«�������|S�)zsGet the SON document representation of this DBRef.

        Generally not needed by application developers
        z$refz$idz$db)r
���r���r���r���r���r���)r���Údocs���  r!���Úas_doczDBRef.as_doc]���sQ���€�ô
�F˜DŸO™OÐ,¨u°d·g±gÐ.>Ð?Ó@ˆØ=‰=Ð$ØŸ™ˆC‰J؏
‰
4—=‘=Ô!؈
r#���c�����������
�����ó@��—�dj������������������|�j������������������j������������������«�������D�cg�c]
��\��}}d|›�d|›‘Œ�c}}«������}|�j������������������€d|�j������������������›d|�j
������������������›|›�dS�d|�j������������������›d|�j
������������������›d|�j������������������›|›�dS�c�c}}w�)NÚ�z, ú=zDBRef(ú))Újoinr���Úitemsr���r���r���)r���ÚkÚvÚextras���    r!���Ú__repr__zDBRef.__repr__h���s˜���€�Ø—‘°D·M±M×4GÑ4GÓ4I×J©D¨A¨q˜2˜a˜S  ! šÓJÓKˆØ=‰=РؘDŸO™OÐ.¨b°·±°¸E¸7À!ÐDÐDؘŸ™Ð*¨"¨T¯W©W¨K°r¸$¿-¹-Ð9JÈ5È'ÐQRÐSÐSùó�Ks���©B
c����������������óð���—�t��������|t��������«������ra|�j������������������|�j������������������|�j������������������|�j
������������������f}|j������������������|j������������������|j������������������|j
������������������f}||k(��S�t��������S�r)���)r���r���r���r���r���r���ÚNotImplemented)r���ÚotherÚusÚthems���    r!���Ú__eq__zDBRef.__eq__n���s^���€�ܐeœUÔ#Ø—/‘/ 4×#4Ñ#4°d·i±iÀÇÁÐOˆBØ×$Ñ$ e×&8Ñ&8¸%¿*¹*ÀeÇnÁnÐUˆDؘ‘:ÐÜÐr#���c����������������ó���—�|�|k(���S�r)���©�)r���r=���s���  r!���Ú__ne__zDBRef.__ne__u���s���€�ؘ5‘=Ð Ð r#���c����������������ó°���—�t��������|�j������������������|�j������������������|�j������������������t	��������t��������|�j������������������j������������������«�������«������«������f«������S�)z)Get a hash value for this :class:`DBRef`.)Úhashr���r���r���ÚtupleÚsortedr���r6���r%���s��� r!���Ú__hash__zDBRef.__hash__x���s@���€�äØ
×
Ñ
 §	¡	¨4¯?©?¼EÄ&ÈÏÉ×I\ÑI\ÓI^ÓB_Ó<`Ðaó
ð�	
r#���c�����������	�����ó¾���—�t��������t��������|�j������������������|«������t��������|�j������������������|«������t��������|�j������������������|«������t��������|�j
������������������|«������«������S�)z'Support function for `copy.deepcopy()`.)r���r���r���r���r���r���)r���Úmemos���  r!���Ú__deepcopy__zDBRef.__deepcopy__~���sI���€�äÜT×&Ñ&¨Ó-ÜT—Y‘Y Ó%ÜT—_‘_ dÓ+ÜT—]‘] DÓ)ó	
ð�	
r#���)NN)r���r���r���r���r���ú
Optional[str]r���zOptional[Mapping[str, Any]]r ���r���ÚreturnÚNone)rM���r���)rM���r���)rM���rL���)r,���r���rM���r���)rM���z
SON[str, Any])r=���r���rM���Úbool)rM���Úint)rJ���r���rM���r���)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r���Ú__getstate__r	���Ú__setstate__Ú_type_markerr"���Úpropertyr���r���r���r-���r0���r:���r@���rC���rH���rK���rB���r#���r!���r���r������sÁ���„�Ù6à@€IØ"€LØ"€Là€Lð�#'Ø.2ð!àð!ð�
ð!ð� ð	!ð
�,ð!ð�ð
!ð�
ó!ðF�ò!ó�ð!ð�òó�ðð�òó�ðó0ó	óTóó!ó
ô
r#���r���N)rT���Ú
__future__r���Úcopyr���Útypingr���r���r���Ú
bson._helpersr���r	���Úbson.sonr
���r���rB���r#���r!���ú<module>r_������s)���ðñ�GÝ�"å�ß�)Ñ�)ç�:Ý�÷l
ò�l
r#���