+
    Z8i,                        ^ RI Ht ^ RIt^ RIt ! R R]P                  R7      t ! R R]4      t ! R R	]4      t ! R
 R]4      tR# )    )annotationsNc                  z    ] tR t^tRt]P                  R R l4       t]P                  R R l4       tR R lt	Rt
R	# )

Credentialz$Abstract class to manage credentialsc                   V ^8  d   QhRR/#    returnstr )formats   "3lib/python3.14/site-packages/keyring/credentials.py__annotate__Credential.__annotate__       ""#"    c                	    R # Nr   selfs   &r   usernameCredential.username
       "r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      r   r   c                	    R # r   r   r   s   &r   passwordCredential.password   r   r   c                   V ^8  d   QhRR/# r   r	   zdict[str, str]r   )r   s   "r   r   r      s     D D~ Dr   c                	D    \        V P                  V P                  R 7      # ))r   r   )dictr   r   r   s   &r   _varsCredential._vars   s    T]]T]]CCr   r   N)__name__
__module____qualname____firstlineno____doc__abcabstractpropertyr   r   r!   __static_attributes__r   r   r   r   r      s9    ." "" "D Dr   r   )	metaclassc                  R    ] tR t^tRtR R lt]R R l4       t]R R l4       tRt	R	# )
SimpleCredentialz!Simple credentials implementationc                    V ^8  d   QhRRRR/# )r   r   r
   r   r   )r   s   "r   r   SimpleCredential.__annotate__   s     " " " "r   c                	    Wn         W n        R # r   )	_username	_password)r   r   r   s   &&&r   __init__SimpleCredential.__init__   s    !!r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r/            # r   c                	    V P                   # r   )r1   r   s   &r   r   SimpleCredential.username       ~~r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r/       r6   r   c                	    V P                   # r   r2   r   s   &r   r   SimpleCredential.password   r9   r   )r2   r1   N)
r#   r$   r%   r&   r'   r3   propertyr   r   r*   r   r   r   r-   r-      s2    +"    r   r-   c                  D    ] tR t^$tR R lt]R R l4       tR R ltRtR# )	AnonymousCredentialc                   V ^8  d   QhRR/# )r   r   r
   r   )r   s   "r   r    AnonymousCredential.__annotate__%   s     " " "r   c                	    Wn         R # r   r<   )r   r   s   &&r   r3   AnonymousCredential.__init__%   s    !r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rB   )   s     A A# Ar   c                	    \        R 4      h)z$Anonymous credential has no username)
ValueErrorr   s   &r   r   AnonymousCredential.username(   s    ?@@r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rB   ,   s     , ,~ ,r   c                	.    \        V P                  R 7      # ))r   )r    r   r   s   &r   r!   AnonymousCredential._vars,   s    T]]++r   r<   N)	r#   r$   r%   r&   r3   r>   r   r!   r*   r   r   r   r@   r@   $   s'    " A A, ,r   r@   c                  j    ] tR t^0tRtR R ltR R ltR R lt]R R	 l4       t	]R
 R l4       t
RtR# )EnvironCredentiala  
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                    V ^8  d   QhRRRR/# )r   user_env_varr
   pwd_env_varr   )r   s   "r   r   EnvironCredential.__annotate__A   s     ' 'S 's 'r   c                	    Wn         W n        R # r   )rO   rP   )r   rO   rP   s   &&&r   r3   EnvironCredential.__init__A   s    (&r   c                    V ^8  d   QhRRRR/# )r   otherobjectr	   boolr   )r   s   "r   r   rQ   E   s     ) )F )t )r   c                	0    \        V 4      \        V4      8H  # r   )vars)r   rU   s   &&r   __eq__EnvironCredential.__eq__E   s    DzT%[((r   c                    V ^8  d   QhRRRR/# )r   env_varr
   r	   r   )r   s   "r   r   rQ   H   s        r   c                p    \         P                  P                  V4      pV'       g   \        RV 24      hV# )z&Helper to read an environment variablezMissing environment variable:)osenvirongetrG   )r   r]   values   && r   _get_envEnvironCredential._get_envH   s/    

w'<WIFGGr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rQ   P   s     0 0# 0r   c                	8    V P                  V P                  4      # r   )rc   rO   r   s   &r   r   EnvironCredential.usernameO   s    }}T..//r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rQ   T   s     / /# /r   c                	8    V P                  V P                  4      # r   )rc   rP   r   s   &r   r   EnvironCredential.passwordS   s    }}T--..r   )rP   rO   N)r#   r$   r%   r&   r'   r3   rZ   rc   r>   r   r   r*   r   r   r   rM   rM   0   s>     ') 0 0 / /r   rM   )	
__future__r   r(   r_   ABCMetar   r-   r@   rM   r   r   r   <module>rm      sE    " 
 	
D3;; 
Dz  	,* 	,%/
 %/r   