+
    4O|j¤  ã                  ój  € R t ^ RIHt ^ RIHtHt ^ RIHtHtH	t	H
t
HtHtHt ^ RIHt ^ RIHtHt  ! R R]],          ]4      t]! . RO4      tR^R	^R
^R^R^ R^@R^€/t ! R R4      t]]]]]]]]]]	]]3,          3,          3,          3,          ,          ]	]]3,          3,          t]]]3,          tR# )z5Constants and types shared across all cursor classes.)Úannotations)ÚABCÚabstractmethod)ÚAnyÚGenericÚMappingÚOptionalÚSequenceÚTupleÚUnion)Ú_CursorAddress)Ú_AddressÚ_DocumentTypec                  óÞ   € ] tR t^t$ RtR]R&   R]R&   R]R&   R]R&   R]R	&   R
]R&   R]R&   ]R R l4       tR R 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tR# )Ú_AgnosticCursorBasezƒ
Shared IO-agnostic cursor base used by both async and sync cursor classes.
All IO-specific behavior is implemented in subclasses.
r   Ú_collectionúOptional[int]Ú_idÚ_dataúOptional[_Address]Ú_addressÚ	_sock_mgrzOptional[Any]Ú_sessionÚboolÚ_killedc               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚstr© )Úformats   "ÚNC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\pymongo/cursor_shared.pyÚ__annotate__Ú _AgnosticCursorBase.__annotate__*   s   € ÷ ñ  ñ ó    c                ó   € R# )z<Return the full namespace (dbname.collname) for this cursor.Nr   ©Úselfs   &r!   Ú_get_namespaceÚ"_AgnosticCursorBase._get_namespace)   s   € ñ 	r$   c               ó   € V ^8„  d   QhRR/# ©r   r   ÚNoner   )r    s   "r!   r"   r#   .   s   € ÷ ñ ˜ñ r$   c                	ó&   € V P                  4        R # )N)Ú_die_no_lockr&   s   &r!   Ú__del__Ú_AgnosticCursorBase.__del__.   s   € Ø×ÑÖr$   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r    s   "r!   r"   r#   2   s   € ÷ ;ñ ;�tñ ;r$   c                óp   € \        \        V P                  4      ;'       g    V P                  '       * 4      # )a»  Does this cursor have the potential to return more data?

This is mostly useful with `tailable cursors
<https://www.mongodb.com/docs/manual/core/tailable-cursors/>`_
since they will stop iterating even though they *may* return more
results in the future.

With regular cursors, simply use an asynchronous for loop instead of :attr:`alive`::

    async for doc in collection.find():
        print(doc)

