diff mbox series

[2/6] python3-pydbus: remove obsolete recipe

Message ID 20230524171438.122588-2-ross.burton@arm.com
State Under Review
Headers show
Series [1/6] python3-pydbus-manager: remove obsolete recipe | expand

Commit Message

Ross Burton May 24, 2023, 5:14 p.m. UTC
From: Ross Burton <ross.burton@arm.com>

This project has been untouched since 2018 and doesn't appear to have
any real dependents.

If something similar to pydbus is needed, then a maintained alternative
would be https://github.com/rhinstaller/dasbus (recipe available in
meta-anaconda).

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 .../packagegroups/packagegroup-meta-python.bb |   1 -
 .../0001-Support-asynchronous-calls-58.patch  |  93 --------
 ...mation-between-D-Bus-errors-and-exce.patch | 203 ------------------
 .../python/python3-pydbus_0.6.0.bb            |  19 --
 4 files changed, 316 deletions(-)
 delete mode 100644 meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch
 delete mode 100644 meta-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch
 delete mode 100644 meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
diff mbox series

Patch

diff --git a/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index c78fd1e7f7..982e41303c 100644
--- a/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -314,7 +314,6 @@  RDEPENDS:packagegroup-meta-python3 = "\
     python3-pycodestyle \
     python3-pyconnman \
     python3-pycurl \
-    python3-pydbus \
     python3-pydicti \
     python3-pyephem \
     python3-pyexpect \
diff --git a/meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch b/meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch
deleted file mode 100644
index eb97f05850..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch
+++ /dev/null
@@ -1,93 +0,0 @@ 
-From 39a7d79ee6c548902fbac8b95c934af7e4c69260 Mon Sep 17 00:00:00 2001
-From: Vendula Poncova <vponcova@redhat.com>
-Date: Thu, 2 Aug 2018 15:30:45 +0800
-Subject: [PATCH 1/2] Support asynchronous calls (#58)
-
-Added support for asynchronous calls of methods. A method is called
-synchronously unless its callback parameter is specified. A callback
-is a function f(*args, returned=None, error=None), where args is
-callback_args specified in the method call, returned is a return
-value of the method and error is an exception raised by the method.
-
-Example of an asynchronous call:
-
-def func(x, y, returned=None, error=None):
-  pass
-
-proxy.Method(a, b, callback=func, callback_args=(x, y))
-
-Upstream-Status: Backport [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- pydbus/proxy_method.py | 44 ++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 38 insertions(+), 6 deletions(-)
-
-diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
-index 8798edd..4ea4304 100644
---- a/pydbus/proxy_method.py
-+++ b/pydbus/proxy_method.py
-@@ -65,15 +65,34 @@ class ProxyMethod(object):
- 
- 		# Python 2 sux
- 		for kwarg in kwargs:
--			if kwarg not in ("timeout",):
-+			if kwarg not in ("timeout", "callback", "callback_args"):
- 				raise TypeError(self.__qualname__ + " got an unexpected keyword argument '{}'".format(kwarg))
- 		timeout = kwargs.get("timeout", None)
-+		callback = kwargs.get("callback", None)
-+		callback_args = kwargs.get("callback_args", tuple())
-+
-+		call_args = (
-+			instance._bus_name,
-+			instance._path,
-+			self._iface_name,
-+			self.__name__,
-+			GLib.Variant(self._sinargs, args),
-+			GLib.VariantType.new(self._soutargs),
-+			0,
-+			timeout_to_glib(timeout),
-+			None
-+		)
-+
-+		if callback:
-+			call_args += (self._finish_async_call, (callback, callback_args))
-+			instance._bus.con.call(*call_args)
-+			return None
-+		else:
-+			ret = instance._bus.con.call_sync(*call_args)
-+			return self._unpack_return(ret)
- 
--		ret = instance._bus.con.call_sync(
--			instance._bus_name, instance._path,
--			self._iface_name, self.__name__, GLib.Variant(self._sinargs, args), GLib.VariantType.new(self._soutargs),
--			0, timeout_to_glib(timeout), None).unpack()
--
-+	def _unpack_return(self, values):
-+		ret = values.unpack()
- 		if len(self._outargs) == 0:
- 			return None
- 		elif len(self._outargs) == 1:
-@@ -81,6 +100,19 @@ class ProxyMethod(object):
- 		else:
- 			return ret
- 
-+	def _finish_async_call(self, source, result, user_data):
-+		error = None
-+		return_args = None
-+
-+		try:
-+			ret = source.call_finish(result)
-+			return_args = self._unpack_return(ret)
-+		except Exception as err:
-+			error = err
-+
-+		callback, callback_args = user_data
-+		callback(*callback_args, returned=return_args, error=error)
-+
- 	def __get__(self, instance, owner):
- 		if instance is None:
- 			return self
--- 
-2.7.4
-
diff --git a/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch b/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch
deleted file mode 100644
index 9c9b9b779b..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch
+++ /dev/null
@@ -1,203 +0,0 @@ 
-From 69968dec867053e38de0b91d76ac41d5a5735e36 Mon Sep 17 00:00:00 2001
-From: Vendula Poncova <vponcova@redhat.com>
-Date: Thu, 2 Aug 2018 15:31:56 +0800
-Subject: [PATCH 2/2] Support transformation between D-Bus errors and
- exceptions.
-
-Exceptions can be registered with decorators, raised in a remote
-method and recreated after return from the remote call.
-
-Upstream-Status: Backport [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- pydbus/error.py        | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++
- pydbus/proxy_method.py | 18 ++++++++--
- pydbus/registration.py | 16 ++++++---
- 3 files changed, 123 insertions(+), 8 deletions(-)
- create mode 100644 pydbus/error.py
-
-diff --git a/pydbus/error.py b/pydbus/error.py
-new file mode 100644
-index 0000000..aaa3510
---- /dev/null
-+++ b/pydbus/error.py
-@@ -0,0 +1,97 @@
-+from gi.repository import GLib, Gio
-+
-+
-+def register_error(name, domain, code):
-+	"""Register and map decorated exception class to a DBus error."""
-+	def decorated(cls):
-+		error_registration.register_error(cls, name, domain, code)
-+		return cls
-+
-+	return decorated
-+
-+
-+def map_error(error_name):
-+	"""Map decorated exception class to a DBus error."""
-+	def decorated(cls):
-+		error_registration.map_error(cls, error_name)
-+		return cls
-+
-+	return decorated
-+
-+
-+def map_by_default(cls):
-+	"""Map decorated exception class to all unknown DBus errors."""
-+	error_registration.map_by_default(cls)
-+	return cls
-+
-+
-+class ErrorRegistration(object):
-+	"""Class for mapping exceptions to DBus errors."""
-+
-+	_default = None
-+	_map = dict()
-+	_reversed_map = dict()
-+
-+	def map_by_default(self, exception_cls):
-+		"""Set the exception class as a default."""
-+		self._default = exception_cls
-+
-+	def map_error(self, exception_cls, name):
-+		"""Map the exception class to a DBus name."""
-+		self._map[name] = exception_cls
-+		self._reversed_map[exception_cls] = name
-+
-+	def register_error(self, exception_cls, name, domain, code):
-+		"""Map and register the exception class to a DBus name."""
-+		self.map_error(exception_cls, name)
-+		return Gio.DBusError.register_error(domain, code, name)
-+
-+	def is_registered_exception(self, obj):
-+		"""Is the exception registered?"""
-+		return obj.__class__ in self._reversed_map
-+
-+	def get_dbus_name(self, obj):
-+		"""Get the DBus name of the exception."""
-+		return self._reversed_map.get(obj.__class__)
-+
-+	def get_exception_class(self, name):
-+		"""Get the exception class mapped to the DBus name."""
-+		return self._map.get(name, self._default)
-+
-+	def transform_message(self, name, message):
-+		"""Transform the message of the exception."""
-+		prefix = "{}:{}: ".format("GDBus.Error", name)
-+
-+		if message.startswith(prefix):
-+			return message[len(prefix):]
-+
-+		return message
-+
-+	def transform_exception(self, e):
-+		"""Transform the remote error to the exception."""
-+		if not isinstance(e, GLib.Error):
-+			return e
-+
-+		if not Gio.DBusError.is_remote_error(e):
-+			return e
-+
-+		# Get DBus name of the error.
-+		name = Gio.DBusError.get_remote_error(e)
-+		# Get the exception class.
-+		exception_cls = self.get_exception_class(name)
-+
-+		# Return the original exception.
-+		if not exception_cls:
-+			return e
-+
-+		# Return new exception.
-+		message = self.transform_message(name, e.message)
-+		exception = exception_cls(message)
-+		exception.dbus_name = name
-+		exception.dbus_domain = e.domain
-+		exception.dbus_code = e.code
-+		return exception
-+
-+
-+# Default error registration.
-+error_registration = ErrorRegistration()
-diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
-index 4ea4304..e9496f5 100644
---- a/pydbus/proxy_method.py
-+++ b/pydbus/proxy_method.py
-@@ -2,6 +2,7 @@ from gi.repository import GLib
- from .generic import bound_method
- from .identifier import filter_identifier
- from .timeout import timeout_to_glib
-+from .error import error_registration
- 
- try:
- 	from inspect import Signature, Parameter
-@@ -87,9 +88,20 @@ class ProxyMethod(object):
- 			call_args += (self._finish_async_call, (callback, callback_args))
- 			instance._bus.con.call(*call_args)
- 			return None
-+
- 		else:
--			ret = instance._bus.con.call_sync(*call_args)
--			return self._unpack_return(ret)
-+			result = None
-+			error = None
-+
-+			try:
-+				result = instance._bus.con.call_sync(*call_args)
-+			except Exception as e:
-+				error = error_registration.transform_exception(e)
-+
-+			if error:
-+				raise error
-+
-+			return self._unpack_return(result)
- 
- 	def _unpack_return(self, values):
- 		ret = values.unpack()
-@@ -108,7 +120,7 @@ class ProxyMethod(object):
- 			ret = source.call_finish(result)
- 			return_args = self._unpack_return(ret)
- 		except Exception as err:
--			error = err
-+			error = error_registration.transform_exception(err)
- 
- 		callback, callback_args = user_data
- 		callback(*callback_args, returned=return_args, error=error)
-diff --git a/pydbus/registration.py b/pydbus/registration.py
-index f531539..1d2cbcb 100644
---- a/pydbus/registration.py
-+++ b/pydbus/registration.py
-@@ -5,6 +5,7 @@ from . import generic
- from .exitable import ExitableWithAliases
- from functools import partial
- from .method_call_context import MethodCallContext
-+from .error import error_registration
- import logging
- 
- try:
-@@ -91,11 +92,16 @@ class ObjectWrapper(ExitableWithAliases("unwrap")):
- 			logger = logging.getLogger(__name__)
- 			logger.exception("Exception while handling %s.%s()", interface_name, method_name)
- 
--			#TODO Think of a better way to translate Python exception types to DBus error types.
--			e_type = type(e).__name__
--			if not "." in e_type:
--				e_type = "unknown." + e_type
--			invocation.return_dbus_error(e_type, str(e))
-+			if error_registration.is_registered_exception(e):
-+				name = error_registration.get_dbus_name(e)
-+				invocation.return_dbus_error(name, str(e))
-+			else:
-+				logger.info("name is not registered")
-+				e_type = type(e).__name__
-+				if not "." in e_type:
-+					e_type = "unknown." + e_type
-+
-+				invocation.return_dbus_error(e_type, str(e))
- 
- 	def Get(self, interface_name, property_name):
- 		type = self.readable_properties[interface_name + "." + property_name]
--- 
-2.7.4
-
diff --git a/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb b/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
deleted file mode 100644
index a1b9fffea6..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@ 
-DESCRIPTION = "Pythonic DBus library"
-HOMEPAGE = "https://pypi.python.org/pypi/pydbus/"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a916467b91076e631dd8edb7424769c7"
-
-SRC_URI += "file://0001-Support-asynchronous-calls-58.patch \
-            file://0002-Support-transformation-between-D-Bus-errors-and-exce.patch \
-"
-
-SRC_URI[md5sum] = "c6abd44862322679bd4e907bebc3e0d0"
-SRC_URI[sha256sum] = "4207162eff54223822c185da06c1ba8a34137a9602f3da5a528eedf3f78d0f2c"
-
-inherit pypi setuptools3
-
-S = "${WORKDIR}/pydbus-${PV}"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-pygobject \
-                  ${PYTHON_PN}-io \
-                  ${PYTHON_PN}-logging"