Skip to content

Consider making timeout and other arguments that are passed to the dbus-python method keyword only arguments #22

@mulkieran

Description

@mulkieran

See current source for dbus_function:

            dbus_method = proxy_object.get_dbus_method(
                name, dbus_interface=interface_name)

            try:
                return dbus_method(*xformed_args, timeout=timeout)
            except dbus.DBusException as err:
                arg_str = ", ".join(str(arg) for arg in xformed_args)
                err_msg = ("Error while invoking method \"%s\" belonging to "
                           "interface \"%s\" with arguments (%s)") % (
                               name, interface_name, arg_str)
                raise DPClientInvocationError(err_msg, interface_name,
                                              DPClientMethodCallContext(
                                                  name, xformed_args)) from err

Here it is obvious that the arguments are used to locate the appropriate D-Bus method to call, while timeout is an argument to that method.

Note that it is not so obvious in the Get and Set property methods, but probably should be:

            try:
                return proxy_object.Get(
                    interface_name,
                    name,
                    dbus_interface=dbus.PROPERTIES_IFACE,
                    timeout=timeout)
            except dbus.DBusException as err:
                err_msg = ("Error while getting value for property \"%s\" "
                           "belonging to interface \"%s\"") % (name,
                                                               interface_name)
                raise DPClientInvocationError(
                    err_msg, interface_name,
                    DPClientGetPropertyContext(name)) from err

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions