
    nhw                       d Z ddlmZ ddlZddlZddlZddlZddlmZm	Z	m
Z
mZ ddlmZ ddlmZ dZ e
de	d	ef   
      ZddZ	 	 	 	 	 	 	 	 ddZej(                  dk\  rej*                  Zej,                  ZyddZddZy)z2Miscellaneous pieces that need to be synchronized.    )annotationsN)AnyCallableTypeVarcast)OperationFailure)_REAUTHENTICATION_REQUIRED_CODEFF.)boundc                0     d fd}t        t        |      S )Nc                 |  K   |j                  dd      }ddlm} ddlm} 	  | i | d {   S 7 # t
        $ r{}|r |j                  t        k(  r_d }| D ],  }t        ||      r|} nt        ||      s |j                  } n |r|j                  d       d {  7   n  | i |cY d }~S  d }~ww xY ww)N	no_reauthFr   )AsyncConnection)_BulkWriteContextT)reauthenticate)poppymongo.asynchronous.poolr   pymongo.messager   r   coder	   
isinstanceconnauthenticate)	argskwargsr   r   r   excr   argfuncs	           /var/www/html/SchoolMeal/SchoolMeal/pds_admin_SchoolMeal/Backend/venv/lib/python3.12/site-packages/pymongo/asynchronous/helpers.pyinnerz_handle_reauth.<locals>.inner)   s     JJ{E2	=5	t.v.... 	xx::  C!#7"!#'89"xx ++4+@@@T,V,,)	sT   B<5 35 B<5 	B99B48&B4B!B4-B9.B<3B44B99B<)r   r   r   r   returnr   )r   r
   )r   r   s   ` r   _handle_reauthr!   (   s    : 5>    c                   K   t         s0t        j                         } |j                  | |fi | d {   S t	        j                  | |fi |S 7 w)N)_IS_SYNCasyncioget_running_loopgetaddrinfosocket)hostportr   loops       r   _getaddrinfor,   I   sS      '')%T%%dD;F;;;!!$777 <s   2AAA)   
   c                >   K   | j                          d{   S 7 w)iCompatibility function until we drop 3.9 support: https://docs.python.org/3/library/functions.html#anext.N)	__anext__clss    r   anextr4   `   s     ]]_$$$s   c                "    | j                         S )r0   )	__aiter__r2   s    r   aiterr7   d   s    }}r"   )r   r
   r    r
   )r)   r   r*   r   r   r   r    zklist[tuple[socket.AddressFamily, socket.SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]])r3   r   r    r   )__doc__
__future__r   r%   builtinsr(   systypingr   r   r   r   pymongo.errorsr   pymongo.helpers_sharedr	   r$   r
   r!   r,   version_infor4   r7    r"   r   <module>rA      s    9 "    
  C CxS)*B8
88$'88$ wNNENNE%r"   