ó
    ÌÅLgì
  ã                   óÐ   • % S SK Jr  S SKrS SKJrJrJrJr  Sq	0 r
\\\4   \S'   Sr " S S\R                  R                  5      rS\S	\4S
 jrS	\4S jrS	\4S jrS\S	\4S jrg)é    )ÚDictN)ÚBackendÚDatagramSocketÚSocketÚStreamSocketÚ	_backendsFc                   ó   • \ rS rSrSrg)ÚAsyncLibraryNotFoundErroré   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú2/usr/lib/python3/dist-packages/dns/asyncbackend.pyr
   r
      s   † Úr   r
   ÚnameÚreturnc                 ó  • [         R                  U 5      nU(       a  U$ U S:X  a  SSKnUR                  R	                  5       nO3U S:X  a  SSKnUR                  R	                  5       nO[        SU  35      eU[         U '   U$ )zÖGet the specified asynchronous backend.

*name*, a ``str``, the name of the backend.  Currently the "trio"
and "asyncio" backends are available.

Raises NotImplementedError if an unknown backend name is specified.
Útrior   NÚasynciozunimplemented async backend )r   ÚgetÚdns._trio_backendÚ_trio_backendr   Údns._asyncio_backendÚ_asyncio_backendÚNotImplementedError)r   ÚbackendÚdnss      r   Úget_backendr!      sx   € ô �m‰m˜DÓ!€GÞØˆØˆvƒ~Û à×#Ñ#×+Ñ+Ó-‰Ø	�Ó	Û#à×&Ñ&×.Ñ.Ó0‰ä!Ð$@ÀÀÐ"GÓHÐHØ„Iˆd�OØ€Nr   c                  ó
  •  [         (       a  [        eSSKn  U R                  5       $ ! U R                   a    [	        S5      ef = f! [         a1    SSKn UR                  5          g! [         a    [	        S5      ef = ff = f)zØAttempt to determine the in-use asynchronous I/O library by using
the ``sniffio`` module if it is available.

Returns the name of the library, or raises AsyncLibraryNotFoundError
if the library cannot be determined.
r   Nz&sniffio cannot determine async libraryr   zno async library detected)Ú_no_sniffioÚImportErrorÚsniffioÚcurrent_async_libraryr
   r   Úget_running_loopÚRuntimeError)r%   r   s     r   Úsniffr)   7   s“   € ðIßŠ;ÜÐÛð	VØ×0Ñ0Ó2Ð2øØ×0Ñ0ó 	VÜ+Ð,TÓUÐUð	Vûäó IÛð	IØ×$Ñ$Ô&ÙøÜó 	IÜ+Ð,GÓHÐHð	IúðIús,   ‚A ˜( ¨AÁA ÁBÁA(Á(A>Á>Bc                  óJ   • [         (       a  [         $ [        [        5       5      $ )z6Get the default backend, initializing it if necessary.)Ú_default_backendÚset_default_backendr)   r   r   r   Úget_default_backendr-   R   s   € çÒÜÐäœu›wÓ'Ð'r   c                 ó$   • [        U 5      q[        $ )a  Set the default backend.

It's not normally necessary to call this method, as
``get_default_backend()`` will initialize the backend
appropriately in many cases.  If ``sniffio`` is not installed, or
in testing situations, this function allows the backend to be set
explicitly.
)r!   r+   )r   s    r   r,   r,   Z   s   € ô # 4Ó(ÐÜÐr   )Útypingr   Údns.exceptionr    Údns._asyncbackendr   r   r   r   r+   r   ÚstrÚ__annotations__r#   Ú	exceptionÚDNSExceptionr
   r!   r)   r-   r,   r   r   r   Ú<module>r6      s�   ðö ã ÷ó ð Ð à "€	ˆ4��W�ÑÓ "ð €ô	 §¡× :Ñ :ô 	ð�cð ˜gô ð4Iˆsô Ið6(˜Wô (ð˜cð  gõ r   