mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-26 15:40:09 +01:00
* python/dbus_bindings.pyx: - Fixed type objects to have self passed into __init__ - Added the Variant type - Add the ability to specify types or signatures for Array, Variant and Dictionary - (Connection::send_with_reply_handlers): return a PendingCall object - (_pending_call_notification): handle the case when an error is returned without an error message in the body - (MessageIter::get_boolean): return True or False instead of an integer - (MessageIter::python_value_to_dbus_sig): add direct checking of types and add checks for objects with embeded signatures or types (Array, Variant and Dictionary) - (MessageIter::append_byte): handle case when the value is a dbus.Byte - (MessageIter::append_dict): handle embeded types or signatures - (MessageIter::append_array): handle embeded types or signatures - (MessageIter::append_variant): new method * python/proxies.py: - (DeferedMethod): New. Dummy executable object used when queuing calls blocking on introspection data - (ProxyMethod::__call__): add the timeout keyword for specifying longer or shorter timeouts for method calls - (ProxyObject): Add first pass at an introspection state machine - (ProxyObject::__init__): Add introspect keyword for turing off an on introspection. - (ProxyObject::_Introspect): Internal Introspect call that bypasses the usual mechanisms for sending messages. This is to avoid a deadlock where the Intospect call would be queued waiting for the Introspect call to finish ;-) - (ProxyObject::_introspect_reply_handler): New. This method is called when introspection returns with no error - (ProxyObject::_introspect_error_handler): New. This method is called when introspection encounters an error - (ProxyObject::__getattr__): Code to handle different introspection states. Queue async calls or block blocking calls if we are introspecting. Pass through as normal if we are not or are done with introspecting. * python/service.py: Import signal and method from decorators.py * python/types.py: Add Variant type
22 lines
579 B
Python
22 lines
579 B
Python
#!/usr/bin/env python
|
|
|
|
import dbus
|
|
|
|
bus = dbus.SessionBus()
|
|
remote_object = bus.get_object("org.designfu.SampleService", "/SomeObject")
|
|
iface = dbus.Interface(remote_object, "org.designfu.SampleInterface")
|
|
|
|
hello_reply_list = remote_object.HelloWorld("Hello from example-client.py!", dbus_interface = "org.designfu.SampleInterface")
|
|
|
|
hello_reply_tuple = iface.GetTuple()
|
|
|
|
hello_reply_dict = iface.GetDict()
|
|
|
|
print (hello_reply_list)
|
|
|
|
print str(hello_reply_tuple)
|
|
|
|
print str(hello_reply_dict)
|
|
|
|
print remote_object.Introspect(dbus_interface="org.freedesktop.DBus.Introspectable")
|
|
|