o
    Jjg2	                     @   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                	   @   s8  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d
eddfddZedee fddZedee fddZ	dde
eef dee de
eef fddZ	dde
eef dee de
eef f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_variables	transform)aliastransform_cbN
atransformatransform_cbmsgreturnc                 C   s   t |  dS )z4Log a message once.

        :meta private:
        N)loggerwarning)r    r   R/var/www/html/zoom/venv/lib/python3.10/site-packages/langchain/chains/transform.py	_log_once(   s   zTransformChain._log_oncec                 C      | j S )z3Expect input keys.

        :meta private:
        )r   selfr   r   r   
input_keys1      zTransformChain.input_keysc                 C   r   )z4Return output keys.

        :meta private:
        )r   r   r   r   r   output_keys9   r   zTransformChain.output_keysinputsrun_managerc                 C   s
   |  |S N)r   r   r!   r"   r   r   r   _callA   s   
zTransformChain._callc                    s0   | j d ur|  |I d H 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._acallr#   )__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      sD   
 
,
,






r   )r*   r.   loggingtypingr   r   r   r   r   r   langchain_core.callbacksr   r	   pydanticr
   langchain.chains.baser   	getLoggerr'   r   r   r   r   r   r   <module>   s     
