+
    ei,  c                  s    ^ 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# )i    )annotationsNc                  sz    ] 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 Zformat   "8/usr/lib/python3.14/site-packages/keyring/credentials.py__annotate__Credential.__annotate__       ""#"    c                	    R # Nr   self   &r
   usernameZCredential.username
       "r   c               r   r   r   r   r	   r
   r   r      r   r   c                	r   r   r   r   r   r
   passwordZCredential.password   r   r   c               r   r   r   zdict[str, str]r   r   r	   r
   r   r      s     D D~ Dr   c                	sD    \        V P                  V P                  R 7      # ))r   r   )dictr   r   r   r   r
   _varsZCredential._vars   s    T]]T]]CCr   r   N)__name__
__module____qualname____firstlineno____doc__abcZabstractpropertyr   r   r   __static_attributes__r   r   r
   r   r      s9    ." "" "D Dr   r   )Z	metaclassc                  sR    ] 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   r	   r
   r   SimpleCredential.__annotate__   s     " " " "r   c                	    Wn         W n        R # r   )	_username	_password)r   r   r      &&&r
   __init__ZSimpleCredential.__init__   s    !!r   c               r   r   r   r   r	   r
   r   r#            # r   c                	    V P                   # r   )r%   r   r   r
   r   ZSimpleCredential.username       ~~r   c               r   r   r   r   r	   r
   r   r#       r)   r   c                	r*   r   r&   r   r   r
   r   ZSimpleCredential.password   r+   r   )r&   r%   N)
r   r   r   r   r   r(   propertyr   r   r    r   r   r
   r!   r!      s2    +"    r   r!   c                  sD    ] tR t^$tR R lt]R R l4       tR R ltRtR# )	AnonymousCredentialc               r   )r   r   r   r   r   r	   r
   r    AnonymousCredential.__annotate__%   s     " " "r   c                	s    Wn         R # r   r,   )r   r      &&r
   r(   ZAnonymousCredential.__init__%   s    !r   c               r   r   r   r   r	   r
   r   r/   )   s     A A# Ar   c                	s    \        R 4      h)z$Anonymous credential has no username)
ValueErrorr   r   r
   r   ZAnonymousCredential.username(   s    ?@@r   c               r   r   r   r   r	   r
   r   r/   ,   s     , ,~ ,r   c                	s.    \        V P                  R 7      # ))r   )r   r   r   r   r
   r   ZAnonymousCredential._vars,   s    T]]++r   r,   N)	r   r   r   r   r(   r-   r   r   r    r   r   r
   r.   r.   $   s'    " A A, ,r   r.   c                  sj    ] 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               r"   )r   user_env_varr   pwd_env_varr   r   r	   r
   r   EnvironCredential.__annotate__A   s     ' 'S 's 'r   c                	r$   r   )r3   r4   )r   r3   r4   r'   r
   r(   ZEnvironCredential.__init__A   s    (&r   c               s     V ^8  d   QhRRRR/# )r   otherZobjectr   Zboolr   r   r	   r
   r   r5   E   s     ) )F )t )r   c                	s0    \        V 4      \        V4      8H  # r   )Zvars)r   r6   r0   r
   __eq__ZEnvironCredential.__eq__E   s    DzT%[((r   c               r"   )r   env_varr   r   r   r   r	   r
   r   r5   H   s        r   c                sp    \         P                  P                  V4      pV'       g   \        RV 24      hV# )z&Helper to read an environment variablezMissing environment variable:)osZenvironZgetr1   )r   r8   Zvalues   && r
   _get_envZEnvironCredential._get_envH   s/    

w'<WIFGGr   c               r   r   r   r   r	   r
   r   r5   P   s     0 0# 0r   c                	8    V P                  V P                  4      # r   )r:   r3   r   r   r
   r   ZEnvironCredential.usernameO   s    }}T..//r   c               r   r   r   r   r	   r
   r   r5   T   s     / /# /r   c                	r;   r   )r:   r4   r   r   r
   r   ZEnvironCredential.passwordS   s    }}T--..r   )r4   r3   N)r   r   r   r   r   r(   r7   r:   r-   r   r   r    r   r   r
   r2   r2   0   s>     ') 0 0 / /r   r2   )	Z
__future__r    r   r9   ZABCMetar   r!   r.   r2   r   r   r
   <module>r<      sE    " 
 	
D3;; 
Dz  	,* 	,%/
 %/r   