
    0Fie                       d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZ  ej        e          Zej                            d          Z eee          r ee          Z	 dd	Zdd
Zd Zd ZddZdS )    )annotationsN)parse_bytes)protocol)safe_sizeof)get_ipget_ipv6nbytesoffloadzdistributed.comm.offloadTc                    K    fd}t           r9|r7t           d          }|dk    s|t           k    rt          |           d{V S  |            S )z{
    Serialize a message into a list of Distributed protocol frames.
    Any kwargs are forwarded to protocol.dumps().
    c                     	 t          t          j        fi           S # t          $ r;} t                              d           t                              |             d } ~ ww xY w)NzUnserializable Message: %s)listr   dumps	Exceptionloggerinfo	exception)ekwargsmsgs    6lib/python3.11/site-packages/distributed/comm/utils.py
_to_frameszto_frames.<locals>._to_frames    ss    	s55f55666 	 	 	KK4c:::Q	s   " 
A'6A""A')default_sizeN)OFFLOAD_THRESHOLDr   r
   )r   allow_offloadr   r   msg_sizes   ` `  r   	to_framesr      s             -] - s444r>>X(999 ,,,,,,,,,:<<    c                    K   d fd}|r+r)t           r"t          t          t                               |r*r(t           r!t           k    rt	          |           d{V }n
 |            }|S )z<
    Unserialize a list of Distributed protocol frames.
    Fc                     	 t          j                  S # t          $ r) dk    rd} n} t                              d|             w xY w)N)deserializedeserializersi  z[too large to display]z$truncated data stream (%d bytes): %s)r   loadsEOFErrorr   error)datastrr!   r"   framessizes    r   _from_framesz!from_frames.<locals>._from_frames;   st    	>K}     	 	 	d{{2 LL?wOOO	s	    3AN)r   summapr	   r
   )r'   r!   r"   r   r)   resr(   s   ```   @r   from_framesr-   5   s       D         ( (): (3vv&&''  ): tFW?W?WL))))))))lnnJr   c                   t          | j                                                  st          d| d          fd} |t          j                  }|s |t          j                  }|st          d          d |D             S )zA
    Get all bound addresses of a started Tornado TCPServer.
    zTCP Server z not started yet?c                V    g }D ]"}|j         | k    r|                    |           #|S N)familyappend)famsockssocksocketss      r   _look_for_familyz2get_tcp_server_addresses.<locals>._look_for_family[   s<     	# 	#D{c!!T"""r   z'No Internet socket found on TCPServer??c                6    g | ]}|                                 S  )getsockname).0r5   s     r   
<listcomp>z,get_tcp_server_addresses.<locals>.<listcomp>j   s$    1114D111r   )r   _socketsvaluesRuntimeErrorsocketAF_INETAF_INET6)
tcp_serverr7   r4   r6   s      @r   get_tcp_server_addressesrD   S   s     :&--//00G JHHHHIII     V^,,E 2  11 FDEEE1151111r   c                ,    t          |           d         S )zE
    Get the first bound address of a started Tornado TCPServer.
    r   )rD   )rC   s    r   get_tcp_server_addressrF   m   s     $J//22r   c                Z    | dv r|pt                      S | dk    r|pt                      S | S )zm
    Ensure the given host string (or IP) denotes a concrete host, not a
    wildcard listening address.
    )z0.0.0.0 z::)r   r   )hostdefault_hosts     r   ensure_concrete_hostrK   t   s;    
 'vxx'	)xzz)r   )T)TNTr0   )
__future__r   loggingr@   dask
dask.utilsr   distributedr   distributed.sizeofr   distributed.utilsr   r   r	   r
   	getLogger__name__r   configgetr   
isinstancestrr   r-   rD   rF   rK   r9   r   r   <module>rY      sD   " " " " " "    " " " " " "             * * * * * * ? ? ? ? ? ? ? ? ? ? ? ?		8	$	$ KOO$>?? :%% 7#$566
    >   <2 2 243 3 3
 
 
 
 
 
r   