From b0d8cb1a80da20ab0a116e358bbadec16ed79c65 Mon Sep 17 00:00:00 2001 From: henrikjacobsenfys Date: Wed, 9 Jul 2025 14:17:39 +0200 Subject: [PATCH 1/3] Update __repr__ to handle small and large numbers --- src/easyscience/variable/descriptor_number.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/easyscience/variable/descriptor_number.py b/src/easyscience/variable/descriptor_number.py index 1b1e257..647a539 100644 --- a/src/easyscience/variable/descriptor_number.py +++ b/src/easyscience/variable/descriptor_number.py @@ -299,9 +299,15 @@ def __repr__(self) -> str: string = '<' string += self.__class__.__name__ + ' ' string += f"'{self._name}': " - string += f'{self._scalar.value:.4f}' - if self.variance: - string += f' \u00b1 {self.error:.4f}' + if np.abs(self._scalar.value)>1e4 or (np.abs(self._scalar.value)<1e-4 and np.abs(self._scalar.value)>0): + # Use scientific notation for large or small values + string += f'{self._scalar.value:.3e}' + if self.variance: + string += f' \u00b1 {self.error:.3e}' + else: + string += f'{self._scalar.value:.4f}' + if self.variance: + string += f' \u00b1 {self.error:.4f}' obj_unit = self._scalar.unit if obj_unit == 'dimensionless': obj_unit = '' From 0f7aef7116938c7da5970fd6ea5c07b3748b64ec Mon Sep 17 00:00:00 2001 From: henrikjacobsenfys Date: Wed, 9 Jul 2025 14:29:09 +0200 Subject: [PATCH 2/3] pin versoin of bumps --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index cfa5f73..280d899 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,7 +30,7 @@ classifiers = [ requires-python = ">=3.10" dependencies = [ "asteval", - "bumps", + "bumps<1.0.0", "DFO-LS", "lmfit", "numpy", From fc2f0a698873b4cd989a9757733e70730957a813 Mon Sep 17 00:00:00 2001 From: henrikjacobsenfys Date: Fri, 18 Jul 2025 13:40:23 +0200 Subject: [PATCH 3/3] Update descriptor_number.py --- src/easyscience/variable/descriptor_number.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/easyscience/variable/descriptor_number.py b/src/easyscience/variable/descriptor_number.py index 647a539..66f0e7a 100644 --- a/src/easyscience/variable/descriptor_number.py +++ b/src/easyscience/variable/descriptor_number.py @@ -299,7 +299,7 @@ def __repr__(self) -> str: string = '<' string += self.__class__.__name__ + ' ' string += f"'{self._name}': " - if np.abs(self._scalar.value)>1e4 or (np.abs(self._scalar.value)<1e-4 and np.abs(self._scalar.value)>0): + if np.abs(self._scalar.value)>1e4 or (np.abs(self._scalar.value)<1e-4 and self._scalar.value != 0): # Use scientific notation for large or small values string += f'{self._scalar.value:.3e}' if self.variance: @@ -491,4 +491,4 @@ def _base_unit(self) -> str: return string[i:] elif letter not in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '+', '-']: return string[i:] - return '' \ No newline at end of file + return ''