File: //usr/share/system-config-printer/__pycache__/cupspk.cpython-39.pyc
a
$x]�m � @ sx d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl m
Z
edd� dZdZdZ
d ZG d
d� d�ZdS )� N)�
debugprint)�
DBusGMainLoop)�reduceT)Zset_as_defaultz#org.opensuse.CupsPkHelper.Mechanism�/z1org.opensuse.CupsPkHelper.Mechanism.NotPrivilegedc @ s, e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zd-d.� Zd/d0� Zd1d2� Zd3d4� Zd5d6� Zd7d8� Zd9d:� Zd;d<� Z d=d>� Z!d?d@� Z"dAdB� Z#dCdD� Z$dEdF� Z%dGdH� Z&dIS )J�
Connectionc C s` d | _ zt�� | _t�� | _W n" tjjy@ d | _| _Y n0 tj |||d�| _
| �� d S )N)�host�port�
encryption)�_parent�dbusZ
SessionBusZ_session_busZ SystemBus�_system_bus�
exceptions�
DBusException�cupsr �_connection�_hack_subclass)�selfr r r � r �*/usr/share/system-config-printer/cupspk.py�__init__5 s
�zConnection.__init__c C s` t | jj�}t| j�D ]D}|d dkr(qt| j|�}t |�|krBqt| |�st| ||j� qd S )Nr �_)�typer ZgetPrinters�dir�getattr�hasattr�setattr�__call__)r Z
methodtype�fname�fnr r r r F s
zConnection._hack_subclassc C s
|| _ d S �N)r
)r �parentr r r �
set_parentT s zConnection.set_parentc C sL z| j �tt�}t�|t�W S tjjy4 Y d S t yF Y d S 0 d S r )
r Z
get_object�CUPS_PK_NAME�CUPS_PK_PATHr Z Interface�
CUPS_PK_IFACEr
r �AttributeError)r �objectr r r �_get_cups_pkX s zConnection._get_cups_pkc
O sN d }|� dd �}|sF| �� } | rFz| �|�}W n tjjyD Y n0 |sN|s\||i |��S d}
zX||d|i�}
t|
�tkr�|
dd � }|
d dkr�t|�dkr�|d W S |W S W �qW q` tjj�y } zD|� � t
kr�td|�� � t
�t
jd��W Y d }~�qW Y d }~q`d }~0 0 q`|
dk�rJtd|t|
�f � ||i |��S d S ) NZ signaturezPolicyKit communication issue� r � zDBus exception: %sZpkcancelz%PolicyKit call to %s did not work: %s)�popr'