o
    + iK                     @  s   d dl mZ d dlZd dlmZmZ d dlmZ edZd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e  ZG dd dee ZdS )    )annotationsN)GenericTypeVar)SelfTc                 C  s.   |   } | dv r
dS | dv rdS td| )N)yyesttrueon1T)nnoffalseoff0FzInvalid truth value )lower
ValueError)val r   e/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/paddle/utils/environments.py	strtobool   s   r   c                   @  sd   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ddZ	dddZ
dS )EnvironmentVariablestrnamer   defaultc                 C  s   || _ || _d | _d | _d S N)r   r   _last_env_value_cached_valueselfr   r   r   r   r   __init__'   s   
zEnvironmentVariable.__init__returnc                 C  s6   t | j}| jd u s| j|kr|  | _|| _| jS r   )osgetenvr   r   r   parse_from_string)r!   Z_current_env_valuer   r   r   get-   s   


zEnvironmentVariable.getvalueNonec                 C  s   |  |tj| j< || _d S r   )convert_to_stringr$   environr   r   r!   r(   r   r   r   set7   s   
zEnvironmentVariable.setc                 C     t r   NotImplementedErrorr!   r   r   r   r&   ;      z%EnvironmentVariable.parse_from_stringc                 C  r.   r   r/   r,   r   r   r   r*   >   r2   z%EnvironmentVariable.convert_to_stringc                 C  s   t j| j= d S r   )r$   r+   r   r1   r   r   r   deleteA   s   zEnvironmentVariable.deletec                 C  s   d| j  d|  dS )NzEnv(=))r   r'   r1   r   r   r   __repr__D   s   zEnvironmentVariable.__repr__N)r   r   r   r   )r#   r   )r(   r   r#   r)   )r(   r   r#   r   r#   r)   r#   r   )__name__
__module____qualname____annotations__r"   r'   r-   r&   r*   r3   r6   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"   I      z"StringEnvironmentVariable.__init__r#   c                 C  s   t | j| jS r   )r$   r%   r   r   r1   r   r   r   r&   M   s   z+StringEnvironmentVariable.parse_from_stringr(   c                 C  s   t |ts	J d|S )Nzvalue must be a stringr@   r   r,   r   r   r   r*   P   s   z+StringEnvironmentVariable.convert_to_string)r   r   r   r   r8   )r(   r   r#   r   r9   r:   r;   r"   r&   r*   __classcell__r   r   rA   r   r=   H       
r=   c                      s<   e Zd Zd fddZddd	ZdddZdddZ  ZS )BooleanEnvironmentVariabler   r   r   boolc                   r>   )Nzdefault must be a boolean)r?   r"   r@   rI   r    rA   r   r   r"   V   rC   z#BooleanEnvironmentVariable.__init__r#   c                 C  s    t | j}t| j|}t|S r   )r   r   r$   r%   r   r   )r!   r   Zenv_strr   r   r   r&   Z   s   
z,BooleanEnvironmentVariable.parse_from_stringr(   c                 C  s   t |ts	J dt| S )Nzvalue must be a boolean)r@   rI   r   r   r,   r   r   r   r*   _   s   z,BooleanEnvironmentVariable.convert_to_stringc                 C  s   t d)NzMBooleanEnvironmentVariable does not support bool(), please use get() instead.)r   r1   r   r   r   __bool__c   s   z#BooleanEnvironmentVariable.__bool__)r   r   r   rI   )r#   rI   )r(   rI   r#   r   )r9   r:   r;   r"   r&   r*   rJ   rF   r   r   rA   r   rH   U   s
    

rH   c                      2   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@   rM   rI   r    rA   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   )rM   r$   r%   r   r   r   r   r1   r   r   r   r&   q   s
   
z,IntegerEnvironmentVariable.parse_from_stringr(   c                 C  s$   t |tr
t |trJ dt|S )Nzvalue must be an integer)r@   rM   rI   r   r,   r   r   r   r*   w   s   z,IntegerEnvironmentVariable.convert_to_string)r   r   r   rM   )r#   rM   )r(   rM   r#   r   rE   r   r   rA   r   rL   j   s    
rL   c                      rK   )StringListEnvironmentVariabler   r   r   	list[str]c                   r>   )Nzdefault must be a list)r?   r"   r@   listr    rA   r   r   r"      rC   z&StringListEnvironmentVariable.__init__r#   c                 C  s   t | jd| jdS )N,)r$   r%   r   joinr   splitr1   r   r   r   r&      s   z/StringListEnvironmentVariable.parse_from_stringr(   c                 C  s6   t |ts	J dtdd |D sJ dd|S )Nzvalue must be a listc                 s  s    | ]}t |tV  qd S r   rD   ).0xr   r   r   	<genexpr>   s    zBStringListEnvironmentVariable.convert_to_string.<locals>.<genexpr>zvalue must be a list of stringsrQ   )r@   rP   allrR   r,   r   r   r   r*      s
   
z/StringListEnvironmentVariable.convert_to_string)r   r   r   rO   )r#   rO   )r(   rO   r#   r   rE   r   r   rA   r   rN   ~   rG   rN   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   )rZ   r'   r[   r-   )r!   rZ   r(   r   r   r   r"      s   
z!EnvironmentVariableGuard.__init__r#   r   c                 C  s   | S r   r   r1   r   r   r   	__enter__   r2   z"EnvironmentVariableGuard.__enter__r)   c                 C  s   | j | j d S r   )rZ   r-   r[   )r!   exc_type	exc_value	tracebackr   r   r   __exit__   s   z!EnvironmentVariableGuard.__exit__N)rZ   rY   r(   r   )r#   r   r7   )r9   r:   r;   r<   r"   r\   r`   r   r   r   r   rX      s   
 

rX   )
__future__r   r$   typingr   r   Ztyping_extensionsr   r   r   r   r   r=   rI   rH   rM   rL   rP   rN   rX   r   r   r   r   <module>   s   
%