Mercurial > libervia-backend
diff libervia/backend/bridge/bridge_constructor/constructors/dbus/dbus_frontend_template.py @ 4270:0d7bb4df2343
Reformatted code base using black.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 19 Jun 2024 18:44:57 +0200 |
parents | 4b842c1fb686 |
children |
line wrap: on
line diff
--- a/libervia/backend/bridge/bridge_constructor/constructors/dbus/dbus_frontend_template.py Tue Jun 18 12:06:45 2024 +0200 +++ b/libervia/backend/bridge/bridge_constructor/constructors/dbus/dbus_frontend_template.py Wed Jun 19 18:44:57 2024 +0200 @@ -33,12 +33,10 @@ # Interface prefix const_INT_PREFIX = config.config_get( - config.parse_main_conf(), - "", - "bridge_dbus_int_prefix", - "org.libervia.Libervia") + config.parse_main_conf(), "", "bridge_dbus_int_prefix", "org.libervia.Libervia" +) const_ERROR_PREFIX = const_INT_PREFIX + ".error" -const_OBJ_PATH = '/org/libervia/Libervia/bridge' +const_OBJ_PATH = "/org/libervia/Libervia/bridge" const_CORE_SUFFIX = ".core" const_PLUGIN_SUFFIX = ".plugin" const_TIMEOUT = 120 @@ -52,7 +50,7 @@ """ full_name = dbus_e.get_dbus_name() if full_name.startswith(const_ERROR_PREFIX): - name = dbus_e.get_dbus_name()[len(const_ERROR_PREFIX) + 1:] + name = dbus_e.get_dbus_name()[len(const_ERROR_PREFIX) + 1 :] else: name = full_name # XXX: dbus_e.args doesn't contain the original DBusException args, but we @@ -62,7 +60,7 @@ try: message, condition = ast.literal_eval(message) except (SyntaxError, ValueError, TypeError): - condition = '' + condition = "" return BridgeException(name, message, condition) @@ -71,24 +69,33 @@ def bridge_connect(self, callback, errback): try: self.sessions_bus = dbus.SessionBus() - self.db_object = self.sessions_bus.get_object(const_INT_PREFIX, - const_OBJ_PATH) - self.db_core_iface = dbus.Interface(self.db_object, - dbus_interface=const_INT_PREFIX + const_CORE_SUFFIX) - self.db_plugin_iface = dbus.Interface(self.db_object, - dbus_interface=const_INT_PREFIX + const_PLUGIN_SUFFIX) + self.db_object = self.sessions_bus.get_object( + const_INT_PREFIX, const_OBJ_PATH + ) + self.db_core_iface = dbus.Interface( + self.db_object, dbus_interface=const_INT_PREFIX + const_CORE_SUFFIX + ) + self.db_plugin_iface = dbus.Interface( + self.db_object, dbus_interface=const_INT_PREFIX + const_PLUGIN_SUFFIX + ) except dbus.exceptions.DBusException as e: - if e._dbus_error_name in ('org.freedesktop.DBus.Error.ServiceUnknown', - 'org.freedesktop.DBus.Error.Spawn.ExecFailed'): + if e._dbus_error_name in ( + "org.freedesktop.DBus.Error.ServiceUnknown", + "org.freedesktop.DBus.Error.Spawn.ExecFailed", + ): errback(BridgeExceptionNoService()) - elif e._dbus_error_name == 'org.freedesktop.DBus.Error.NotSupported': - log.error(_("D-Bus is not launched, please see README to see instructions on how to launch it")) + elif e._dbus_error_name == "org.freedesktop.DBus.Error.NotSupported": + log.error( + _( + "D-Bus is not launched, please see README to see instructions on how to launch it" + ) + ) errback(BridgeInitError) else: errback(e) else: callback() - #props = self.db_core_iface.getProperties() + # props = self.db_core_iface.getProperties() def register_signal(self, functionName, handler, iface="core"): if iface == "core": @@ -96,10 +103,10 @@ elif iface == "plugin": self.db_plugin_iface.connect_to_signal(functionName, handler) else: - log.error(_('Unknown interface')) + log.error(_("Unknown interface")) def __getattribute__(self, name): - """ usual __getattribute__ if the method exists, else try to find a plugin method """ + """usual __getattribute__ if the method exists, else try to find a plugin method""" try: return object.__getattribute__(self, name) except AttributeError: @@ -114,20 +121,26 @@ args = list(args) if kwargs: - if 'callback' in kwargs: + if "callback" in kwargs: async_ = True - _callback = kwargs.pop('callback') - _errback = kwargs.pop('errback', lambda failure: log.error(str(failure))) + _callback = kwargs.pop("callback") + _errback = kwargs.pop( + "errback", lambda failure: log.error(str(failure)) + ) try: - args.append(kwargs.pop('profile')) + args.append(kwargs.pop("profile")) except KeyError: try: - args.append(kwargs.pop('profile_key')) + args.append(kwargs.pop("profile_key")) except KeyError: pass # at this point, kwargs should be empty if kwargs: - log.warning("unexpected keyword arguments, they will be ignored: {}".format(kwargs)) + log.warning( + "unexpected keyword arguments, they will be ignored: {}".format( + kwargs + ) + ) elif len(args) >= 2 and callable(args[-1]) and callable(args[-2]): async_ = True _errback = args.pop() @@ -136,9 +149,11 @@ method = getattr(self.db_plugin_iface, name) if async_: - kwargs['timeout'] = const_TIMEOUT - kwargs['reply_handler'] = _callback - kwargs['error_handler'] = lambda err: _errback(dbus_to_bridge_exception(err)) + kwargs["timeout"] = const_TIMEOUT + kwargs["reply_handler"] = _callback + kwargs["error_handler"] = lambda err: _errback( + dbus_to_bridge_exception(err) + ) try: return method(*args, **kwargs) @@ -158,17 +173,21 @@ return get_plugin_method + ##METHODS_PART## + class AIOBridge(bridge): def register_signal(self, functionName, handler, iface="core"): loop = asyncio.get_running_loop() - async_handler = lambda *args: asyncio.run_coroutine_threadsafe(handler(*args), loop) + async_handler = lambda *args: asyncio.run_coroutine_threadsafe( + handler(*args), loop + ) return super().register_signal(functionName, async_handler, iface) def __getattribute__(self, name): - """ usual __getattribute__ if the method exists, else try to find a plugin method """ + """usual __getattribute__ if the method exists, else try to find a plugin method""" try: return object.__getattribute__(self, name) except AttributeError: @@ -178,16 +197,18 @@ fut = loop.create_future() method = getattr(self.db_plugin_iface, name) reply_handler = lambda ret=None: loop.call_soon_threadsafe( - fut.set_result, ret) + fut.set_result, ret + ) error_handler = lambda err: loop.call_soon_threadsafe( - fut.set_exception, dbus_to_bridge_exception(err)) + fut.set_exception, dbus_to_bridge_exception(err) + ) try: method( *args, **kwargs, timeout=const_TIMEOUT, reply_handler=reply_handler, - error_handler=error_handler + error_handler=error_handler, ) except ValueError as e: if e.args[0].startswith("Unable to guess signature"): @@ -202,7 +223,7 @@ **kwargs, timeout=const_TIMEOUT, reply_handler=reply_handler, - error_handler=error_handler + error_handler=error_handler, ) else: @@ -216,8 +237,9 @@ fut = loop.create_future() super().bridge_connect( callback=lambda: loop.call_soon_threadsafe(fut.set_result, None), - errback=lambda e: loop.call_soon_threadsafe(fut.set_exception, e) + errback=lambda e: loop.call_soon_threadsafe(fut.set_exception, e), ) return fut + ##ASYNC_METHODS_PART##