| Server IP : 77.50.203.18 / Your IP : 192.168.0.10 Web Server : Apache/2.4.62 (CentOS Stream) OpenSSL/3.5.7 mpm-itk/2.4.7-04 PHP/8.4.23 System : Linux web2 5.14.0-722.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Jul 6 09:07:51 UTC 2026 x86_64 User : warsnews.ru ( 1001) PHP Version : 8.4.23 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/lib/python3.9/site-packages/dasbus/server/__pycache__/ |
Upload File : |
a
�ic � @ sT d dl mZ d dlmZ d dlmZmZ ddgZG dd� de�Z G dd� de
�ZdS ) � )�
get_dbus_path)�Publishable)�ObjPath�List�DBusContainerError�
DBusContainerc @ s e Zd ZdZdS )r z,General exception for DBus container errors.N)�__name__�
__module__�__qualname__�__doc__� r r �;/usr/lib/python3.9/site-packages/dasbus/server/container.pyr s c @ s� e Zd ZdZddd�Zdd� Zed�dd �Zed
�dd�Ze e d
�dd�Z
e e d
�dd�Zdd� Ze
d�dd�Zdd� Zdd� Zdd� ZdS )r a� The container of DBus objects.
A DBus container should be used to dynamically publish Publishable
objects within the same namespace. It generates a unique DBus path
for each object. It is able to resolve a DBus path into an object
and an object into a DBus path.
Example:
.. code-block:: python
# Create a container of tasks.
container = DBusContainer(
namespace=("my", "project"),
basename="Task",
message_bus=DBus
)
# Publish a task.
path = container.to_object_path(MyTask())
# Resolve an object path into a task.
task = container.from_object_path(path)
Nc C sH || _ |rg |�|�R }|dd� | _|d | _i | _t� | _d| _dS )z�Create a new container.
:param message_bus: a message bus
:param namespace: a sequence of names
:param basename: a string with the base name
N���r )�_message_bus�
_namespace� _basename�
_container�set�
_published�_counter)�selfZmessage_bus� namespace�basenamer r r
�__init__? s
zDBusContainer.__init__c C s
|| _ dS )z�Set the namespace.
All DBus objects from the container should use the same
namespace, so the namespace should be set up before any
of the DBus objects are published.
:param namespace: a sequence of names
N)r )r r r r r
�
set_namespaceR s zDBusContainer.set_namespace)�object_pathc C s
| � |�S )z�Convert a DBus path to a published object.
If no published object is found for the given DBus path,
raise DBusContainerError.
:param object_path: a DBus path
:return: a published object
)�_find_object�r r r r r
�from_object_path] s zDBusContainer.from_object_path)�returnc C s<