a
    wf                     @   sx   d dl Z d dlZd dlmZ d dlmZmZmZ d dlm	Z	 erLd dl
mZ G dd dZdd	ee	ee d
ddZdS )    N)wraps)TYPE_CHECKINGCallableOptional)Environment)BaseLiteralClientc                   @   sF   e Zd ZddedddZdd Zdd	 Zd
d Zdd Zdd Z	dS )EnvContextManagerprodr   clientenvc                 C   s    || _ || _tjdd| _d S )NLITERAL_ENV )r   r   osenvirongetoriginal_env)selfr   r    r   d/var/www/html/micrositios/openai-assistant/venv/lib/python3.9/site-packages/literalai/environment.py__init__   s    zEnvContextManager.__init__c                 C   s   t | j|| dS )N)funcctx_manager)env_decoratorr   )r   r   r   r   r   __call__   s
    zEnvContextManager.__call__c                    s   | j tjd< d S Nr   r   r   r   r   r   r   r   
__aenter__   s    zEnvContextManager.__aenter__c                    s   | j t_d S Nr   r   r   r   exc_typeZexc_valZexc_tbr   r   r   	__aexit__   s    zEnvContextManager.__aexit__c                 C   s   | j tjd< d S r   r   r   r   r   r   	__enter__   s    zEnvContextManager.__enter__c                 C   s   | j tjd< d S r   r    r!   r   r   r   __exit__"   s    zEnvContextManager.__exit__N)r	   )
__name__
__module____qualname__r   r   r   r   r#   r$   r%   r   r   r   r   r      s   r   r	   r   )r   r   r   r   c                    sZ    st f | |d| tr<t fdd}|S t fdd}|S d S )Nr
   c                     s@    ( | i |I d H }|W  d    S 1 s20    Y  d S r   r   )argskwargsresultr   r   r   r   async_wrapper7   s    z$env_decorator.<locals>.async_wrapperc                     s6     | i |W  d    S 1 s(0    Y  d S r   r   )r)   r*   r,   r   r   sync_wrapper@   s    z#env_decorator.<locals>.sync_wrapper)r   inspectiscoroutinefunctionr   )r   r   r   r   Zdecorator_kwargsr-   r.   r   r,   r   r   &   s    
r   )r	   N)r/   r   	functoolsr   typingr   r   r   Zliteralai.my_typesr   Zliteralai.clientr   r   r   r   r   r   r   <module>   s     