.. note:: Even if :attr:`alive` is True, :meth:`next` can raise
  :exc:`StopIteration`. :attr:`alive` can also be True while iterating
  a cursor from a failed server. In this case :attr:`alive` will
  return False after :meth:`next` fails to retrieve the next batch
  of results from the server.
)r   Úlenr   r   r&   s   &r!   ÚaliveÚ_AgnosticCursorBase.alive1   s&   € ô( ”C˜Ÿ
™
“O×9Ð9¨D¯L©LÔ(8Ó:Ð:r$   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r    s   "r!   r"   r#   H   s   € ÷ ñ ˜=ñ r$   c                ó   € V P                   # )z5Returns the id of the cursor.

.. versionadded:: 2.2
)r   r&   s   &r!   Ú	cursor_idÚ_AgnosticCursorBase.cursor_idG   s   € ð �x‰xˆr$   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r    s   "r!   r"   r#   P   s   € ÷ ñ Ð+ñ r$   c                ó   € V P                   # )zbThe (host, port) of the server used, or None.

.. versionchanged:: 3.0
   Renamed from "conn_id".
)r   r&   s   &r!   ÚaddressÚ_AgnosticCursorBase.addressO   s   € ð �}‰}Ðr$   c               ó    € V ^8„  d   QhRRRR/# )r   Úalready_killedr   r   z$tuple[int, Optional[_CursorAddress]]r   )r    s   "r!   r"   r#   X   s   € ÷ 
"ñ 
"¨dð 
"Ð7[ñ 
"r$   c                	óØ   € R V n         V P                  '       dL   V'       gD   V P                  pV P                  f   Q h\        V P                  V P	                  4       4      pW#3# ^ pRpW#3# )TN)r   r   r   r   r(   ©r'   r?   r8   r<   s   &&  r!   Ú_prepare_to_dieÚ#_AgnosticCursorBase._prepare_to_dieX   sf   € ØˆŒØ�8�8ˆ8ŸNØŸ™ˆIØ—=‘=Ò,Ð,Ð,Ü$ T§]¡]°D×4GÑ4GÓ4IÓJˆGð
 Ð!Ð!ð ˆIØˆGØÐ!Ð!r$   c               ó   € V ^8„  d   QhRR/# r+   r   )r    s   "r!   r"   r#   d   s   € ÷ ñ ˜dñ r$   c                óŽ  €  V P                   pT P                  T4      w  r#T P                  P                  P
                  P                  Y#T P                  T P                  4       T P                  '       d5   T P                  P                  '       d   RT P                  n
        RT n        RT n        R#   \         d     R# i ; i)z,Closes this cursor without acquiring a lock.NF)r   ÚAttributeErrorrB   r   ÚdatabaseÚclientÚ_cleanup_cursor_no_lockr   r   Ú	_implicitÚ_attached_to_cursorrA   s   &   r!   r.   Ú _AgnosticCursorBase._die_no_lockd   sœ   € ð	Ø!Ÿ\™\ˆNð
 "×1Ñ1°.ÓAÑˆ	Ø×Ñ×!Ñ!×(Ñ(×@Ñ@Ø §¡°·±ô	
ð �=�=ˆ=˜TŸ]™]×4×4Ð4Ø05ˆD�M‰MÔ-Ø ˆDŒMØˆŽøô ô 	âð	ús   ‚B5 Â5CÃC)r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   r(   r/   Úpropertyr4   r8   r<   rB   r.   Ú__static_attributes__r   r$   r!   r   r      s’   ‡ ñð ÓØ	ÓØƒJØ Ó ØƒNØÓØƒMàôó ðõð ô;ó ð;ð* ôó ðð ôó ðõ
"÷ñ r$   r   Útailable_cursorÚsecondary_okayÚoplog_replayÚ
no_timeoutÚ
await_dataÚexhaustÚpartialc                  ód   € ] tR t^Ÿt^ t ]R,          t ]]R,          ,          t ]R,          tRt	R# )Ú
CursorTyperU   rY   rZ   r   N)
rM   rN   rO   rP   ÚNON_TAILABLEÚ_QUERY_OPTIONSÚTAILABLEÚTAILABLE_AWAITÚEXHAUSTrT   r   r$   r!   r]   r]   Ÿ   sA   † Ø€LØ#àÐ/Õ0€Hðð  ¨|Õ <Õ<€Nðð ˜YÕ'€Gór$   r]   N)é+   é¯   éí   iÉo  iþC  é`   éˆ   )rQ   Ú
__future__r   Úabcr   r   Útypingr   r   r   r   r	   r
   r   Úpymongo.messager   Úpymongo.typingsr   r   r   Ú	frozensetÚ_CURSOR_CLOSED_ERRORSr_   r]   r   ÚintÚ_SortÚ_Hintr   r$   r!   Ú<module>rr      sÛ   ðñ  <Ý "ç #ß J× JÑ Jå *ß 3ôY˜' -Õ0°#ô Yñ| "òóÐ ð: �qØ�aØ�AØ�"Ø�"ØˆrØˆsð€÷ñ ð: 	ØˆU�3˜˜c 5¨¨c°7¸3À¸8Õ3DÐ)DÕ#EÐEÕFÐFÕGÕHÈ'ÐRUÐWZÐRZÕJ[Ð[õ	€ð 	ˆc�5ˆjÕ‚r$   