From e57959f4c84bbec191771a1598e270bfc19b6c7f Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 8 Jun 2023 11:21:31 -0400 Subject: [PATCH] python: mark _SharedObject._{get,put}_ref as abstract methods _get_ref and _put_ref must be implemented by any sub-class of _SharedObject, marking them as abstract methods could help find mistakes. Change-Id: I0e161a0bbc1c432d9ed59279d3e4b1b6f6a26215 Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/10239 Reviewed-by: Philippe Proulx --- src/bindings/python/bt2/bt2/object.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/bindings/python/bt2/bt2/object.py b/src/bindings/python/bt2/bt2/object.py index fed138ec..c1a23fdf 100644 --- a/src/bindings/python/bt2/bt2/object.py +++ b/src/bindings/python/bt2/bt2/object.py @@ -3,6 +3,9 @@ # Copyright (c) 2017 Philippe Proulx +import abc + + class _BaseObject: # Ensure that the object always has _ptr set, even if it throws during # construction. @@ -69,14 +72,14 @@ class _UniqueObject(_BaseObject): # Python object that owns a reference to a Babeltrace object. -class _SharedObject(_BaseObject): - +class _SharedObject(_BaseObject, abc.ABC): # Get a new reference on ptr. # # This must be implemented by subclasses to work correctly with a pointer # of the native type they wrap. @staticmethod + @abc.abstractmethod def _get_ref(ptr): raise NotImplementedError @@ -86,6 +89,7 @@ class _SharedObject(_BaseObject): # of the native type they wrap. @staticmethod + @abc.abstractmethod def _put_ref(ptr): raise NotImplementedError -- 2.34.1