o
    i
                     @   s   d dl Z 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	m
Z
mZmZ zddlmZ W n	 ey9   Y nw dd	 ZG d
d deZdS )    N   )KeyringBackend)
properties)KeyringErrorKeyringLockedPasswordDeleteErrorPasswordSetError   )apic                    s   t   fdd}|S )Nc                    s*   | j r
tjddd  | g|R i |S )Nz'Specified keychain is ignored. See #623   
stacklevel)keychainwarningswarn)selfargskwargsfunc e/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/keyring/backends/macOS/__init__.pywrapper   s   zwarn_keychain.<locals>.wrapper)	functoolswraps)r   r   r   r   r   warn_keychain   s   r   c                   @   sX   e Zd ZdZejdZ	 ej	dd Z
edd Zedd Zed	d
 Zdd ZdS )KeyringzmacOS KeychainKEYCHAIN_PATHc                 C   s*   t  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)clsr   r   r   priority    s
   
zKeyring.priorityc              
   C   sx   |d u rd}zt | j||| W d S  t jy' } ztd| |d }~w t jy; } ztd| |d }~ww )N z"Can't store password on keychain: )r
   set_generic_passwordr   KeychainDeniedr   Errorr   )r   serviceusernamepassworder   r   r   set_password+   s   zKeyring.set_passwordc              
   C   s   |d u rd}z	t | j||W S  t jy   Y d S  t jy. } ztd| |d }~w t jyB } ztd| |d }~ww )Nr&   z"Can't get password from keychain: )r
   find_generic_passwordr   NotFoundr(   r   r)   r   r   r*   r+   r-   r   r   r   get_password7   s   zKeyring.get_passwordc              
   C   sJ   |d u rd}z	t | j||W S  t jy$ } ztd| |d }~ww )Nr&   z#Can't delete password in keychain: )r
   delete_generic_passwordr   r)   r   r1   r   r   r   delete_passwordE   s   zKeyring.delete_passwordc                 C   s   t jdtdd | j|dS )NzGmacOS.Keyring.with_keychain is deprecated. Use with_properties instead.r   r   )r   )r   r   DeprecationWarningwith_properties)r   r   r   r   r   with_keychainO   s   zKeyring.with_keychainN)__name__
__module____qualname____doc__osenvirongetr   r   classpropertyr%   r   r.   r2   r4   r7   r   r   r   r   r      s    




	r   )r   r<   r    r   backendr   compatr   errorsr   r   r   r   r&   r
   	Exceptionr   r   r   r   r   r   <module>   s    
