o
    Zh2	                     @   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_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   Q/var/www/html/lang_env/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   Zlangchain_core.callbacksr   r	   Zpydanticr
   Zlangchain.chains.baser   	getLoggerr%   r   r   r   r   r   r   <module>   s     
