
    %`i                     ,   d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
 g dZ e
d          ded	efd
            Z e
d          d	efd            Z e
d          defd            Z e
d          dedefd            Zd ZdededefdZdS )    )absolute_importdivisionprint_function)Language)CppFunctionDescriptorJavaFunctionDescriptor)	PublicAPI)java_functionjava_actor_classcpp_functionbeta)	stability
class_namefunction_namec           	      ^    ddl m}  |t          j        d t	          | |d          i           S )zwDefine a Java function.

    Args:
        class_name: Java class name.
        function_name: Java function name.
    r   RemoteFunctionc                      d S N argskwargss     f/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/cross_language.py<lambda>zjava_function.<locals>.<lambda>             )ray.remote_functionr   r   JAVAr   )r   r   r   s      r   r
   r
      sG     322222>$$z="==
	  r   c                 \    ddl m}  |t          j        d t	          | d          i           S )zPDefine a Cpp function.

    Args:
        function_name: Cpp function name.
    r   r   c                      d S r   r   r   s     r   r   zcpp_function.<locals>.<lambda>+   r   r   PYTHON)r   r   r   CPPr   )r   r   s     r   r   r       sE     322222>$$mX66
	  r   c                 n    ddl m} |                    t          j        t          | dd          i           S )zODefine a Java actor class.

    Args:
        class_name: Java class name.
    r   
ActorClassz<init>r   )	ray.actorr'   _ray_from_function_descriptorr   r    r   )r   r'   s     r   r   r   1   sE     %$$$$$33z8R88
  r   create_function_namec                     ddl m} t          d| d|           |                    t          j        t          | d|          i           S )zDefine a Cpp actor class.

    Args:
        create_function_name: Create cpp class function name.
        class_name: Cpp class name.
    r   r&   zcreate func=zclass_name=r#   )r(   r'   printr)   r   r$   r   )r*   r   r'   s      r   cpp_actor_classr-   A   s[     %$$$$$	..zJJJ332HjII
  r   c                 v    | j         st          d          |r t          dt          |           d          |S )a  Format args for various languages.

    Args:
        worker: The global worker instance.
        args: The arguments for cross language.
        kwargs: The keyword arguments for cross language.

    Returns:
        List of args and kwargs (if supported).
    z>Cross language feature needs --load-code-from-local to be set.z@Cross language remote functions does not support kwargs, kwargs:.)load_code_from_local
ValueError	TypeErrorstr)workerr   r   s      r   _format_argsr5   S   sd     & 
L
 
 	
  
%&kk% % %
 
 	
 Kr   languagemethod_name	signaturec                     | t           j        k    rt          |j        ||          S | t           j        k    rt          |d|j                  S t          d|            )a  Get function descriptor for cross language actor method call.

    Args:
        language: Target language.
        actor_creation_function_descriptor:
            The function signature for actor creation.
        method_name: The name of actor method.
        signature: The signature for the actor method. When calling Java from Python,
            it should be string in the form of "{length_of_args}".

    Returns:
        Function descriptor for cross language actor method call.
    r#   z8Cross language remote actor method not support language )r   r    r   r   r$   r   NotImplementedError)r6   "actor_creation_function_descriptorr7   r8   s       r   )_get_function_descriptor_for_actor_methodr<   j   s{      8=  %.9
 
 	

 
X\	!	!$.9
 
 	
 "T(TT
 
 	
r   N)
__future__r   r   r   rayr   ray._rayletr   r   ray.util.annotationsr	   __all__r3   r
   r   r   r-   r5   r<   r   r   r   <module>rB      s   @ @ @ @ @ @ @ @ @ @       E E E E E E E E * * * * * *   Vc #    " V      V     V# 3    "  .

DG
TW
 
 
 
 
 
r   