
    {kf[                       d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	 ddl
mZ ddlmZ  ed	          Zd
ZdZdZ  ede          ej                  ZdZd)dZd*dZd+d,dZd-dZd.dZd/d!Zd0d1d%Z eed&d"          Zd2d3d(ZdS )4zWorker name utilities.    )annotationsN)partial)ExchangeQueue   )memoize)simple_formatzC.dq2z{hostname}.dq2@celery)Cache)worker_directgethostnamenodenameanon_nodename	nodesplitdefault_nodenamenode_formathost_formathostnamestr | Queuereturnr   c                    t          | t                    r| S t          t                              |           t          |           S )a5  Return the :class:`kombu.Queue` being a direct route to a worker.

    Arguments:
        hostname (str, ~kombu.Queue): The fully qualified node name of
            a worker (e.g., ``w1@example.com``).  If passed a
            :class:`kombu.Queue` instance it will simply return
            that instead.
    r   )
isinstancer   WORKER_DIRECT_QUEUE_FORMATformatWORKER_DIRECT_EXCHANGEr   s    V/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/celery/utils/nodenames.pyr   r   &   sG     (E"" "))8)<<      namestrc                :    t                               | |f          S )z)Create node name from name/hostname pair.)NODENAME_SEPjoin)r    r   s     r   r   r   8   s    dH-...r   gen
str | Noneprefixc           	         t          d                    |t          t          j                              g          | pt                                S )zsReturn the nodename for this process (not a worker).

    This is used for e.g. the origin task message field.
     )r   r$   r!   osgetpidr   )r   r'   s     r   r   r   =   s<    
 BGGVS%5%56779R[]]SSSr   tuple[None, str] | list[str]c                v    |                      t          d          }t          |          dk    r
d|d         fS |S )z,Split node name into tuple of name/hostname.r   Nr   )splitr#   len)r    partss     r   r   r   E   s7    JJ|Q''E
5zzQU1X~Lr   c                t    t          | pd          \  }}t          |pt          |pt                                S )z-Return the default nodename for this process.r)   )r   r   NODENAME_DEFAULTr   )r   r    hosts      r   r   r   M   s6    8>r**JD$D,,d.CkmmDDDr   sextradictc                V    t          |          \  }}t          | ||pt          fd|i|S )z(Format worker node name (name@host.com).p)r   r   r2   )r4   r    r5   	shortnamer3   s        r   r   r   S   s6    ooOItq$	 =-=OOOOOOr   r)   0defaultc                6    ddl m}  |            }|r|  | n|S )Nr   )current_process_index)logr=   )r'   r;   r=   indexs       r   _fmt_process_indexr@   Y   s=    ******!!##E!&3feG3r   -r3   c                    |pt                      }|                    d          \  }}}|p|}t          |||t          t          dfi |}t          | |          S )zFormat host %x abbreviations..)hndiI)r   	partitionr6   r@   _fmt_process_index_with_prefixr	   )r4   r3   r    r5   hname_domainkeyss           r   r   r   c   sz     ;==D~~c**E1f=5D#/	
 	
	 	 	 	D D!!!r   )r   r   r   r   )r    r!   r   r!   r   r!   )Nr%   )r   r&   r'   r!   r   r!   )r    r!   r   r,   )r   r!   r   r!   )r4   r!   r    r!   r5   r6   r   r!   )r)   r:   )r'   r!   r;   r!   r   r!   )NN)
r4   r!   r3   r&   r    r&   r5   r6   r   r!   )__doc__
__future__r   r*   socket	functoolsr   kombu.entityr   r   
functionalr   textr	   r   r   r#   r2   r6   r   __all__r   r   r   r   r   r   r@   rJ   r    r   r   <module>rX      s     " " " " " " 				        ( ( ( ( ( ( ( (             "'**  .   $ggat$$$V%788	   $/ / / /
T T T T T   E E E EP P P P4 4 4 4 4 "));S"!E!E " " " " " " "r   