
    Ng2	                         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j        e          Z G 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            	          e Zd ZU dZee         ed<   	 ee         ed<   	  ed          Ze	e
eef         ge
eef         f         ed<   	  e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                        Zedee         fd            Zedee         fd            Z	 dde
eef         dee         de
eef         fdZ	 dde
eef         dee         de
eef         f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                 :    t                               |            dS )z4Log a message once.

        :meta private:
        N)loggerwarning)r   s    V/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain/chains/transform.py	_log_oncezTransformChain._log_once(   s     	s    c                     | j         S )z3Expect input keys.

        :meta private:
        )r   selfs    r   
input_keyszTransformChain.input_keys1   s     ##r   c                     | j         S )z4Return output keys.

        :meta private:
        )r   r   s    r   output_keyszTransformChain.output_keys9   s     $$r   inputsrun_managerc                 ,    |                      |          S N)r   r    r$   r%   s      r   _callzTransformChain._callA   s    
   (((r   c                    K   | j         |                      |           d {V S |                     d           |                     |          S )NzRTransformChain's atransform is not provided, falling back to synchronous transform)r   r   r   r(   s      r   _acallzTransformChain._acallH   sh      
 )++F333333333NN1   $$V,,,r   r'   )__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      s          #Y@3iA?Du;?W?W?WL(DcN+T#s(^;<WWW!d,''' 8Hd38n%5yc3h7P%PQR    2s t     \ $DI $ $ $ X$ %T#Y % % % X% =A) )S#X) 89) 
c3h	) ) ) ) BF- -S#X- =>- 
c3h	- - - - - -r   r   )r/   r3   loggingtypingr   r   r   r   r   r   langchain_core.callbacksr	   r
   pydanticr   langchain.chains.baser   	getLoggerr,   r   r   r6   r   r   <module>r=      s    3 3      A A A A A A A A A A A A A A A A              ' ' ' ' ' '		8	$	$B- B- B- B- B-U B- B- B- B- B-r   