관리-도구
편집 파일: dbus.cpython-39.opt-1.pyc
a ��g�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&