dbus-next的更快版本
项目描述
dbus-fast
这是一个从优秀的DBus next库(❤️)发展而来的dbus-next的更快版本。
安装
通过pip(或您喜欢的包管理器)安装此软件
pip安装dbus-fast
dbus-fast是一个针对DBus的Python库,旨在成为一个性能出色、功能齐全的高级库,主要用于将应用程序集成到Linux桌面和移动环境中。
桌面应用程序开发人员可以使用此库通过实现常见的DBus标准接口或创建自定义插件接口,将他们的应用程序集成到桌面环境中。
桌面用户可以使用此库创建自己的脚本和实用程序,以与这些接口交互,从而定制他们的桌面环境。
dbus-fast计划在以下方面改进其他Python DBus库:
- 零依赖和纯Python 3
- 可选的cython扩展可用于加速(反)序列化
- 专注于性能
- 支持包括asyncio和GLib主循环在内的多个IO后端。
- 非阻塞IO,适合GUI开发。
- 针对Python的最新语言特性,以实现美观的服务和客户端。
- 完全实现DBus类型系统,无需猜测类型。
- 对库的所有功能进行集成测试。
- 完整文档化的公共API。
安装
此库可在PyPi上找到,名称为dbus-fast。
pip3 install dbus-fast
客户端接口
要使用总线上的服务,库将构建一个代理对象,您可以使用它来调用方法、获取和设置属性,并监听信号。
更多信息,请参阅高级客户端概述。
以下示例连接到媒体播放器,并使用MPRIS DBus接口控制它。
from dbus_fast.aio import MessageBus
import asyncio
async def main():
bus = await MessageBus().connect()
# the introspection xml would normally be included in your project, but
# this is convenient for development
introspection = await bus.introspect('org.mpris.MediaPlayer2.vlc', '/org/mpris/MediaPlayer2')
obj = bus.get_proxy_object('org.mpris.MediaPlayer2.vlc', '/org/mpris/MediaPlayer2', introspection)
player = obj.get_interface('org.mpris.MediaPlayer2.Player')
properties = obj.get_interface('org.freedesktop.DBus.Properties')
# call methods on the interface (this causes the media player to play)
await player.call_play()
volume = await player.get_volume()
print(f'current volume: {volume}, setting to 0.5')
await player.set_volume(0.5)
# listen to signals
def on_properties_changed(interface_name, changed_properties, invalidated_properties):
for changed, variant in changed_properties.items():
print(f'property changed: {changed} - {variant.value}')
properties.on_properties_changed(on_properties_changed)
await asyncio.Event().wait()
asyncio.run(main())
服务接口
要定义总线上的服务,请使用ServiceInterface
类,并使用装饰器修饰类方法,以指定DBus方法、属性和信号及其类型签名。
更多信息,请参阅高级服务概述。
from dbus_fast.service import ServiceInterface, method, dbus_property, signal, Variant
from dbus_fast.aio MessageBus
import asyncio
class ExampleInterface(ServiceInterface):
def __init__(self, name):
super().__init__(name)
self._string_prop = 'kevin'
@method()
def Echo(self, what: 's') -> 's':
return what
@method()
def GetVariantDict() -> 'a{sv}':
return {
'foo': Variant('s', 'bar'),
'bat': Variant('x', -55),
'a_list': Variant('as', ['hello', 'world'])
}
@dbus_property()
def string_prop(self) -> 's':
return self._string_prop
@string_prop.setter
def string_prop_setter(self, val: 's'):
self._string_prop = val
@signal()
def signal_simple(self) -> 's':
return 'hello'
async def main():
bus = await MessageBus().connect()
interface = ExampleInterface('test.interface')
bus.export('/test/path', interface)
# now that we are ready to handle requests, we can request name from D-Bus
await bus.request_name('test.name')
# wait indefinitely
await asyncio.Event().wait()
asyncio.run(main())
低级接口
低级接口直接与DBus消息一起工作。
更多信息,请参阅低级接口概述。
from dbus_fast.message import Message, MessageType
from dbus_fast.aio import MessageBus
import asyncio
import json
async def main():
bus = await MessageBus().connect()
reply = await bus.call(
Message(destination='org.freedesktop.DBus',
path='/org/freedesktop/DBus',
interface='org.freedesktop.DBus',
member='ListNames'))
if reply.message_type == MessageType.ERROR:
raise Exception(reply.body[0])
print(json.dumps(reply.body[0], indent=2))
asyncio.run(main())
使用python-dbus-fast的项目
贡献
欢迎贡献。开发在Github上进行。
提交之前,运行pre-commit run --all-files
以运行代码检查器、代码格式化和测试套件。
版权
您可以在MIT许可证下使用此代码(见LICENSE)。
- © 2019, Tony Crisci
- © 2022, Bluetooth Devices作者
贡献者✨
感谢这些出色的人们(emoji键)
本项目遵循all-contributors规范。欢迎所有类型的贡献!
致谢
此包是用Cookiecutter和browniebroke/cookiecutter-pypackage项目模板创建的。
项目详情
关闭
dbus_fast-2.24.2.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 20c517dc70dbc940b8bf2e0f079abf3dfe821fdda3013641a17e3d8f18e131ae |
|
MD5 | b7212d10fb99f450ef7fee953a4c8dda |
|
BLAKE2b-256 | faf01f31e3f1d5a8af68a9bdfc6fd481c3c6a6d8827ddabc478de7720d91213f |
关闭
dbus_fast-2.24.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b3ed265d4285a2aab12935ad143bf6e08933f136ff74dc864b3642c85e646128 |
|
MD5 | a3f58aa0ebee2876d4aa7ff76c8af8d6 |
|
BLAKE2b-256 | 3f346fdce73d1a589d6b03419e0241fb312b6336028df55c8b1fdc8d8287fc58 |
关闭
dbus_fast-2.24.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 522c00aa19411e8abb7934fcb4066b05bcf8c313e9215376ed6fef7137307183 |
|
MD5 | a57d1c3f13c60a9f22edade357ba571e |
|
BLAKE2b-256 | 8f8bc29e7a042434ef429bb350010a057a55275ac6762f1aac762ff6e28a851e |
关闭
dbus_fast-2.24.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 70f230ee387a44ff2fa485eb47412d3bf0eefee62ad1c0ef58bdb332560386ce |
|
MD5 | 6bf43b3fb4fb71b4b59b990db70c8399 |
|
BLAKE2b-256 | a9422278711735ed7855d2626e4b6642a2f16b19ddb8d7e7d81c7f9d9cf9a6a7 |
关闭
dbus_fast-2.24.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5bec804cde188c445520fc988295cc8cc74044d7cf3b661825cd36fb52a45d45 |
|
MD5 | 1013dbd08bd72bc35183b07c621a6455 |
|
BLAKE2b-256 | b2ed373a3367cc41e5c4c9ce4ee13431cfaea9bc84923ffbc18dc214acdb8e1f |
关闭
dbus_fast-2.24.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8f8c72bce6e574bf855f2d843ea660a0e997cc29a05a17ee2da0134b2381fe03 |
|
MD5 | b27c468900b746e0378f08fb160ad4b8 |
|
BLAKE2b-256 | 4dde1bf33ac128d84dde0186c5ded8b9564b4a40f49e983238990a3c4d85f7f7 |
关闭
哈希值 为 dbus_fast-2.24.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 292d6334c8267f424d4f7dded170e2e9b79596485ef93ce60aa5ef972406860b |
|
MD5 | f9e2c6f58d29bd23611b9b4f08bddfeb |
|
BLAKE2b-256 | 2a6af4f228941a463fbc1a0edab39a607a51c60021cd928d6c7785987ab962a8 |
关闭
哈希值 为 dbus_fast-2.24.2-cp313-cp313-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 789089a6489418dc3d26c5eb1c92144cece6dd93ae1b31aee12d5be164832ca2 |
|
MD5 | b84383bbe2b432a4522bb02216d35265 |
|
BLAKE2b-256 | 5aba790506700853a6459ceea68d9730ceb036daa3a458a4c65bca74f3eca1a2 |
关闭
哈希值 为 dbus_fast-2.24.2-cp313-cp313-musllinux_1_2_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8bcc7e733a2b4f3d27184cb273da7de01c8a2f20b496bf73b8e0954e590ffbba |
|
MD5 | 9243119be72f18e61711449732e80201 |
|
BLAKE2b-256 | c2f244b8c691ec65bcb8e7b2b9764485de8d4c1be9477d3635b9cc5cba6eeae0 |
关闭
哈希值 为 dbus_fast-2.24.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1a1d8f5efbb026626a2a3b755c09d3b8134700a03daaf34db22736045503ba4 |
|
MD5 | e571877f8dc93dc8aad7bfffea3de6dc |
|
BLAKE2b-256 | 552c2e086d708e40e83ceef4c301613b568a6d698168c894ff0f2cc7da501e5e |
关闭
哈希值 为 dbus_fast-2.24.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 459dca547117baf7383e63f2a7d7da651e21f3bad0ac2ba4bcdc71a13a071f18 |
|
MD5 | 5cb3dac310e465767322d623ab0b558d |
|
BLAKE2b-256 | a65843937221fa4bbc4f282bfb7fe646014a86d15ebfedca9ce0dcbf9d65dd6e |
关闭
哈希值 为 dbus_fast-2.24.2-cp312-cp312-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dfdb015a56b98b6e6c935b4b7e66e26a7d13a46a826320776418ec557a954347 |
|
MD5 | 47a55ec0cba260d0ce9611370e493326 |
|
BLAKE2b-256 | 5616b15cf7b3b48c1959af7e57c8a8f3b76343dfc68290d8824516992c986b68 |
关闭
哈希值 为 dbus_fast-2.24.2-cp312-cp312-musllinux_1_2_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fbfe0e2ee611e22f13c0e30f5f65b9264dd4f88c5581499dfd7f8c1578d81a27 |
|
MD5 | 8ade8e270905d562c1c6bcd529987e2f |
|
BLAKE2b-256 | 5039f8931be5d97976eb1b9841d60883d95252e724caa4e5346e3d6f1e829971 |
关闭
哈希值 为 dbus_fast-2.24.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d20cf9cd64a0dfb5d7efd7d52a6fd927becabdff234082c7819582f74e81dc59 |
|
MD5 | 1d71f44d12cef4429aafb94b25aadc91 |
|
BLAKE2b-256 | 2b655a7ed4aefeaf6fdd9528e59fcc7bd53a46e079d9abc5c872d94985952c4d |
关闭
哈希值 为 dbus_fast-2.24.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bf3a971c41d53f4f4ceb29ca3b6b6ffcd9fb92f1d7c7d464292ad000974113f1 |
|
MD5 | 266f4faa13100cfa12bd48c990e8bd9b |
|
BLAKE2b-256 | 984e06ec20ec23e3aab376889252c639814718de254811f796c694a4d6015d07 |
关闭
哈希值 为 dbus_fast-2.24.2-cp311-cp311-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3c629360152618585a4e1ffeacc88e3ea92b64ee76de180d67d9f4e9bdf85a7e |
|
MD5 | 7841b1d3226693602ea0184f564c3e01 |
|
BLAKE2b-256 | dfa277005343e778e8207a387d95f4cce0db30870195eef7f2c576048e3c0297 |
关闭
哈希值 为 dbus_fast-2.24.2-cp311-cp311-musllinux_1_2_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5c8eff87f24f8b58f439a716a7fb655eaacfa37dd72c11c98bbff7e391ef8550 |
|
MD5 | 692daf967f33f535b9c1b2ec2830fa1a |
|
BLAKE2b-256 | e60fc67a90ebc21c20f4f012f47adf29a2b85a0fecb9f3ad5817630826d74a4f |
关闭
哈希值 为 dbus_fast-2.24.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8b92b110c7d6ceb53d673281a490fcdccd552beee1c0b6a8f234579f845bd87c |
|
MD5 | a3ce60b5dd1aa495bdfcf5c75b6dfbed |
|
BLAKE2b-256 | 37c806e1921458ed7b8f87eae5bf804d51da87116968e9e12fadc5307685e0c1 |
关闭
哈希值 为 dbus_fast-2.24.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5ff65eb4a42c3416423d65ed66f81798724047e23d3d034702ca3c3cf59f93d |
|
MD5 | c701e129180c1e35e87cad40487a12e0 |
|
BLAKE2b-256 | 6f85308ab9b1bb13ab23284898b20acdf8b8f411fe7aed59220d38f6b32805e5 |
关闭
哈希值 for dbus_fast-2.24.2-cp310-cp310-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0642e4165361bfbe13878a65c9a5580bb086073300614243f81e8ca3f204e14e |
|
MD5 | 38cd15218faa4fb52efe0b338d7268b1 |
|
BLAKE2b-256 | c0559242edbca4c1add9cad410e6a6d0bb718bc33212d7cde04e458b8fa1a6a0 |
关闭
哈希值 for dbus_fast-2.24.2-cp310-cp310-musllinux_1_2_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 920a4f303127d25cfbb36c2c62dadf3a9e01b7512c091a1e8f9d6f0496934d54 |
|
MD5 | 8a73fd30fd09d5b34b7406bee584b921 |
|
BLAKE2b-256 | 04897cef9687e8fcc6a5218a27e416ca68b79c054cadbc1eacbc21db8fb8dbb5 |
关闭
哈希值 for dbus_fast-2.24.2-cp310-cp310-manylinux_2_31_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 72d9b28592dbe65774889cd3fc365e70e25862af79f5807a0bb375c1f7668dac |
|
MD5 | 3f8e01cacb3c2515632ef1d5db1b72db |
|
BLAKE2b-256 | aa024fbbd8d40916e563e3c3eb9221f56f93c05aa4da8ba16b184a8f4d1032a7 |
关闭
哈希值 for dbus_fast-2.24.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9879cee2a2e13ce9047a6f012d16d90b2a38fc40784ab4a233d4ddd80c9e803a |
|
MD5 | 8dcec64769655b34d33065af7e228b5c |
|
BLAKE2b-256 | fb6c23b16ea01383567391bebcd4c07fc9cc08649800ea36b571a95007b075dd |
关闭
哈希值 for dbus_fast-2.24.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4785df473961432e208cd8b96ae58a8e9bf7cbd3f9ced29eb0ecc16dfc1af6f1 |
|
MD5 | 99e9ba61e59e9f0883093549f6f0312d |
|
BLAKE2b-256 | 9ec28720b8f5c0dc0b6de11593334beaa9dfa7d828d54f9f1cde281f4758bc7b |
关闭
哈希值 for dbus_fast-2.24.2-cp39-cp39-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cc5c340970c7b6acaf6ee0cccfaad701d20954c08234f8428c550ae090ee1247 |
|
MD5 | cb5456b9a3ede21112805899967bc37f |
|
BLAKE2b-256 | dda7224239490c748eff00e7bffd89c2f0633672b69c4be51377c31993513066 |
关闭
哈希值 for dbus_fast-2.24.2-cp39-cp39-musllinux_1_2_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5bc6816dc3a53b90aa2d465f44f06f636eb094db8c0b69aca62c11ca8d9a5c26 |
|
MD5 | eff54e448ab155cf4b0068684ae60577 |
|
BLAKE2b-256 | b00fe98f33a27b78713678eb67b7b2d5e284642523325d72e8b1c512cf55e7a4 |
关闭
哈希值 for dbus_fast-2.24.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5efd4472b6008f99fe0751cc660f4de72f3267aea719b334940e7086824231ed |
|
MD5 | 9e8d98c21c57ca424e7fac45c1804d2c |
|
BLAKE2b-256 | 3312c629c913c08c8f99cf81b1d8fdacae5be85103954576ea41cac6d156c7cc |
关闭
哈希值 for dbus_fast-2.24.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 871696881a5ca703998f73d5c944f430f7937eb86de8736ca41a44fc1d21b8ba |
|
MD5 | ee520ab35c2258cb7852bdc548e24f34 |
|
BLAKE2b-256 | aed839586447b9ca76cf84b2286328d9cb03b2b0c0e344c57e4d4b77e3198bde |
关闭
哈希值 for dbus_fast-2.24.2-cp38-cp38-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a9d76b33e8927e87261f5ddb919f5339b49046745508f3bc383e5b10d5f8a750 |
|
MD5 | 7f5b2b69b0cebf3fd30825a475b8228c |
|
BLAKE2b-256 | b2f2409abe17e15b14fd3358bd177f4af0fec2c7781020d3fe98a7deaf3ac71d |
关闭
哈希值 for dbus_fast-2.24.2-cp38-cp38-musllinux_1_2_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7f3438da463b69f81cbe5f163f2489bfe215d5d96c7fbfca30a744f58fc3d85b |
|
MD5 | 7685157506682dabea7c80e39374e315 |
|
BLAKE2b-256 | ee23cf351ed6747157cfd9d0cbd07b42db6c5adbf0522d799b2156dbc8e9c040 |
关闭
哈希值 for dbus_fast-2.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 05fe312ea313fdd8affcd362e24bf8aca280f5724099f27b0d48e699aa83f6f6 |
|
MD5 | b9e775870903d5c89e06178a1c2132cd |
|
BLAKE2b-256 | 00c0d2b250a7f9803a41d5a0aa8dd4d166f63589215b43608746a152786249bc |
关闭
哈希值 for dbus_fast-2.24.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b884a221c73731920182599690538d23abc38490742d4beda9e52ee3576ab849 |
|
MD5 | 91f7fc65e637ac0c60cb9183233024a7 |
|
BLAKE2b-256 | 5b97e7f971c525a51fce28a013943d15ef3fe5ff869170708fd7c9ba10a728a5 |