# Python DBus-Fast Documentation

Reference:

- The Type System
  - Variant
    - `Variant`
  - SignatureTree
    - `SignatureTree`
  - SignatureType
    - `SignatureType`
- The High Level Client
  - BaseProxyObject
    - `BaseProxyObject`
  - BaseProxyInterface
    - `BaseProxyInterface`
  - aio.ProxyObject
    - `ProxyObject`
  - aio.ProxyInterface
    - `ProxyInterface`
  - glib.ProxyObject
    - `ProxyObject`
  - glib.ProxyInterface
    - `ProxyInterface`
- The High Level Service
  - ServiceInterface
    - `ServiceInterface`
    - `dbus_property()`
    - `method()`
    - `signal()`
- The Low Level Interface
  - Message
    - `Message`
- The Message Bus
  - BaseMessageBus
    - `BaseMessageBus`
  - aio.MessageBus
    - `MessageBus`
  - glib.MessageBus
    - `MessageBus`
- Introspection
  - `Node`
    - `Node.default()`
    - `Node.from_xml()`
    - `Node.parse()`
    - `Node.to_xml()`
    - `Node.tostring()`
  - `Interface`
    - `Interface.from_xml()`
    - `Interface.to_xml()`
  - `Property`
    - `Property.from_xml()`
    - `Property.to_xml()`
  - `Method`
    - `Method.from_xml()`
    - `Method.to_xml()`
  - `Signal`
    - `Signal.from_xml()`
    - `Signal.to_xml()`
  - `Arg`
    - `Arg.from_xml()`
    - `Arg.to_xml()`
- Validators
  - `is_bus_name_valid()`
  - `is_member_name_valid()`
  - `is_object_path_valid()`
  - `is_interface_name_valid()`
  - `assert_bus_name_valid()`
  - `assert_member_name_valid()`
  - `assert_object_path_valid()`
  - `assert_interface_name_valid()`
- Constants
  - `BusType`
    - `BusType.SESSION`
    - `BusType.SYSTEM`
  - `MessageType`
    - `MessageType.ERROR`
    - `MessageType.METHOD_CALL`
    - `MessageType.METHOD_RETURN`
    - `MessageType.SIGNAL`
    - `MessageType.value`
  - `MessageFlag`
    - `MessageFlag.ALLOW_INTERACTIVE_AUTHORIZATION`
    - `MessageFlag.NONE`
    - `MessageFlag.NO_AUTOSTART`
    - `MessageFlag.NO_REPLY_EXPECTED`
    - `MessageFlag.value`
  - `NameFlag`
    - `NameFlag.ALLOW_REPLACEMENT`
    - `NameFlag.DO_NOT_QUEUE`
    - `NameFlag.NONE`
    - `NameFlag.REPLACE_EXISTING`
  - `RequestNameReply`
    - `RequestNameReply.ALREADY_OWNER`
    - `RequestNameReply.EXISTS`
    - `RequestNameReply.IN_QUEUE`
    - `RequestNameReply.PRIMARY_OWNER`
  - `ReleaseNameReply`
    - `ReleaseNameReply.NON_EXISTENT`
    - `ReleaseNameReply.NOT_OWNER`
    - `ReleaseNameReply.RELEASED`
  - `PropertyAccess`
    - `PropertyAccess.READ`
    - `PropertyAccess.READWRITE`
    - `PropertyAccess.WRITE`
    - `PropertyAccess.readable()`
    - `PropertyAccess.writable()`
  - `ArgDirection`
    - `ArgDirection.IN`
    - `ArgDirection.OUT`
  - `ErrorType`
    - `ErrorType.ACCESS_DENIED`
    - `ErrorType.ADDRESS_IN_USE`
    - `ErrorType.AUTH_FAILED`
    - `ErrorType.BAD_ADDRESS`
    - `ErrorType.CLIENT_ERROR`
    - `ErrorType.DISCONNECTED`
    - `ErrorType.FAILED`
    - `ErrorType.FILE_EXISTS`
    - `ErrorType.FILE_NOT_FOUND`
    - `ErrorType.INCONSISTENT_MESSAGE`
    - `ErrorType.INTERACTIVE_AUTHORIZATION_REQUIRED`
    - `ErrorType.INTERNAL_ERROR`
    - `ErrorType.INVALID_ARGS`
    - `ErrorType.INVALID_FILE_CONTENT`
    - `ErrorType.INVALID_SIGNATURE`
    - `ErrorType.IO_ERROR`
    - `ErrorType.LIMITS_EXCEEDED`
    - `ErrorType.MATCH_RULE_INVALID`
    - `ErrorType.MATCH_RULE_NOT_FOUND`
    - `ErrorType.NAME_HAS_NO_OWNER`
    - `ErrorType.NOT_SUPPORTED`
    - `ErrorType.NO_MEMORY`
    - `ErrorType.NO_NETWORK`
    - `ErrorType.NO_REPLY`
    - `ErrorType.NO_SERVER`
    - `ErrorType.OBJECT_PATH_IN_USE`
    - `ErrorType.PROPERTY_READ_ONLY`
    - `ErrorType.SELINUX_SECURITY_CONTEXT_UNKNOWN`
    - `ErrorType.SERVICE_ERROR`
    - `ErrorType.SERVICE_UNKNOWN`
    - `ErrorType.TIMED_OUT`
    - `ErrorType.TIMEOUT`
    - `ErrorType.UNIX_PROCESS_ID_UNKNOWN`
    - `ErrorType.UNKNOWN_INTERFACE`
    - `ErrorType.UNKNOWN_METHOD`
    - `ErrorType.UNKNOWN_OBJECT`
    - `ErrorType.UNKNOWN_PROPERTY`
