§
    Hºiì
  ã                   óÂ   — U d dl mZ d dlZd dlmZmZmZmZ da	i Z
eeef         ed<   dZ G d„ dej        j        ¦  «        Zded	efd
„Zd	efd„Zd	efd„Zded	efd„ZdS )é    )ÚDictN)ÚBackendÚDatagramSocketÚSocketÚStreamSocketÚ	_backendsFc                   ó   — e Zd ZdS )ÚAsyncLibraryNotFoundErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úU/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/dns/asyncbackend.pyr
   r
      s   € € € € € Ø€Dr   r
   ÚnameÚreturnc                 ó
  — t                                | ¦  «        }|r|S | dk    rddl}|j                             ¦   «         }n6| dk    rddl}|j                             ¦   «         }nt          d| › �¦  «        ‚|t           | <   |S )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      sŸ   € õ �mŠm˜DÑ!Ô!€GØð ØˆØˆv‚~€~Ø Ð Ð Ð àÔ#×+Ò+Ñ-Ô-ˆˆØ	�Ò	Ð	Ø#Ð#Ð#Ð#àÔ&×.Ò.Ñ0Ô0ˆˆå!Ð"GÀÐ"GÐ"GÑHÔHÐHØ…Iˆd�OØ€Nr   c                  ó  — 	 t           rt          ‚ddl} 	 |                      ¦   «         S # | j        $ r t	          d¦  «        ‚w xY w# t          $ r: ddl}	 |                     ¦   «          Y dS # t          $ r t	          d¦  «        ‚w xY ww xY w)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Ð2øØÔ0ð 	Vð 	Vð 	VÝ+Ð,TÑUÔUÐUð	Vøøøøåð Ið Ið IØˆˆˆð	IØ×$Ò$Ñ&Ô&Ð&Ø�9�9øÝð 	Ið 	Ið 	IÝ+Ð,GÑHÔHÐHð	IøøøðIøøøs,   ‚A •) ©AÁA ÁB
ÁA,Á,BÂB
c                  óT   — t           rt           S t          t          ¦   «         ¦  «        S )z6Get the default backend, initializing it if necessary.)Ú_default_backendÚset_default_backendr&   r   r   r   Úget_default_backendr*   R   s"   € åð  ÝÐå�u™wœwÑ'Ô'Ð'r   c                 ó.   — t          | ¦  «        at          S )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>r3      sD  ðð Ð Ð Ð Ð Ð Ð à Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð Ð à "€	ˆ4��W�ÔÐ "Ð "Ñ "ð €ð	ð 	ð 	ð 	ð 	 ¤Ô :ñ 	ô 	ð 	ð�cð ˜gð ð ð ð ð4Iˆsð Ið Ið Ið Ið6(˜Wð (ð (ð (ð (ð˜cð  gð ð ð ð ð ð r   