
    3fi                         d Z ddlZddlZddlmZmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZ  ej"                  e      Z G d	 d
e      Zy)z-Chain that runs an arbitrary python function.    N)	AwaitableCallable)Any)AsyncCallbackManagerForChainRunCallbackManagerForChainRun)Field)override)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f   gee
eef      f   dz  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e	 dde
eef   dedz  de
eef   fd       Ze	 dde
eef   dedz  de
eef   fd       Zy)TransformChaina  Chain that transforms the chain output.

    Example:
        ```python
        from langchain_classic.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         j                  |        y)zLog a message once.N)loggerwarning)r   s    `/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/langchain_classic/chains/transform.py	_log_oncezTransformChain._log_once+   s     	s    c                     | j                   S )zExpect input keys.)r   selfs    r   
input_keyszTransformChain.input_keys1   s     ###r   c                     | j                   S )zReturn output keys.)r   r   s    r   output_keyszTransformChain.output_keys6   s     $$$r   inputsrun_managerc                 $    | j                  |      S N)r   r   r"   r#   s      r   _callzTransformChain._call;   s       ((r   c                    K   | j                   | j                  |       d {   S | j                  d       | j                  |      S 7 &w)NzRTransformChain's atransform is not provided, falling back to synchronous transform)r   r   r   r&   s      r   _acallzTransformChain._acallC   sQ      )++F333-	
   (( 4s   !AA
'Ar%   )__name__
__module____qualname____doc__liststr__annotations__r   r   r   dictr   r   r   staticmethod	functools	lru_cacher   propertyr   r!   r	   r   r'   r   r)    r   r   r   r      s   	 #Y@3iA?D;?WL(DcN+T#s(^;<W!RWLSM8T#s(^,iS#X.GGH4O  2s t    $DI $ $ %T#Y % %  :>)S#X) 0$6) 
c3h	) )  ?C)S#X) 5t;) 
c3h	) )r   r   )r-   r3   loggingcollections.abcr   r   typingr   langchain_core.callbacksr   r   pydanticr   typing_extensionsr	   langchain_classic.chains.baser
   	getLoggerr*   r   r   r6   r   r   <module>r?      sB    3   /   & /			8	$;)U ;)r   