
    i                     R   d Z ddlZ G d de          Z G d de          Z ed          Z ed          Z ed	          Z ed
          Zed             Z	edd            Z
edd            Zed             Zed             Zed             Zd
Z e            ej        e<   dS )a  
A re-export of the support module from Python's test package, with some
version compatibility shims and overrides.

The manylinux docker images do not include test.support at all, for space reasons,
so we need to be vaguely functional to run tests in that environment.
    Nc                       e Zd Zd ZdS )_Defaultc                     || _         d S N)value)selfr   s     A/usr/local/lib/python3.11/dist-packages/gevent/testing/support.py__init__z_Default.__init__(   s    


    N)__name__
__module____qualname__r
    r   r	   r   r   #   s#        
    r   r   c                   :     e Zd ZdZd Zd Zd Z fdZd Z xZ	S )_ModuleProxy)	_this_mod_stdlib_supportc                 L    t           j        t                   | _        | | _        d S r   )sysmodulesr   r   r   r   s    r	   r
   z_ModuleProxy.__init__/   s    X.#r   c                 d    | j         | u r!	 ddlm} n# t          $ r d }Y nw xY w|| _         | j         S )Nr   )support)r   testr   ImportError)r   stdlib_supports     r	   __get_stdlib_supportz!_ModuleProxy.__get_stdlib_support3   s_    4''&::::::: & & &!%&#1D ##s    !!c                 6   	 t          | j        |          }n2# t          $ r% t          |                                 |          cY S w xY wt	          |t
                    r:	 t          |                                 |          S # t          $ r
 |j        cY S w xY wd S r   )getattrr   AttributeError _ModuleProxy__get_stdlib_support
isinstancer   r   )r   name	local_vals      r	   __getattr__z_ModuleProxy.__getattr__=   s    	>55II 	> 	> 	>44466=====	> i** 	't88::DAAA! ' ' ' &&&'	 	s!    ,AA !B BBc                 ^   |t           j        v r+t          t           |                               ||           d S 	 t	          |                                 ||           	 t          | j        |           d S # t          $ r Y d S w xY w# t          $ r t	          | j        ||           Y d S w xY wr   )	r   	__slots__super__setattr__setattrr!   delattrr   r    )r   r#   r   	__class__s      r	   r)   z_ModuleProxy.__setattr__J   s    <))),%%11$>>>F	D--//u===-----!     	1 	1 	1DND%000000	1s#   #B  A7 7
BB B,+B,c                 *    t          | j                  S r   )reprr   r   s    r	   __repr__z_ModuleProxy.__repr__Z   s    DN###r   )
r   r   r   r'   r
   r!   r%   r)   r/   __classcell__)r,   s   @r	   r   r   +   sy        0I$ $ $$ $ $       $ $ $ $ $ $ $r   r   z::1	localhostz	127.0.0.1Fc                     dS )NFr   _s    r	   is_resource_enabledr5   b   s    5r   c                 R   dd l }||nt          j        t                   j        }| j        |j        k    rA| j        |j        k    r1t          |d          r!| 
                    |j        |j        d           |                     |df           |                                 d         }|S )Nr   SO_EXCLUSIVEADDRUSE   )socketr   r   r   HOSTfamilyAF_INETtypeSOCK_STREAMhasattr
setsockopt
SOL_SOCKETr7   bindgetsockname)sockhostr9   ports       r	   	bind_portrG   f   s    MMM#44X)>)CD{fn$$f6H)H)H6011 	NOOF-v/I1MMMIItQia DKr   c                    dd l }| p|j        } |p|j        }|                     | |          }	 t          j        t
                                       |          }|                                 ~n# |                                 ~w xY w|S )Nr   )r9   r<   r>   r   r   r   rG   close)r;   socktyper9   tempsockrF   s        r	   find_unused_portrL   r   s    MMM%v~F-6-H}}VX..H{8$..x88H 	Ks   *A. .Bc                      g S r   r   r   r   r	   threading_setuprN      s    Ir   c                      d S r   r   r3   s    r	   threading_cleanuprP          Dr   c                      d S r   r   r   r   r	   reap_childrenrS      rQ   r   r   )NN)__doc__r   objectr   r   HOSTv6r:   HOSTv4verboser5   rG   rL   rN   rP   rS   gevent_has_setup_resourcesr   r   r   r   r	   <module>rZ      ss  (  


    v   0$ 0$ 0$ 0$ 0$6 0$ 0$ 0$d 
%x	+		
(5//	  
 
	 	 	 
	 

 
 
 

 
  
 
	 	 
	 
	 	 
	 # $H   r   