o
    #j                     @  s   d dl mZ d dlZd dlmZmZ edZG dd dee ZG dd dee Z	G d	d
 d
ee
 ZG dd dee ZG dd dee ZdS )    )annotationsN)GenericTypeVarTc                   @  sP   e Zd ZU ded< ded< dddZddd	ZdddZdddZdddZdS )EnvironmentVariablestrnamer   defaultc                 C  s   || _ || _d S N)r   r	   selfr   r	    r   Z/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddle/utils/environments.py__init__   s   
zEnvironmentVariable.__init__returnc                 C     t  r
   NotImplementedErrorr   r   r   r   get      zEnvironmentVariable.getvalueNonec                 C  r   r
   r   r   r   r   r   r   set"   r   zEnvironmentVariable.setc                 C  s   t j| j= d S r
   )osenvironr   r   r   r   r   delete%   s   zEnvironmentVariable.deletec                 C  s   d| j  d|  dS )NzEnv(=))r   r   r   r   r   r   __repr__(   s   zEnvironmentVariable.__repr__N)r   r   r	   r   )r   r   )r   r   r   r   r   r   r   r   )	__name__
__module____qualname____annotations__r   r   r   r   r    r   r   r   r   r      s   
 



r   c                      s2   e Zd Zd fddZdddZdddZ  ZS )StringEnvironmentVariabler   r   r	   c                   $   t  || t|tsJ dd S )Nzdefault must be a string)superr   
isinstancer   r   	__class__r   r   r   -      z"StringEnvironmentVariable.__init__r   c                 C  s   t | j| jS r
   )r   getenvr   r	   r   r   r   r   r   1   s   zStringEnvironmentVariable.getr   r   c                 C  s"   t |ts	J d|tj| j< d S )Nzvalue must be a string)r*   r   r   r   r   r   r   r   r   r   4   s   zStringEnvironmentVariable.set)r   r   r	   r   r"   )r   r   r   r   r#   r$   r%   r   r   r   __classcell__r   r   r+   r   r'   ,   s    
r'   c                      s6   e Zd ZdZd fddZdd	d
ZdddZ  ZS )BooleanEnvironmentVariable)yyesttrueon1r   r   r	   boolc                   r(   )Nzdefault must be a boolean)r)   r   r*   r8   r   r+   r   r   r   <   r-   z#BooleanEnvironmentVariable.__init__r   c                 C  s*   t | j }t| j| }|tjv S r
   )r   r	   lowerr   r.   r   r1   BOOLEAN_IS_SET)r   r	   Zenv_strr   r   r   r   @   s   
zBooleanEnvironmentVariable.getr   r   c                 C  s*   t |ts	J dt| tj| j< d S )Nzvalue must be a boolean)r*   r8   r   r9   r   r   r   r   r   r   r   r   E   s   zBooleanEnvironmentVariable.set)r   r   r	   r8   )r   r8   )r   r8   r   r   )r#   r$   r%   r:   r   r   r   r0   r   r   r+   r   r1   9   s
    
r1   c                      s2   e Zd Zd fddZddd	ZdddZ  ZS )IntegerEnvironmentVariabler   r   r	   intc                   s.   t  || t|trt|trJ dd S )Nzdefault must be an integer)r)   r   r*   r<   r8   r   r+   r   r   r   K   s   z#IntegerEnvironmentVariable.__init__r   c                 C  s4   zt t| jt| jW S  ty   | j Y S w r
   )r<   r   r.   r   r   r	   
ValueErrorr   r   r   r   r   Q   s
   
zIntegerEnvironmentVariable.getr   r   c                 C  s0   t |tr
t |trJ dt|tj| j< d S )Nzvalue must be an integer)r*   r<   r8   r   r   r   r   r   r   r   r   r   W   s   zIntegerEnvironmentVariable.set)r   r   r	   r<   )r   r<   )r   r<   r   r   r/   r   r   r+   r   r;   J   s    
r;   c                   @  s<   e Zd ZU ded< ded< dddZdd	d
ZdddZdS )EnvironmentVariableGuardEnvironmentVariable[T]variabler   original_valuer   c                 C  s    || _ | | _| j | d S r
   )r@   r   rA   r   )r   r@   r   r   r   r   r   b   s   
z!EnvironmentVariableGuard.__init__r   c                 C  s   | S r
   r   r   r   r   r   	__enter__g   s   z"EnvironmentVariableGuard.__enter__r   c                 C  s   | j | j d S r
   )r@   r   rA   )r   exc_type	exc_value	tracebackr   r   r   __exit__j   s   z!EnvironmentVariableGuard.__exit__N)r@   r?   r   r   )r   r>   r!   )r#   r$   r%   r&   r   rB   rF   r   r   r   r   r>   ^   s   
 

r>   )
__future__r   r   typingr   r   r   r   r   r'   r8   r1   r<   r;   r>   r   r   r   r   <module>   s   