- Errors
  - `DBusError`
  - `SignatureBodyMismatchError`
  - `InvalidSignatureError`
  - `InvalidAddressError`
  - `AuthError`
  - `InvalidMessageError`
  - `InvalidIntrospectionError`
  - `InterfaceNotFoundError`
  - `SignalDisabledError`
  - `InvalidBusNameError`
  - `InvalidObjectPathError`
  - `InvalidInterfaceNameError`
  - `InvalidMemberNameError`
- Authentication
  - `Authenticator`
  - `AuthExternal`
  - `AuthAnonymous`

## Overview

Python DBus-Fast is a library for the DBus message bus system for interprocess communcation in a Linux desktop or mobile environment.

Desktop application developers can use this library for integrating their applications into desktop environments by implementing common DBus standard interfaces or creating custom plugin interfaces.

Desktop users can use this library to create their own scripts and utilities to interact with those interfaces for customization of their desktop environment.

While other libraries for DBus exist for Python, this library offers the following improvements:

- Zero dependencies and pure Python 3.

- Support for multiple main loop backends including asyncio and the GLib main loop.

- Nonblocking IO suitable for GUI development.

- Target the latest language features of Python for beautiful services and clients.

- Complete implementation of the DBus type system without ever guessing types.

- Integration tests for all features of the library.

- Completely documented public API.

The library offers three core interfaces:

- The High Level Client - Communicate with an existing interface exported on the bus by another client through a proxy object.

- The High Level Service - Export a service interface for your application other clients can connect to for interaction with your application at runtime.

- The Low Level Interface - Work with DBus messages directly for applications that work with the DBus daemon directly or to build your own high level abstractions.

## Installation

This library is available on PyPi as dbus-fast.

    pip3 install dbus-fast

## Contributing

Development for this library happens on Github. Report bugs or request features there. Contributions are welcome.

## License

This library is available under an MIT License.

© 2022, Bluetooth Devices authors © 2019, Tony Crisci

# Indices and tables

- Index

- Module Index

- Search Page