o
    oi                     @   s   d Z ddlZG dd deZG dd deZedZedZed	Zed
Zedd Z	edddZ
edddZedd Zedd Zed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                   @   s   e Zd Zdd ZdS )_Defaultc                 C   s
   || _ d S N)value)selfr    r   U/var/www/html/pca-backend/venv/lib/python3.10/site-packages/gevent/testing/support.py__init__(      
z_Default.__init__N)__name__
__module____qualname__r   r   r   r   r   r   #   s    r   c                       s@   e Zd ZdZdd Zdd Zdd Z fdd	Zd
d Z  Z	S )_ModuleProxy)	_this_mod_stdlib_supportc                 C   s   t jt | _| | _d S r   )sysmodulesr
   r   r   r   r   r   r   r   /   s   
z_ModuleProxy.__init__c                 C   s>   | j | u rzddlm} W n ty   d }Y nw || _ | j S )Nr   )support)r   testr   ImportError)r   stdlib_supportr   r   r   __get_stdlib_support3   s   
z!_ModuleProxy.__get_stdlib_supportc                 C   sj   zt | j|}W n ty   t |  | Y S w t|tr3zt |  |W S  ty2   |j Y S w d S r   )getattrr   AttributeError _ModuleProxy__get_stdlib_support
isinstancer   r   )r   name	local_valr   r   r   __getattr__=   s   

z_ModuleProxy.__getattr__c                    s   |t jv rtt | || d S z
t|  || W n ty+   t| j|| Y d S w z	t| j| W d S  ty?   Y d S w r   )	r   	__slots__super__setattr__setattrr   r   r   delattr)r   r   r   	__class__r   r   r!   J   s   
z_ModuleProxy.__setattr__c                 C   s
   t | jS r   )reprr   r   r   r   r   __repr__Z   r	   z_ModuleProxy.__repr__)
r
   r   r   r   r   r   r   r!   r'   __classcell__r   r   r$   r   r   +   s    
r   z::1	localhostz	127.0.0.1Fc                 C   s   dS )NFr   _r   r   r   is_resource_enabledb      r,   c                 C   sr   dd l }|d ur
|ntjt j}| j|jkr*| j|jkr*t	|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_SOCKETr.   bindgetsockname)sockhostr0   portr   r   r   	bind_portf   s   
r>   c                 C   sV   dd l }| p|j} |p|j}| | |}ztjt |}W |  ~|S |  ~w )Nr   )r0   r3   r5   r   r   r
   r>   close)r2   socktyper0   tempsockr=   r   r   r   find_unused_portr   s   

rB   c                   C   s   g S r   r   r   r   r   r   threading_setup   r-   rC   c                  G      d S r   r   r*   r   r   r   threading_cleanup   r-   rE   c                   C   rD   r   r   r   r   r   r   reap_children   r-   rF   r   )NN)__doc__r   objectr   r   HOSTv6r1   HOSTv4verboser,   r>   rB   rC   rE   rF   gevent_has_setup_resourcesr   r
   r   r   r   r   <module>   s,   2



