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