From 13dc7907b558d3dce57921cf8c16c66dc8be0c20 Mon Sep 17 00:00:00 2001 From: Tobias Hangleiter <tobias.hangleiter@rwth-aachen.de> Date: Tue, 4 Jul 2023 20:40:53 +0200 Subject: [PATCH] Properly use default arg of descriptor class Bound --- qutil/domains.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/qutil/domains.py b/qutil/domains.py index b2bff87b..9b6f2f1f 100644 --- a/qutil/domains.py +++ b/qutil/domains.py @@ -27,8 +27,11 @@ class Bound(Generic[_RealT]): def __set_name__(self, owner, name): self._name = f'_{name}' - def __get__(self, instance, owner) -> _RealT: - value = getattr(instance, self._name, set()) + def __get__(self, instance, owner=None) -> _RealT: + if instance is None: + return self.default + + value = getattr(instance, self._name, {self.default}) evaluated = set() for item in value: if callable(item): @@ -36,7 +39,7 @@ class Bound(Generic[_RealT]): else: evaluated.add(item) if self._name.startswith('_lower'): - lower = max(evaluated, default=inf) + lower = max(evaluated) if self.integral: try: return self.cast_lower(lower) @@ -44,7 +47,7 @@ class Bound(Generic[_RealT]): return lower return lower if self._name.startswith('_upper'): - upper = min(evaluated, default=-inf) + upper = min(evaluated) if self.integral: try: return self.cast_upper(upper) @@ -53,7 +56,7 @@ class Bound(Generic[_RealT]): return upper raise NameError('Bound descriptor instance name should start with lower or upper') - def __set__(self, instance, value): + def __set__(self, instance, value: _BoundT): if value is self: value = self.default if not is_iterable(value): -- GitLab