
    &`i                     R    d dl mZ d dlmZmZmZmZmZmZm	Z	  G d de
          ZdS )    )Dict)ClassMethodNode	ClassNodeDAGNodeFunctionNodeInputAttributeNode	InputNodeMultiOutputNodec                   6    e Zd ZdZd ZdefdZd Zd Zd Z	dS )	_DAGNodeNameGeneratorz
    Generate unique suffix for each given Node in the DAG.
    Apply monotonic increasing id suffix for duplicated names.
    c                 ,    t                      | _        d S Ndictname_to_suffixselfs    a/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/dag/utils.py__init__z_DAGNodeNameGenerator.__init__   s    .2ff    nodec                    t          |t                    rdS t          |t                    rdS t          |t                    r
d|j         S t          |t
                    r0|                                                    dd           p|j        }nt          |t          t          f          r5|                                                    dd           p|j        j        }n_t          |          j        dv r|                                }n4t          |          j        dk    r|j        j        }nt#          d          || j        vrd| j        |<   |S | j        |xx         d	z  cc<   | j        |         }| d
| S )N
INPUT_NODEr
   INPUT_ATTRIBUTE_NODE_name)DeploymentNodeDeploymentFunctionNodeDeploymentFunctionExecutorNodez;get_node_name() should only be called on DAGNode instances.r      _)
isinstancer	   r
   r   _keyr   get_optionsget_method_namer   r   _body__name__typeget_deployment_name_deployment_function_handledeployment_name
ValueErrorr   )r   r   	node_name
suffix_nums       r   get_node_namez#_DAGNodeNameGenerator.get_node_name   s   dI&& 	 <dO,, 	7$$011 	7649666 dO,, 	((**..vt<<Q@QIIy,788 	((**..vt<<S
@SII $ZZ $PPP0022II$ZZ $DDD8HIIM   D///-.D	*	***a/***,Y7J..*...r   c                 ,    t                      | _        d S r   r   r   s    r   resetz_DAGNodeNameGenerator.reset;   s    "ffr   c                     | S r    r   s    r   	__enter__z_DAGNodeNameGenerator.__enter__>   s    r   c                 .    |                                   d S r   )r1   )r   argss     r   __exit__z_DAGNodeNameGenerator.__exit__A   s    

r   N)
r'   
__module____qualname____doc__r   r   r/   r1   r4   r7   r3   r   r   r   r      sv         
5 5 5"/' "/ "/ "/ "/H% % %      r   r   N)typingr   ray.dagr   r   r   r   r   r	   r
   objectr   r3   r   r   <module>r>      s                          4 4 4 4 4F 4 4 4 4 4r   