File: //proc/self/root/usr/lib/python3.9/site-packages/cockpit/channels/__pycache__/dbus.cpython-39.pyc
a
�/�h�V � @ s� d dl Z d dlZd dlZd dlZd dlZd dlm mZ d dl m
Z
d dlmZm
Z
mZ ddlmZmZ e�e�ZG dd� d�Zdd � ZG d
d� de�ZdS )� N)�systemd_ctypes)�Bus�BusError�
introspection� )�Channel�ChannelErrorc @ s@ e Zd Zdd� Zdd� Zdd� Zddd �Zd
d� Zddd
�ZdS )�InterfaceCachec C s i | _ t� | _d S �N)�cache�set�old��self� r �9/usr/lib/python3.9/site-packages/cockpit/channels/dbus.py�__init__t s zInterfaceCache.__init__c C s | j �|� d S r
)r �update)r �
interfacesr r r �injectx s zInterfaceCache.injectc � sD |� ||dd�I d H \}t�|�}dd� |�d�D �}| �|� |S )Nz#org.freedesktop.DBus.IntrospectableZ
Introspectc S s i | ]}|j d t�|��qS )�name)Zattribr Zparse_interface)�.0�tagr r r �
<dictcomp>� � z2InterfaceCache.introspect_path.<locals>.<dictcomp>� interface)�call_method_async�ETZ
fromstring�findallr )r �bus�destination�object_pathZxml�etr r r r �introspect_path{ s �
zInterfaceCache.introspect_pathNc � s` z| j | W S ty Y n0 |rT|rTz| �|||�I d H W n tyR Y n0 | j �|�S r
)r �KeyErrorr# r �get�r �interface_namer r r! r r r �
get_interface� s zInterfaceCache.get_interfacec � s0 || j v rd S | j �|� | �||||�I d H S r
)r
�addr( r&