
    ∋d
                        U d dl mZ d dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZ  G d de          Zej        dk    rej        j        Zded	<   nddZ G d de          Zi Zded<   ddZdS )    )annotationsN)ABCabstractmethod)Iterable)Protocolc                      e Zd ZddZdS )_EntryPointskwargsstrreturn'Iterable[importlib.metadata.EntryPoint]c                    d S N )selfr
   s     9lib/python3.11/site-packages/distributed/comm/registry.py__call__z_EntryPoints.__call__   s        N)r
   r   r   r   )__name__
__module____qualname__r   r   r   r   r	   r	   
   s(             r   r	   )   
   _entry_pointsgroupr   namer   r   c              #     K   t           j                                                            | g           D ]}|j        |k    r|V  d S r   )	importlibmetadataentry_pointsgetr   )r   r   eps      r   r   r      sU       $113377rBB 	 	Bw$	 	r   c                      e Zd ZdZed             Zed             Zed             Zed             Zd Z	ed             Z
dS )	BackendzO
    A communication backend, selected by a given URI scheme (e.g. 'tcp').
    c                    dS )zL
        Get a connector object usable for connecting to addresses.
        Nr   )r   s    r   get_connectorzBackend.get_connector$         r   c                    dS )zJ
        Get a listener object for the scheme-less address *loc*.
        Nr   )r   lochandle_commdeserializeconnection_argss        r   get_listenerzBackend.get_listener*   r'   r   c                    dS )z
        Get a host name (normally an IP address) identifying the host the
        address is located on.
        *loc* is a scheme-less address.
        Nr   r   r)   s     r   get_address_hostzBackend.get_address_host2   r'   r   c                    dS )z
        Resolve the address into a canonical form.
        *loc* is a scheme-less address.

        Simple implementations may return *loc* unchanged.
        Nr   r/   s     r   resolve_addresszBackend.resolve_address:   r'   r   c                    t           )z
        Get the (host, port) tuple of the scheme-less address *loc*.
        This should only be implemented by IP-based transports.
        )NotImplementedErrorr/   s     r   get_address_host_portzBackend.get_address_host_portC   s
    
 "!r   c                    dS )zN
        Get the local listening address suitable for reaching *loc*.
        Nr   r/   s     r   get_local_address_forzBackend.get_local_address_forJ   r'   r   N)r   r   r   __doc__r   r&   r-   r0   r2   r5   r7   r   r   r   r$   r$      s            ^
   ^   ^   ^" " "   ^  r   r$   zdict[str, Backend]backendsschemec                   t                               |           }||S t          | d          D ]+} |                                            }|t           | <   |c S t	          d| dt          t                      d          )z
    Get the Backend instance for the given *scheme*.
    It looks for matching scheme in dask's internal cache, and falls-back to
    package metadata for the group name ``distributed.comm.backends``
    Nzdistributed.comm.backends)r   r   zunknown address scheme z (known schemes: ))r9   r!   r   load
ValueErrorsorted)r:   backendbackend_class_eps      r   get_backendrB   U   s     ll6""G)6     *"''))++"
P&PPVH=M=MPPP  r   )r   r   r   r   r   r   )r:   r   r   r$   )
__future__r   importlib.metadatar   sysabcr   r   collections.abcr   typingr   r	   version_infor   r    r   __annotations__r$   r9   rB   r   r   r   <module>rK      s1   " " " " " " "     



 # # # # # # # # $ $ $ $ $ $          8   
 w #,"4"AMAAAAA   1 1 1 1 1c 1 1 1j  " ! ! ! !     r   