
    Ah 	                         S r SSKrSSKrSSKJr  SSKJrJrJr  SSK	J
r
Jr  SSKJr  SSKJr  \R                   " \5      r " S S	\5      rg)
z-Chain that runs an arbitrary python function.    N)	Awaitable)AnyCallableOptional)AsyncCallbackManagerForChainRunCallbackManagerForChainRun)Field)Chainc            	          \ rS rSr% Sr\\   \S'    \\   \S'    \" SS9r	\
\\\4   /\\\4   4   \S'    \" SS	S9r\\
\\\4   /\\\\4      4      \S
'    \\R$                  S\SS4S j5       5       r\S\\   4S j5       r\S\\   4S j5       r SS\\\4   S\\   S\\\4   4S jjr SS\\\4   S\\   S\\\4   4S jjrSrg)TransformChain   zChain 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                 .    [         R                  U 5        g)z$Log a message once.

:meta private:
N)loggerwarning)r   s    R/var/www/html/shao/venv/lib/python3.13/site-packages/langchain/chains/transform.py	_log_onceTransformChain._log_once)   s     	s    c                     U R                   $ )z#Expect input keys.

:meta private:
)r   selfs    r   
input_keysTransformChain.input_keys2   s     ###r   c                     U R                   $ )z$Return output keys.

:meta private:
)r   r   s    r   output_keysTransformChain.output_keys:   s     $$$r   inputsrun_managerc                 $    U R                  U5      $ N)r   r    r&   r'   s      r   _callTransformChain._callB   s    
   ((r   c                    #    U R                   b  U R                  U5      I S h  vN $ U R                  S5        U R                  U5      $  N&7f)NzRTransformChain's atransform is not provided, falling back to synchronous transform)r   r   r   r*   s      r   _acallTransformChain._acallI   sP     
 )++F333-	
   (( 4s   "AA'A r)   )__name__
__module____qualname____firstlineno____doc__liststr__annotations__r	   r   r   dictr   r   r   r   staticmethod	functools	lru_cacher   propertyr!   r$   r   r+   r   r.   __static_attributes__r0   r   r   r   r      s    #Y@3iA?D;?WL(DcN+T#s(^;<W!d,' 8Hd38n%5yc3h7P%PQR  2s t    $DI $ $ %T#Y % % =A)S#X) 89) 
c3h	) BF)S#X) =>) 
c3h	) )r   r   )r5   r;   loggingcollections.abcr   typingr   r   r   langchain_core.callbacksr   r   pydanticr	   langchain.chains.baser
   	getLoggerr1   r   r   r0   r   r   <module>rF      sB    3   % * *  '			8	$A)U A)r   