跳转到主要内容

将值转换为正确包装的dbus-python对象

项目描述

功能

此库包含一个名为make_class的函数,该函数接受一个D-Bus接口的XML规范。

>>> Klass = make_class("Klass", spec)

此调用生成一个名为Klass的Python类,该类有两个静态类成员:“Methods”和“Properties”。“Methods”类具有与接口中定义的每个方法对应的静态方法。每个方法以代理对象作为其第一个参数,后面跟任意数量的关键字参数,对应于方法的参数。 “Properties”类具有与接口中定义的每个属性对应的静态类。每个属性类可能具有静态的Get()或Set()方法,具体取决于其属性。

例如,假设接口定义了一个只读的Version属性,以下调用应返回一个值。

>>> Klass.Properties.Version.Get()

然而,由于Version是一个只读属性,以下调用应导致AttributeError失败。

>>> Klass.Properties.Version.Set("42")

同样,如果接口定义了一个名为Create的方法,它有一个名为name的字符串类型的参数,则以下调用应成功。

>>> Klass.Methods.Create(proxy, name="name")

Create方法在代理对象上调用方法,将force转换为dbus-python字符串类型。

另一方面,如果方法调用时参数类型不正确,将引发DPClientError异常,

>>> Klass.Methods.Create(proxy, name=false)

或关键字不正确,

>>> Klass.Methods.Create(proxy, force=false)

或缺少必要的所有关键字,

>>> Klass.Methods.Create(proxy)

错误

此库导出异常类型DPClientError及其所有子类型。如果在类生成期间或类的方法执行期间传播了任何其他类型的错误,则构成一个错误。

以下显示错误层次结构。破折号之后的条目表示异常包含的除消息之外的其他字段。只有错误类层次结构的叶子节点是直接构建的。

DPClientError

  • DPClientGenerationError 此异常在生成方法时发生错误时引发。此类异常可能由缺少必要属性或条目的自省数据引起。

  • DPClientRuntimeError - 接口名称 此异常在生成的方法执行时发生错误时引发。

    • DPClientInvalidArgError 此异常在要传递给D-Bus方法的参数不正确时引发。

      • DPClientKeywordError - 方法名称,期望和实际关键字 此异常在缺少或意外参数时引发。

      • DPClientMarshallingError - 原始参数 此异常在无法将参数转换为所需的dbus-python类型时引发。

    • DPClientInvocationError - 调用上下文 此异常在调用dbus-python方法并发生错误时引发。此异常的调用上下文用于区分方法调用、获取属性调用和设置属性调用。上下文是DPClientInvocationContext类型的对象。

以下显示DPClientInvocationContext层次结构。破折号之后的条目表示上下文中的字段。

DPClientInvocationContext

  • DPClientMethodCallContext - 方法名称,参数

  • DPClientGetPropertyContext - 属性名称

  • DPClientSetPropertyContext - 属性名称,值

依赖项

  • dbus-python

  • into-dbus-python

需求

此库与Python 2不兼容。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

dbus-python-client-gen-0.8.3.tar.gz (15.1 kB 查看散列值)

上传时间 源代码

构建分发

dbus_python_client_gen-0.8.3-py3-none-any.whl (14.4 kB 查看散列值)

上传时间 Python 3