
    <|hi                     D    d Z ddlZd	dZd Zd Z	 	 	 	 	 	 d
dZd Zd Zy)z2
Utilities used in patching.

Internal use only.

    Nc                 .    ddl m} || _         ||        y )Nr   )notify_and_call_entry_points)gevent.eventsr   	_warnings)eventr   r   s      R/var/www/html/test/engine/venv/lib/python3.12/site-packages/gevent/monkey/_util.py_notify_patchr	      s    :EO '    c                 4     ddl m}  |        fd       }|S )Nr   )wrapsc                  8    ddl m} 	  | i |S # |$ r Y yw xY w)Nr   )
DoNotPatchF)r   r   )argskwargsr   funcs      r   ignoresz$_ignores_DoNotPatch.<locals>.ignores   s-    ,	((( 		s    )	functoolsr   )r   r   r   s   `  r   _ignores_DoNotPatchr      s#    
4[  Nr
   c                 l    t        t        d| z         |       }t        |d|       }t        |      }|||fS )z
    Test that the source and target modules for *name* are
    available and return them.

    :raise ImportError: If the source or target cannot be imported.
    :return: The tuple ``(gevent_module, target_module, target_module_name)``
    zgevent.
__target__)getattr
__import__)namegevent_moduletarget_module_nametarget_modules       r   _check_availabilityr       sB     Jy4'78$?M dC12M-);;;r
   c           
      (   ddl m} t        |       \  }}	}
 ||	|||||||       t        |dd      }ddlm} |D ]R  }t        j                  j                  |      }|%||	us*|j                  |d         |||||ddd       ||
   ||<   T ||	fS )	N   )patch_module)itemsr   _patch_kwargs_notify_will_subscribers_notify_did_subscribers_call_hooks__alternate_targets__ )savedF)r!   r   r#   r$   r%   )
apir    r   r   _stater(   sysmodulesgetpop)r   r!   r   r"   r#   r$   r%   r    r   r   r   alternate_namesr(   alternate_namealternate_modules                  r   _patch_moduler2   1   s     "7J47P4M="4U$M*B)@(	* m-DbIO) 	>;;??>:',<M,QIInd+)=#,2716%*	,
 %**<$=E.!	> -''r
   c                 D    |t        | g       y |j                  |        y N)_process_warningsappend)messager   s     r   _queue_warningr8   [   s"     7)$!r
   c                 N    dd l }ddlm} | D ]  }|j                  ||d        y )Nr   r   )MonkeyPatchWarning   )
stacklevel)warnings_errorsr:   warn)r   r=   r:   warnings       r   r5   r5   e   s,    + Ag1a@Ar
   r4   )NNNTTT)__doc__r+   r	   r   r   r2   r8   r5   r'   r
   r   <module>rB      sC    (<$   $+/*."'(T"Ar
   