a
    ag2	                     @   sz   d Z ddlZddlZddlmZmZmZmZmZm	Z	 ddl
mZmZ ddlmZ ddlmZ eeZG dd deZdS )	z-Chain that runs an arbitrary python function.    N)Any	AwaitableCallableDictListOptional)AsyncCallbackManagerForChainRunCallbackManagerForChainRun)Field)Chainc                   @   s"  e Zd ZU dZee ed< ee ed< eddZe	e
eef ge
eef f ed< edddZee	e
eef gee
eef  f  ed	< eejedd
ddZeee dddZeee dddZde
eef ee e
eef dddZde
eef ee e
eef dddZdS )TransformChaina  Chain that transforms the chain output.

    Example:
        .. code-block:: python

            from langchain.chains import TransformChain
            transform_chain = TransformChain(input_variables=["text"],
             output_variables["entities"], transform=func())
    input_variablesoutput_variablesZ	transform)aliastransform_cbNZ
atransformatransform_cb)msgreturnc                 C   s   t |  dS )z4Log a message once.

        :meta private:
        N)loggerwarning)r    r   h/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain/chains/transform.py	_log_once(   s    zTransformChain._log_once)r   c                 C   s   | j S )z3Expect input keys.

        :meta private:
        )r   selfr   r   r   
input_keys1   s    zTransformChain.input_keysc                 C   s   | j S )z4Return output keys.

        :meta private:
        )r   r   r   r   r   output_keys9   s    zTransformChain.output_keys)inputsrun_managerr   c                 C   s
   |  |S )N)r   r   r   r   r   r   r   _callA   s    zTransformChain._callc                    s2   | j d ur|  |I d H S | d | |S d S )NzRTransformChain's atransform is not provided, falling back to synchronous transform)r   r   r   r   r   r   r   _acallH   s    
zTransformChain._acall)N)N)__name__
__module____qualname____doc__r   str__annotations__r
   r   r   r   r   r   r   r   staticmethod	functools	lru_cacher   propertyr   r   r	   r    r   r!   r   r   r   r   r      s2   

,
,
 


 

r   )r%   r)   loggingtypingr   r   r   r   r   r   Zlangchain_core.callbacksr   r	   Zpydanticr
   Zlangchain.chains.baser   	getLoggerr"   r   r   r   r   r   r   <module>   s    
