o
    Vh,                     @  sd   d dl mZ d dlZd dlZG dd dejdZG dd deZG dd	 d	eZG d
d deZdS )    )annotationsNc                   @  s:   e Zd ZdZejdddZejdddZdd	d
ZdS )
Credentialz$Abstract class to manage credentialsreturnstrc                 C     d S N selfr   r   g/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/keyring/credentials.pyusername
      zCredential.usernamec                 C  r   r   r   r	   r   r   r   password   r   zCredential.passworddict[str, str]c                 C  s   t | j| jdS )N)r   r   )dictr   r   r	   r   r   r   _vars      zCredential._varsNr   r   r   r   )	__name__
__module____qualname____doc__abcabstractpropertyr   r   r   r   r   r   r   r      s    r   )	metaclassc                   @  s6   e Zd ZdZdddZeddd	Zedd
dZdS )SimpleCredentialz!Simple credentials implementationr   r   r   c                 C     || _ || _d S r   )	_username	_password)r
   r   r   r   r   r   __init__      
zSimpleCredential.__init__r   c                 C     | j S r   )r   r	   r   r   r   r         zSimpleCredential.usernamec                 C  r"   r   r   r	   r   r   r   r      r#   zSimpleCredential.passwordN)r   r   r   r   r   )r   r   r   r   r    propertyr   r   r   r   r   r   r      s    
r   c                   @  s.   e Zd ZdddZedddZdd	d
ZdS )AnonymousCredentialr   r   c                 C  s
   || _ d S r   r$   )r
   r   r   r   r   r    %   s   
zAnonymousCredential.__init__r   c                 C  s   t d)Nz$Anonymous credential has no username)
ValueErrorr	   r   r   r   r   (   s   zAnonymousCredential.usernamer   c                 C  s   t | jdS )N)r   )r   r   r	   r   r   r   r   ,   s   zAnonymousCredential._varsN)r   r   r   r   )r   r   r   r    r%   r   r   r   r   r   r   r&   $   s
    
r&   c                   @  sJ   e Zd ZdZdddZdddZdddZedddZedddZ	dS )EnvironCredentialaA  
    Source credentials from environment variables.

    Actual sourcing is deferred until requested.

    Supports comparison by equality.

    >>> e1 = EnvironCredential('a', 'b')
    >>> e2 = EnvironCredential('a', 'b')
    >>> e3 = EnvironCredential('a', 'c')
    >>> e1 == e2
    True
    >>> e2 == e3
    False
    user_env_varr   pwd_env_varc                 C  r   r   )r)   r*   )r
   r)   r*   r   r   r   r    A   r!   zEnvironCredential.__init__otherobjectr   boolc                 C  s   t | t |kS r   )vars)r
   r+   r   r   r   __eq__E   r   zEnvironCredential.__eq__env_varc                 C  s"   t j|}|std| |S )z&Helper to read an environment variablezMissing environment variable:)osenvirongetr'   )r
   r0   valuer   r   r   _get_envH   s   zEnvironCredential._get_envc                 C     |  | jS r   )r5   r)   r	   r   r   r   r   O      zEnvironCredential.usernamec                 C  r6   r   )r5   r*   r	   r   r   r   r   S   r7   zEnvironCredential.passwordN)r)   r   r*   r   )r+   r,   r   r-   )r0   r   r   r   r   )
r   r   r   r   r    r/   r5   r%   r   r   r   r   r   r   r(   0   s    


r(   )	
__future__r   r   r1   ABCMetar   r   r&   r(   r   r   r   r   <module>   s    