U
    \e                     @   sH   d dl Z d dl mZ ddlmZ ddlmZmZmZ G dd deZdS )	    N)Optional   )current_async_library   )SOCKET_OPTIONAsyncNetworkBackendAsyncNetworkStreamc                   @   s~   e Zd ZddddZdeeee ee ejej	e
  edddZdeee ejej	e
  edd	d
ZeddddZdS )AutoBackendN)returnc                    sF   t | dsBt }|dkr.ddlm} | | _nddlm} | | _d S )N_backendtrior   )TrioBackend)AnyIOBackend)hasattrr   r   r   r   Zanyior   )selfbackendr   r    r   ;/tmp/pip-unpacked-wheel-4txt3dqh/httpcore/_backends/auto.py_init_backend	   s    

zAutoBackend._init_backend)hostporttimeoutlocal_addresssocket_optionsr
   c                    s*   |   I d H  | jj|||||dI d H S )N)r   r   r   )r   r   connect_tcp)r   r   r   r   r   r   r   r   r   r      s    zAutoBackend.connect_tcp)pathr   r   r
   c                    s&   |   I d H  | jj|||dI d H S )N)r   r   )r   r   connect_unix_socket)r   r   r   r   r   r   r   r   &   s      zAutoBackend.connect_unix_socket)secondsr
   c                    s    |   I d H  | j|I d H S )N)r   r   sleep)r   r   r   r   r   r   1   s    zAutoBackend.sleep)NNN)NN)__name__
__module____qualname__r   strintr   floattypingIterabler   r   r   r   r   r   r   r   r   r	      s*        r	   )	r%   r   Z_synchronizationr   baser   r   r   r	   r   r   r   r   <module>   s   