File: //usr/lib/python3/dist-packages/gpg/__pycache__/core.cpython-310.pyc
o
]��`� � @ s d dl mZmZmZ d dlZd dlZd dlZd dlZddlm Z ddl
mZmZ ddlm
Z
ddlm
Z
ddlmZ [[[ G d d
� d
e�ZG dd� de�ZG d
d� de�Zdd� Zdd� Zdd� Zdd� Zdd� Zd%dd�Ze� dd� Zdd� Zd%dd �Zd!d"� Zd#d$� ZdS )&� )�absolute_import�print_function�unicode_literalsN� )�gpgme)�
errorcheck�
GPGMEError)� constants)�errors)�utilc s� e Zd ZdZdd� Z� fdd�Zdd� Zdd � Zd
d� Ze dd
� �Z
e dd� �Zdd� Z e
� Zddd�Ze�d�Zdd� Z� fdd�Z� ZS )�GpgmeWrapperz>Base wrapper class
Not to be instantiated directly.
c C s d | _ || _d S �N)�_callback_excinfo�wrapped)�selfr � r �*/usr/lib/python3/dist-packages/gpg/core.py�__init__3 s
zGpgmeWrapper.__init__c s d� tt| ��� | j�S )Nz <{}/{!r}>)�format�superr �__repr__r �r �� __class__r r r 7 s �zGpgmeWrapper.__repr__c sP d� t� jj�g}� fdd�� jD �}|r |�d� d�|��� d� d�|��S )Nz{}.{}c s g | ] }t � |�r|�qS r )�getattr��.0�fr r r �
<listcomp>= � z(GpgmeWrapper.__str__.<locals>.<listcomp>z({})� z<{}>)r �__name__r �_boolean_properties�append�join)r �acc�flagsr r r �__str__; s
zGpgmeWrapper.__str__c C s t t| j��S r
)�hash�reprr r r r r �__hash__C � zGpgmeWrapper.__hash__c C s |d u rdS t | j�t |j�kS )NF)r) r )r �otherr r r �__eq__F s zGpgmeWrapper.__eq__c C � t � �)z]The name of the c type wrapped by this class
Must be set by child classes.
��NotImplementedErrorr r r r �_ctypeL � zGpgmeWrapper._ctypec C r. )zgThe common prefix of c functions wrapped by this class
Must be set by child classes.
r/ r r r r �_cprefixU r2 zGpgmeWrapper._cprefixc C r. )z�Must be implemented by child classes.
This function must return a trueish value for all c functions
returning gpgme_error_t.r/ �r �namer r r �_errorcheck^ s zGpgmeWrapper._errorcheckFNc s� t td�| j|��� t td�| j|���� fdd�}�fdd�}t||d�|�d�}t| j||� |r<|| t|�� d S || �S ) Nz{}get_{}z{}set_{}c s t � | j��S r
)�boolr )�slf)�get_funcr r �getl r+ z1GpgmeWrapper.__wrap_boolean_property.<locals>.getc s � | j t|�� d S r
)r r7 )r8 �value)�set_funcr r �set_o s z2GpgmeWrapper.__wrap_boolean_property.<locals>.set_z{} flag)�doc)r r r r3 �property�setattrr r7 )r �key�do_setr; r: r= �pr )r9 r<