
    k7i,                        S SK Jr  S SKrS SKr " S S\R                  S9r " S S\5      r " S S	\5      r " S
 S\5      rg)    )annotationsNc                  r    \ rS rSrSr\R                  SS j5       r\R                  SS j5       rS	S jr	Sr
g)

Credential   z$Abstract class to manage credentialsc                    g N selfs    M/home/james-whalen/.local/lib/python3.13/site-packages/keyring/credentials.pyusernameCredential.username
       "    c                    g r   r	   r
   s    r   passwordCredential.password   r   r   c                >    [        U R                  U R                  S9$ )N)r   r   )dictr   r   r
   s    r   _varsCredential._vars   s    T]]T]]CCr   r	   Nreturnstrr   zdict[str, str])__name__
__module____qualname____firstlineno____doc__abcabstractpropertyr   r   r   __static_attributes__r	   r   r   r   r      s3    ." "" "Dr   r   )	metaclassc                  J    \ rS rSrSrSS jr\S	S j5       r\S	S j5       rSr	g)
SimpleCredential   z!Simple credentials implementationc                    Xl         X l        g r   )	_username	_password)r   r   r   s      r   __init__SimpleCredential.__init__   s    !!r   c                    U R                   $ r   )r)   r
   s    r   r   SimpleCredential.username       ~~r   c                    U R                   $ r   r*   r
   s    r   r   SimpleCredential.password   r/   r   )r*   r)   N)r   r   r   r   r   )
r   r   r   r   r    r+   propertyr   r   r#   r	   r   r   r&   r&      s2    +"    r   r&   c                  <    \ rS rSrSS jr\SS j5       rS	S jrSrg)
AnonymousCredential$   c                    Xl         g r   r1   )r   r   s     r   r+   AnonymousCredential.__init__%   s    !r   c                    [        S5      e)Nz$Anonymous credential has no username)
ValueErrorr
   s    r   r   AnonymousCredential.username(   s    ?@@r   c                (    [        U R                  S9$ )N)r   )r   r   r
   s    r   r   AnonymousCredential._vars,   s    T]]++r   r1   N)r   r   r   r   )	r   r   r   r   r+   r3   r   r   r#   r	   r   r   r5   r5   $   s"    " A A,r   r5   c                  ^    \ rS rSrSrS
S jrSS jrSS jr\SS j5       r	\SS j5       r
Srg	)EnvironCredential0   a  
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
c                    Xl         X l        g r   )user_env_varpwd_env_var)r   rB   rC   s      r   r+   EnvironCredential.__init__A   s    (&r   c                0    [        U 5      [        U5      :H  $ r   )vars)r   others     r   __eq__EnvironCredential.__eq__E   s    DzT%[((r   c                n    [         R                  R                  U5      nU(       d  [        SU 35      eU$ )z&Helper to read an environment variablezMissing environment variable:)osenvirongetr:   )r   env_varvalues      r   _get_envEnvironCredential._get_envH   s/    

w'<WIFGGr   c                8    U R                  U R                  5      $ r   )rP   rB   r
   s    r   r   EnvironCredential.usernameO   s    }}T..//r   c                8    U R                  U R                  5      $ r   )rP   rC   r
   s    r   r   EnvironCredential.passwordS   s    }}T--..r   )rC   rB   N)rB   r   rC   r   )rG   objectr   bool)rN   r   r   r   r   )r   r   r   r   r    r+   rH   rP   r3   r   r   r#   r	   r   r   r?   r?   0   s>     ') 0 0 / /r   r?   )	
__future__r   r!   rK   ABCMetar   r&   r5   r?   r	   r   r   <module>rZ      sE    " 
 	
D3;; 
Dz  	,* 	,%/
 %/r   