U
    h~                     @  sH   d dl mZ d dlZddlmZ ddlmZmZmZ G dd deZ	dS )	    )annotationsN   )current_async_library   )SOCKET_OPTIONAsyncNetworkBackendAsyncNetworkStreamc                   @  sZ   e Zd ZddddZddddd	d
ddddZdddd
ddddZdddddZdS )AutoBackendNone)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-a8helrha/httpcore/_backends/auto.py_init_backend
   s    

zAutoBackend._init_backendNstrintzfloat | Nonez
str | Nonez%typing.Iterable[SOCKET_OPTION] | Noner   )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float)secondsr   c                   s    |   I d H  | j|I d H S )N)r   r   sleep)r   r!   r   r   r   r"   2   s    zAutoBackend.sleep)NNN)NN)__name__
__module____qualname__r   r   r   r"   r   r   r   r   r	   	   s        r	   )

__future__r   typingZ_synchronizationr   baser   r   r   r	   r   r   r   r   <module>   s   