o
    ÑtPf  ã                   @   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   úW/var/www/html/humari/django-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 | _d S r   )ÚsysÚmodulesr
   r   r   ©r   r   r   r   r   /   s   
z_ModuleProxy.__init__c                 C   sb   | j d u r.zddlm} W n ty*   zddlm} W n ty'   d }Y nw Y nw || _ | j S )Nr   )Úsupport)Útest_support)r   Útestr   ÚImportErrorr   )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__B   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"   O   s   
ÿÿz_ModuleProxy.__setattr__c                 C   s
   t | jƒS r   )Úreprr   r   r   r   r   Ú__repr___   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_enabledg   ó   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Úhostr1   Úportr   r   r   Ú	bind_portk   s   
r?   c                 C   sV   dd l }| p|j} |p|j}|  | |¡}ztjt  |¡}W | ¡  ~|S | ¡  ~w )Nr   )r1   r4   r6   r   r   r
   r?   Úclose)r3   Úsocktyper1   Útempsockr>   r   r   r   Úfind_unused_portw   s   

þrC   c                   C   s   g S r   r   r   r   r   r   Úthreading_setup„   r.   rD   c                  G   ó   d S r   r   r+   r   r   r   Úthreading_cleanupˆ   r.   rF   c                   C   rE   r   r   r   r   r   r   Úreap_childrenŒ   r.   rG   r   )NN)Ú__doc__r   Úobjectr   r   ÚHOSTv6r2   ÚHOSTv4Úverboser-   r?   rC   rD   rF   rG   Úgevent_has_setup_resourcesr   r
   r   r   r   r   Ú<module>   s,   7



