+
    4O|j-  ã                  óf   € R t ^ RIHt ^ RIHt ^ RIHtHtHt ^ RI	H
t
Ht ^ RIHt  ! R R4      tR# )	z@Tools for manipulating DBRefs (references to MongoDB documents).)Úannotations)Údeepcopy)ÚAnyÚMappingÚOptional)Ú_getstate_slotsÚ_setstate_slots)ÚSONc                  óÐ   € ] tR t^tRtRt]t]t	^dt
RR R llt]R R l4       t]R R l4       t]R	 R
 l4       tR R ltR R ltR R ltR R ltR R ltR R ltR R ltRtR# )ÚDBRefz,A reference to a document stored in MongoDB.Nc               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )é   Ú
collectionÚstrÚidr   ÚdatabaseúOptional[str]Ú_extrazOptional[Mapping[str, Any]]ÚkwargsÚreturnÚNone© )Úformats   "ÚCC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\bson/dbref.pyÚ__annotate__ÚDBRef.__annotate__"   sF   € ÷ !ñ !àð!ð ð!ð  ð	!ð
 ,ð!ð ð!ð 
ñ!ó    c                ó(  € \        V\        4      '       g   \        R\        V4       24      hVe.   \        V\        4      '       g   \        R\        V4       24      hWn        W n        W0n        TP                  T;'       g    / 4       WPn        R# )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 str, not Nz)database must be an instance of str, not )	Ú
isinstancer   Ú	TypeErrorÚtypeÚ_DBRef__collectionÚ
_DBRef__idÚ_DBRef__databaseÚupdateÚ_DBRef__kwargs)Úselfr   r   r   r   r   s   &&&&&,r   Ú__init__ÚDBRef.__init__"   s{   € ô0 ˜*¤c×*Ò*ÜÐIÌ$ÈzÓJZÐI[Ð\Ó]Ð]ØÒ¬
°8¼S×(AÒ(AÜÐGÌÈXËÐGWÐXÓYÐYà&ÔØŒ	Ø"ŒØ�‰�f—l�l Ô#ØŽr   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   r   F   s   € ÷ !ñ !˜Cñ !r   c                ó   € V P                   # )z(Get the name of this DBRef's collection.)r!   ©r&   s   &r   r   ÚDBRef.collectionE   s   € ð × Ñ Ð r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   K   s   € ÷ ñ �Cñ r   c                ó   € V P                   # )zGet this DBRef's _id.)r"   r,   s   &r   r   ÚDBRef.idJ   s   € ð �y‰yÐr   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   P   s   € ÷ ñ ˜-ñ r   c                ó   € V P                   # )z_Get the name of this DBRef's database.

Returns None if this DBRef doesn't specify a database.
)r#   r,   s   &r   r   ÚDBRef.databaseO   s   € ð �‰Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   Úkeyr   r   r   )r   s   "r   r   r   W   s   € ÷ 0ñ 0˜sð 0 sñ 0r   c                	ó`   €  V P                   V,          #   \         d    \        T4      R hi ; i©N)r%   ÚKeyErrorÚAttributeError)r&   r5   s   &&r   Ú__getattr__ÚDBRef.__getattr__W   s2   € ð	0Ø—=‘= Õ%Ð%øÜô 	0Ü  Ó%¨4Ð/ð	0ús   ‚ •-c               ó   € V ^8„  d   QhRR/# )r   r   zSON[str, Any]r   )r   s   "r   r   r   ]   s   € ÷ 	ñ 	˜ñ 	r   c                óÀ   € \        RV P                  3RV P                  3.4      pV P                  e   V P                  VR&   VP	                  V P
                  4       V# )zcGet 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_docÚDBRef.as_doc]   sQ   € ô
 �F˜DŸO™OÐ,¨u°d·g±gÐ.>Ð?Ó@ˆØ�=‰=Ò$ØŸ™ˆC�‰JØ�
‰
�4—=‘=Ô!Øˆ
r   c               ó   € V ^8„  d   QhRR/# r*   r   )r   s   "r   r   r   h   s   € ÷ Tñ T˜#ñ Tr   c           
     	óR  € R P                  V P                  P                  4        UUu. uF  w  rRV RV: 2NK  	  upp4      pV P                  f"   RV P                  : RV P
                  : V R2# RV P                  : RV P
                  : RV P                  : V R2# u uppi )Ú z, Ú=zDBRef(Ú))Újoinr%   Úitemsr   r   r   )r&   ÚkÚvÚextras   &   r   Ú__repr__ÚDBRef.__repr__h   sœ   € Ø—‘°D·M±M×4GÑ4GÔ4IÔJÑ4I©D¨A˜2˜a˜S  !¡›Ñ4IÒJÓKˆØ�=‰=Ò Ø˜DŸO™OÑ.¨b°·±±¸E¸7À!ÐDÐDØ˜Ÿ™Ñ*¨"¨T¯W©W©K°r¸$¿-¹-Ñ9JÈ5È'ÐQRÐSÐSùó Ks   ©B#
c               ó    € V ^8„  d   QhRRRR/# ©r   Úotherr   r   Úboolr   )r   s   "r   r   r   n   s   € ÷ ñ ˜Cð  Dñ r   c                	óú   € \        V\        4      '       da   V P                  V P                  V P                  V P
                  3pVP                  VP                  VP                  VP
                  3pW#8H  # \        # r7   )r   r   r#   r!   r"   r%   ÚNotImplemented)r&   rO   ÚusÚthems   &&  r   Ú__eq__ÚDBRef.__eq__n   s_   € Ü�eœU×#Ò#Ø—/‘/ 4×#4Ñ#4°d·i±iÀÇÁÐOˆBØ×$Ñ$ e×&8Ñ&8¸%¿*¹*ÀeÇnÁnÐUˆDØ‘:ÐÜÐr   c               ó    € V ^8„  d   QhRRRR/# rN   r   )r   s   "r   r   r   u   s   € ÷ !ñ !˜Cð ! Dñ !r   c                	ó   € W8X  * # r7   r   )r&   rO   s   &&r   Ú__ne__ÚDBRef.__ne__u   s   € ØÒ Ð r   c               ó   € V ^8„  d   QhRR/# )r   r   Úintr   )r   s   "r   r   r   x   s   € ÷ 
ñ 
˜#ñ 
r   c                ó°   € \        V P                  V P                  V P                  \	        \        V P                  P                  4       4      4      34      # )z)Get a hash value for this :class:`DBRef`.)Úhashr!   r"   r#   ÚtupleÚsortedr%   rG   r,   s   &r   Ú__hash__ÚDBRef.__hash__x   s@   € äØ×Ñ §	¡	¨4¯?©?¼EÄ&ÈÏÉ×I\ÑI\ÓI^ÓB_Ó<`Ðaó
ð 	
r   c               ó    € V ^8„  d   QhRRRR/# )r   Úmemor   r   r   r   )r   s   "r   r   r   ~   s   € ÷ 
ñ 
 ð 
¨ñ 
r   c           	     ó¾   € \        \        V P                  V4      \        V P                  V4      \        V P                  V4      \        V P
                  V4      4      # )z'Support function for `copy.deepcopy()`.)r   r   r!   r"   r#   r%   )r&   rd   s   &&r   Ú__deepcopy__ÚDBRef.__deepcopy__~   sI   € äÜ�T×&Ñ&¨Ó-Ü�T—Y‘Y Ó%Ü�T—_‘_ dÓ+Ü�T—]‘] DÓ)ó	
ð 	
r   )Ú__collectionÚ
__databaseÚ__idÚ__kwargs)rh   rj   ri   rk   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r   Ú__getstate__r   Ú__setstate__Ú_type_markerr'   Úpropertyr   r   r   r:   r?   rK   rU   rY   ra   rf   Ú__static_attributes__r   r   r   r   r      s„   † Ù6à@€IØ"€LØ"€Là€L÷!ðF ô!ó ð!ð ôó ðð ôó ðõ0õ	õTõõ!õ
÷
ñ 
r   r   N)rp   Ú
__future__r   Úcopyr   Útypingr   r   r   Úbson._helpersr   r   Úbson.sonr	   r   r   r   r   Ú<module>r|      s)   ðñ GÝ "å ß )Ñ )ç :Ý ÷l
ó l
r   