From e77799a64081327b593e7631b79005aedbb72624 Mon Sep 17 00:00:00 2001 From: Michael Carlstrom Date: Wed, 28 Feb 2024 10:56:01 -0500 Subject: [PATCH 1/2] Add types to TypeHash and moved away from __slots__ usage Signed-off-by: Michael Carlstrom --- rclpy/rclpy/type_hash.py | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/rclpy/rclpy/type_hash.py b/rclpy/rclpy/type_hash.py index f2f3ea4db..939c1245e 100644 --- a/rclpy/rclpy/type_hash.py +++ b/rclpy/rclpy/type_hash.py @@ -18,20 +18,12 @@ class TypeHash: _TYPE_HASH_SIZE = 32 - __slots__ = [ - '_version', - '_value', - ] - - def __init__(self, **kwargs): - assert all('_' + key in self.__slots__ for key in kwargs.keys()), \ - 'Invalid arguments passed to constructor: %r' % kwargs.keys() - - self.version = kwargs.get('version', -1) - self.value = kwargs.get('value', bytes(self._TYPE_HASH_SIZE)) + def __init__(self, version: int = -1, value: bytes = bytes(_TYPE_HASH_SIZE)): + self.version = version + self.value = value @property - def version(self): + def version(self) -> int: """ Get field 'version'. @@ -41,12 +33,12 @@ def version(self): return self._version @version.setter - def version(self, value): + def version(self, value: int) -> None: assert isinstance(value, int) self._version = value @property - def value(self): + def value(self) -> bytes: """ Get field 'value'. @@ -56,18 +48,16 @@ def value(self): return self._value @value.setter - def value(self, value): + def value(self, value: bytes) -> None: assert isinstance(value, bytes) self._value = value - def __eq__(self, other): + def __eq__(self, other: object) -> bool: if not isinstance(other, TypeHash): return False - return all( - self.__getattribute__(slot) == other.__getattribute__(slot) - for slot in self.__slots__) + return self.__dict__ == other.__dict__ - def __str__(self): + def __str__(self) -> str: if self._version <= 0 or len(self._value) != self._TYPE_HASH_SIZE: return 'INVALID' From 240c7f74c61ceb88084a61720aec996a860c56fc Mon Sep 17 00:00:00 2001 From: Michael Carlstrom Date: Fri, 8 Mar 2024 13:12:09 -0500 Subject: [PATCH 2/2] remove docstring types Signed-off-by: Michael Carlstrom --- rclpy/rclpy/type_hash.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/rclpy/rclpy/type_hash.py b/rclpy/rclpy/type_hash.py index 939c1245e..30b4e0b8e 100644 --- a/rclpy/rclpy/type_hash.py +++ b/rclpy/rclpy/type_hash.py @@ -28,7 +28,6 @@ def version(self) -> int: Get field 'version'. :returns: version attribute - :rtype: int """ return self._version @@ -43,7 +42,6 @@ def value(self) -> bytes: Get field 'value'. :returns: value attribute - :rtype: bytes """ return self._value