+
    8i                        R t ^ RIHt ^ RIHt ^ RIHtHtHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ]'       d   ^ RIHt ^ R	IHt R
t ! R R4      t ! R R]],          4      tR# )zCAsynchronous cursor base extending the shared agnostic cursor base.)annotations)abstractmethod)TYPE_CHECKINGAnyOptional)_csot)_AgnosticCursorBase)_async_create_lock)_DocumentType)AsyncClientSession)AsyncConnectionFc                  >    ] tR t^!tRtR R ltR R ltR R ltRtR	# )
_ConnectionManagerz?Used with exhaust cursors to ensure the connection is returned.c                    V ^8  d   QhRRRR/# )   connr   more_to_comebool )formats   "^/var/www/html/photoedit/myenv/lib/python3.14/site-packages/pymongo/asynchronous/cursor_base.py__annotate___ConnectionManager.__annotate__$   s     * *_ *D *    c                	<    Wn         W n        \        4       V n        R # N)r   r   r	   _lock)selfr   r   s   &&&r   __init___ConnectionManager.__init__$   s    /3	(')
r   c                    V ^8  d   QhRRRR/# )r   r   r   returnNoner   )r   s   "r   r   r   )   s     ) )4 )D )r   c                	    Wn         R # r   )r   )r   r   s   &&r   update_exhaust!_ConnectionManager.update_exhaust)   s    (r   c                   V ^8  d   QhRR/# r   r!   r"   r   )r   s   "r   r   r   ,   s      T r   c                   "   V P                   '       d,   V P                   P                  4       G Rj  xL
  RV n         R# R#  L5i)z9Return this instance's connection to the connection pool.N)r   unpinr   s   &r   close_ConnectionManager.close,   s1     999))//###DI #s   0AAA)r   r   r   N)	__name__
__module____qualname____firstlineno____doc__r   r$   r+   __static_attributes__r   r   r   r   r   !   s    I*
) r   r   c                      ] tR t^3tRt]R R l4       t]RR R ll4       tR R lt	R	 R
 lt
R R lt]P                  RR R ll4       tRtR# )_AsyncCursorBasezAsynchronous cursor base class.c                   V ^8  d   QhRR/# )r   r!   zOptional[AsyncClientSession]r   )r   s   "r   r   _AsyncCursorBase.__annotate__7   s      5 r   c                z    V P                   '       d)   V P                   P                  '       g   V P                   # R# )zoThe cursor's :class:`~pymongo.asynchronous.client_session.AsyncClientSession`, or None.

.. versionadded:: 3.6
N)_session	_implicitr*   s   &r   session_AsyncCursorBase.session6   s)     ===!8!8!8== r   Nc               $    V ^8  d   QhRRRRRR/# )r   resultlisttotalOptional[int]r!   r   r   )r   s   "r   r   r6   A   s!       ] d r   c                	   "   R # 5ir   r   )r   r=   r?   s   &&&r   _next_batch_AsyncCursorBase._next_batch@   s     s   c                   V ^8  d   QhRR/# r'   r   )r   s   "r   r   r6   D   s       r   c                  "    V P                   pT P                  T4      w  r#T P                  P                  P
                  P                  TTT P                  T P                  4      G Rj  xL
  T P                  '       d5   T P                  P                  '       d   RT P                  n
        RT n        RT n        R#   \         d     R# i ; i Le5i)zCloses this cursor.NF)_killedAttributeError_prepare_to_die_collectiondatabaseclient_cleanup_cursor_lock	_sock_mgrr8   r9   _attached_to_cursor)r   already_killed	cursor_idaddresss   &   r   	_die_lock_AsyncCursorBase._die_lockD   s     	!\\N
 "11.A	''..CCNNMM	
 	
 	
 ===T]]44405DMM- DM  		
	
s@   CC  AC,C-CC!C CCCCc                   V ^8  d   QhRR/# r'   r   )r   s   "r   r   r6   X   s      T r   c                B   "   V P                  4       G Rj  xL
  R#  L5i)z$Explicitly close / kill this cursor.N)rR   r*   s   &r   r+   _AsyncCursorBase.closeX   s     nn   c               (    V ^8  d   QhRRRRRRRR/# )r   exc_typer   exc_valexc_tbr!   r"   r   )r   s   "r   r   r6   \   s(       c 3 4 r   c                	B   "   V P                  4       G R j  xL
  R #  L5ir   )r+   )r   rY   rZ   r[   s   &&&&r   	__aexit___AsyncCursorBase.__aexit__\   s     jjlrW   c                    V ^8  d   QhRRRR/# )r   lengthr@   r!   zlist[_DocumentType]r   )r   s   "r   r   r6   `   s      M =P r   c                  "   . pTp\        V\        4      '       d   V^8  d   \        R4      hV P                  '       dG   V P	                  W#4      G Rj  xL
 '       g    V# Vf   K:  V\        V4      ,
          pV^ 8X  g   KU   V# V#  L35i)aE  Converts the contents of this cursor to a list more efficiently than ``[doc async for doc in cursor]``.

To use::

  >>> await cursor.to_list()

Or, to read at most n items from the cursor::

  >>> await cursor.to_list(n)

If the cursor is empty or has no more results, an empty list will be returned.

.. versionadded:: 4.9
z'to_list() length must be greater than 0N)
isinstanceint
ValueErroraliverB   len)r   r`   res	remainings   &&  r   to_list_AsyncCursorBase.to_list_   s       $&	fc""vzFGGjjj))#999
 
	 !"SX-	>
s
 :s)   >BBB		B B)BB)r8   rM   r   )r-   r.   r/   r0   r1   propertyr:   r   rB   rR   r+   r]   r   applyri   r2   r   r   r   r4   r4   3   sR    )   ( [[ r   r4   N)r1   
__future__r   abcr   typingr   r   r   pymongor   pymongo.cursor_sharedr   pymongo.lockr	   pymongo.typingsr
   #pymongo.asynchronous.client_sessionr   pymongo.asynchronous.poolr   _IS_SYNCr   r4   r   r   r   <module>rw      sO    J "  / /  5 + )F9 $G*=9 Gr   