a
    ù!fþ  ã                   @  sf   d dl mZ d dlmZmZ d dlmZmZmZm	Z	 d dl
mZmZ edƒZG dd„ dee eƒZdS )	é    )Úannotations)ÚABCÚabstractmethod)ÚGenericÚTypeVarÚIterableÚcast)ÚClassVarÚoverrideÚTc                   @  sÆ   e Zd ZU dZdZded< ddœdd„Zd	d
dœdd„Zed	dœdd„ƒZ	ed	dœdd„ƒZ
eddœdd„ƒZeeddœdd„ƒƒZddœdd„Zdddœdd„Zddœdd„Zeddœd d!„ƒZd"S )#Ú	LazyProxyzŽImplements data methods to pretend that an instance is another instance.

    This includes forwarding attribute access and othe methods.
    FzClassVar[bool]Úshould_cacheÚNone)Úreturnc                 C  s
   d | _ d S ©N©Ú_LazyProxy__proxied©Úself© r   úU/var/www/html/python-backend/venv/lib/python3.9/site-packages/openai/_utils/_proxy.pyÚ__init__   s    zLazyProxy.__init__ÚstrÚobject)Úattrr   c                 C  s    |   ¡ }t|tƒr|S t||ƒS r   )Ú__get_proxied__Ú
isinstancer   Úgetattr)r   r   Úproxiedr   r   r   Ú__getattr__   s    
zLazyProxy.__getattr__c                 C  s&   |   ¡ }t|tƒr|jjS t|   ¡ ƒS r   )r   r   r   Ú	__class__Ú__name__Úrepr©r   r   r   r   r   Ú__repr__   s    
zLazyProxy.__repr__c                 C  s"   |   ¡ }t|tƒr|jjS t|ƒS r   )r   r   r   r    r!   r   r#   r   r   r   Ú__str__%   s    
zLazyProxy.__str__zIterable[str]c                 C  s   |   ¡ }t|tƒrg S | ¡ S r   )r   r   r   Ú__dir__r#   r   r   r   r&   ,   s    
zLazyProxy.__dir__Útypec                 C  s$   |   ¡ }tt|ƒtƒrt|ƒS |jS r   )r   Ú
issubclassr'   r   r    r#   r   r   r   r    3   s    zLazyProxy.__class__r   c                 C  s2   | j s|  ¡ S | j}|d ur |S |  ¡  | _}|S r   )r   Ú__load__r   r#   r   r   r   r   ;   s    zLazyProxy.__get_proxied__)Úvaluer   c                 C  s
   || _ d S r   r   )r   r*   r   r   r   Ú__set_proxied__F   s    zLazyProxy.__set_proxied__c                 C  s
   t t| ƒS )zHHelper method that returns the current proxy, typed as the loaded object)r   r   r   r   r   r   Ú__as_proxied__I   s    zLazyProxy.__as_proxied__c                 C  s   d S r   r   r   r   r   r   r)   M   s    zLazyProxy.__load__N)r!   Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r
   r$   r%   r&   Úpropertyr    r   r+   r,   r   r)   r   r   r   r   r   
   s$   
r   N)Ú
__future__r   Úabcr   r   Útypingr   r   r   r   Ztyping_extensionsr	   r
   r   r   r   r   r   r   Ú<module>   s
   