
    <[j                         	 d dl Z  e j        dd           d dlmZ n# eeef$ r Y nw xY wd dlmZ d dl	m
Z
 d dlmZmZ  G d d	e
          ZdS )
    NGnomeKeyringz1.0)r   )
properties)KeyringBackend)PasswordDeleteErrorPasswordSetErrorc                   p    e Zd ZdZdZ	 ej        d             Zed             Z	ddZ
d Zd Zd	 ZddZdS )KeyringzGnome KeyringNc                     dt                      vrt          d          t          j                    d         }|t          j        j        k    rt          |j                  dS )Nr   zGnomeKeyring module requiredr      )globalsRuntimeErrorr   get_default_keyring_syncResultOK
value_name)clsresults     Z/home/thesage/.hermes/hermes-agent/venv/lib/python3.11/site-packages/keyrings/alt/Gnome.pypriorityzKeyring.priority   sZ    **=>>>688;\(+++v0111q    c                 F    t          j                    d         }| j        p|S )Nr   )r   r   KEYRING_NAME)selfsystem_defaults     r   keyring_namezKeyring.keyring_name    s#    %>@@C 2N2r   Fc                 f   g }|                      |          }|                      |          }dD ] }t          j                                        }t          j                            ||d         |           t          j                            ||d         |           t          j        t          j        j        |          \  }}|t          j        j	        k    r||z  }|rM|t          j        j
        k    rt          d          |t          j        j        k    rt          |j                  |S ),Get password of the username for the service))usernameservice)userdomainr   r   Cancelled by user)_safe_stringr   	Attributelist_newlist_append_stringfind_items_syncItemTypeNETWORK_PASSWORDr   r   	CANCELLEDr   NO_MATCHr   )	r   r   r   deleting	passwordsattrs_tupleattrsr   itemss	            r   _find_passwordszKeyring._find_passwords%   s"   	##G,,$$X..H 	A 	AK *3355E"55e[^XVVV"55e[^WUUU(8%6 MFE ,///U"		 A\0:::-.ABBB|2;;;-f.?@@@r   c                     |                      ||          }|sdS |d         j        }t          |t                    r|n|                    d          S )r   Nr   utf-8)r1   secret
isinstancestrdecode)r   r   r   r0   r4   s        r   get_passwordzKeyring.get_password;   sT    $$Wh77 	4q#FC00LvvfmmG6L6LLr   c           	         |                      |          }|                      |          }|                      |          }t          j                                        }t          j                            |d|           t          j                            |d|           t          j                            |dd           t          j        | j        t          j        j        d| d| d||d          d	         }|t          j	        j
        k    rt          d
          |t          j	        j        k    rt          |j                  dS )z,Set password for the username of the servicer   r   applicationzpython-keyringzPassword for 'z' on ''Tr   r"   N)r#   r   r$   r%   r&   item_create_syncr   r(   r)   r   r*   r   r   r   )r   r   r   passwordr/   r   s         r   set_passwordzKeyring.set_passwordD   s@   ##G,,$$X..$$X..&//1111%XNNN11%GLLL11="2	
 	
 	
 .!27X77W777
 
  \(222"#6777|*---"6#4555 .-r   c                 :   |                      ||d          }|st          d          |D ]n}t          j        |j        |j                  }|t          j        j        k    rt          d          |t          j        j        k    rt          |j	                  odS )z4Delete the password for the username of the service.T)r,   zPassword not foundr"   N)
r1   r   r   item_delete_synckeyringitem_idr   r*   r   r   )r   r   r   r0   currentr   s         r   delete_passwordzKeyring.delete_password]   s    $$Wh$FF 	<%&:;;; 	= 	=G!27?GOTTF,666)*=>>><.111)&*;<<< 2		= 	=r   r3   c                 t    t          |t                    s|                    |          S t          |          S )z:Convert unicode to string as gnomekeyring barfs on unicode)r5   r6   encode)r   sourceencodings      r   r#   zKeyring._safe_stringi   s2    &#&& 	+==***6{{r   )F)r3   )__name__
__module____qualname____doc__r   r   classpropertyr   propertyr   r1   r8   r>   rD   r#    r   r   r	   r	      s        L
    3 3 X3   ,M M M6 6 62
= 
= 
=     r   r	   )girequire_versiongi.repositoryr   ImportError
ValueErrorAttributeErrorjaraco.classesr   keyring.backendr   keyring.errorsr   r   r	   rO   r   r   <module>rY      s   	IIIB~u---*******Z0 	 	 	D	 & % % % % % * * * * * * @ @ @ @ @ @ @ @_ _ _ _ _n _ _ _ _ _s    ))