File: //lib/python3/dist-packages/keyring/backends/macOS/__pycache__/__init__.cpython-310.pyc
o
���a( � @ s� d dl Z d dlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m
Z
zd d
lmZ W n e
y= Y nw G dd� de�ZdS )
� N� )�KeyringBackend)�PasswordSetError)�PasswordDeleteError)�
KeyringLocked)�KeyringError)�
properties� )�apic @ sH e Zd ZdZej�d�Z ej e
dd� ��Zdd� Zdd� Z
d d
� ZdS )�KeyringzmacOS Keychain�
KEYCHAIN_PATHc C s* t �� dkr
td��dt� vrtd��dS )z7
Preferred for all macOS environments.
�DarwinzmacOS requiredr
zSecurity API unavailable� )�platform�system�RuntimeError�globals)�cls� r �A/usr/lib/python3/dist-packages/keyring/backends/macOS/__init__.py�priority s
zKeyring.priorityc
C st |d u rd}zt �| j|||� W d S t jy& } ztd�|���d }~w t jy9 } ztd�|���d }~ww )N� z$Can't store password on keychain: {})r
�set_generic_password�keychain�KeychainDeniedr �format�Errorr )�self�service�username�password�er r r �set_password# s ���zKeyring.set_passwordc
C s� |d u rd}z t �| j||�W S t jy Y d S t jy- } ztd�|���d }~w t jy@ } ztd�|���d }~ww )Nr z$Can't get password from keychain: {}) r
�find_generic_passwordr �NotFoundr r r r r �r r r r! r r r �get_password. s ���zKeyring.get_passwordc
C sH |d u rd}z t �| j||�W S t jy# } ztd�|���d }~ww )Nr z%Can't delete password in keychain: {})r
�delete_generic_passwordr r r r r% r r r �delete_password; s ���zKeyring.delete_passwordN)�__name__�
__module__�__qualname__�__doc__�os�environ�getr r �
ClassProperty�classmethodr r"