
    /d;	                         d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ 	 d	d
lmZ n# e$ r Y nw xY w G d de          ZdS )    N   )KeyringBackend)PasswordSetError)PasswordDeleteError)KeyringLocked)KeyringError)
properties   )apic                       e Zd ZdZej                            d          Z	 ej	        d             Z
d Zd Zd Zd ZdS )	KeyringzmacOS KeychainKEYCHAIN_PATHc                     t          j                    dk    rt          d          dt                      vrt          d          dS )z7
        Preferred for all macOS environments.
        DarwinzmacOS requiredr   zSecurity API unavailable   )platformsystemRuntimeErrorglobals)clss    ?lib/python3.11/site-packages/keyring/backends/macOS/__init__.pypriorityzKeyring.priority   sM    
 ?( 	1/000		! 	;9:::q    c                 "   |d}	 t          j        | j        |||           d S # t           j        $ r'}t	          d                    |                    d }~wt           j        $ r'}t          d                    |                    d }~ww xY w)N z$Can't store password on keychain: {})r   set_generic_passwordkeychainKeychainDeniedr   formatErrorr   )selfserviceusernamepasswordes        r   set_passwordzKeyring.set_password#   s     	H	X$T]GXxPPPPP! 	U 	U 	U I P PQR S STTTy 	X 	X 	X"#L#S#STU#V#VWWW	Xs    $ B"AB'"B		Bc                 >   |d}	 t          j        | j        ||          S # t           j        $ r Y d S t           j        $ r'}t          d                    |                    d }~wt           j        $ r'}t          d                    |                    d }~ww xY w)Nr   z$Can't get password from keychain: {})	r   find_generic_passwordr   NotFoundr   r   r   r    r   r!   r"   r#   r%   s       r   get_passwordzKeyring.get_password.   s     	H	T,T]GXNNN| 	 	 	DD! 	U 	U 	U I P PQR S STTTy 	T 	T 	THOOPQRRSSS	Ts&   ! BB"A##B5"BBc                     |d}	 t          j        | j        ||          S # t           j        $ r'}t	          d                    |                    d }~ww xY w)Nr   z%Can't delete password in keychain: {})r   delete_generic_passwordr   r    r   r   r*   s       r   delete_passwordzKeyring.delete_password;   so     	H	.t}gxPPPy 	 	 	%:AA!DD  	s   ! A"AAc                 f    t          j        dt          d           |                     |          S )NzGmacOS.Keyring.with_keychain is deprecated. Use with_properties instead.   )
stacklevel)r   )warningswarnDeprecationWarningwith_properties)r!   r   s     r   with_keychainzKeyring.with_keychainF   s=    U	
 	
 	
 	

 ##X#666r   N)__name__
__module____qualname____doc__osenvirongetr   r	   classpropertyr   r&   r+   r.   r6    r   r   r   r      s        z~~o..H/  	X 	X 	XT T T	 	 	7 7 7 7 7r   r   )r   r;   r2   backendr   errorsr   r   r   r   _compatr	   r   r   	Exceptionr   r?   r   r   <module>rD      s     				  % % % % % % & & & & & & ) ) ) ) ) ) # # # # # # " " " " " " ! ! ! ! ! !	 	 	 	D	:7 :7 :7 :7 :7n :7 :7 :7 :7 :7s   9 A A