
    ∋d|                    P   d dl mZ d dl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lZddZeZn# e$ r	 ddZeZY nw xY w	 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.offloadnintreturn
memoryviewc                :    t          j        | fd          j        S )Nu1)dtype)numpyemptydatar   s    6lib/python3.11/site-packages/distributed/comm/utils.pynumpy_host_arrayr      s    {A4t,,,11    c                :    t          t          |                     S N)r   	bytearrayr   s    r   builtin_host_arrayr   %   s    )A,,'''r   Tc                    K    fd}t           r/|r-	 t                     }n# t          $ r t          j        }Y nw xY wd}|r't           r |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    r   
_to_frameszto_frames.<locals>._to_frames5   ss    	s55f55666 	 	 	KK4c:::Q	s   " 
A'6A""A'r   N)OFFLOAD_THRESHOLDsizeofRecursionErrormathinfr
   )r'   allow_offloadr&   r(   msg_sizes   ` `  r   	to_framesr0   +   s             ] 	 c{{HH 	  	  	 xHHH	   * x:K/K/KZ(((((((((z||s   % >>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)datastrr3   r4   framessizes    r   _from_framesz!from_frames.<locals>._from_framesQ   st    	>K}     	 	 	d{{2 LL?wOOO	s	    3AN)r)   summapr	   r
   )r9   r3   r4   r.   r;   resr:   s   ```   @r   from_framesr?   K   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 r   )familyappend)famsockssocksocketss      r   _look_for_familyz2get_tcp_server_addresses.<locals>._look_for_familyq   s<     	# 	#D{c!!T"""r   z'No Internet socket found on TCPServer??c                6    g | ]}|                                 S  )getsockname).0rF   s     r   
<listcomp>z,get_tcp_server_addresses.<locals>.<listcomp>   s$    1114D111r   )r   _socketsvaluesRuntimeErrorsocketAF_INETAF_INET6)
tcp_serverrH   rE   rG   s      @r   get_tcp_server_addressesrU   i   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   )rU   )rT   s    r   get_tcp_server_addressrW      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_hostr\      s;    
 'vxx'	)xzz)r   )r   r   r   r   )T)TNTr   )$
__future__r   loggingr,   rQ   dask
dask.utilsr   distributedr   distributed.sizeofr   r*   distributed.utilsr   r   r	   r
   	getLogger__name__r"   configgetr)   
isinstancestrr   r   
host_arrayImportErrorr   r0   r?   rU   rW   r\   rJ   r   r   <module>rl      s   " " " " " "     " " " " " "             4 4 4 4 4 4 ? ? ? ? ? ? ? ? ? ? ? ?		8	$	$ KOO$>?? :%% 7#$566$
 LLL2 2 2 2 "JJ $ $ $( ( ( ( $JJJ$    @   <2 2 243 3 3
 
 
 
 
 
s   7
B BB