From ac8eb847daad3e394e716d7f29e1b184650c0fcf Mon Sep 17 00:00:00 2001 From: Christian Vedel Date: Fri, 16 Aug 2024 15:57:43 +0200 Subject: [PATCH 1/4] Remove full_value setter in Parameter --- .../Objects/new_variable/descriptor_number.py | 2 +- .../Objects/new_variable/parameter.py | 18 +----------------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/src/easyscience/Objects/new_variable/descriptor_number.py b/src/easyscience/Objects/new_variable/descriptor_number.py index 4fd25709..40bbf525 100644 --- a/src/easyscience/Objects/new_variable/descriptor_number.py +++ b/src/easyscience/Objects/new_variable/descriptor_number.py @@ -122,7 +122,7 @@ def value(self, value: numbers.Number) -> None: """ if not isinstance(value, numbers.Number) or isinstance(value, bool): raise TypeError(f'{value=} must be a number') - self._scalar.value = value + self._scalar.value = float(value) @property def unit(self) -> str: diff --git a/src/easyscience/Objects/new_variable/parameter.py b/src/easyscience/Objects/new_variable/parameter.py index b48f6a91..6f7b75fc 100644 --- a/src/easyscience/Objects/new_variable/parameter.py +++ b/src/easyscience/Objects/new_variable/parameter.py @@ -147,24 +147,8 @@ def full_value(self) -> Variable: return self._scalar @full_value.setter - @property_stack_deco def full_value(self, scalar: Variable) -> None: - """ - Set the value of self. This creates a scipp scalar with a unit. - - :param full_value: New value of self - """ - if not self.enabled: - if global_object.debug: - raise CoreSetException(f'{str(self)} is not enabled.') - return - if not isinstance(scalar, Variable) and len(scalar.dims) == 0: - raise TypeError(f'{scalar=} must be a Scipp scalar') - if not isinstance(scalar.value, numbers.Number) or isinstance(scalar.value, bool): - raise TypeError('value of Scipp scalar must be a number') - self._scalar = scalar - if self._callback.fset is not None: - self._callback.fset(scalar) + raise AttributeError(f'Full_value is read-only. Change the value and variance seperately. or create a new {self.__class__.__name__}.') # noqa: E501 @property def value(self) -> numbers.Number: From cf02e5ba0a8a67fa76bf7461d676d3a6d9d9ffd3 Mon Sep 17 00:00:00 2001 From: Christian Vedel Date: Mon, 26 Aug 2024 13:25:39 +0200 Subject: [PATCH 2/4] Ensure value is float --- src/easyscience/Objects/new_variable/parameter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/easyscience/Objects/new_variable/parameter.py b/src/easyscience/Objects/new_variable/parameter.py index 6f7b75fc..ec178ec9 100644 --- a/src/easyscience/Objects/new_variable/parameter.py +++ b/src/easyscience/Objects/new_variable/parameter.py @@ -199,7 +199,7 @@ def value(self, value: numbers.Number) -> None: value = self._constraint_runner(self._constraints.virtual, value) - self._scalar.value = value + self._scalar.value = float(value) if self._callback.fset is not None: self._callback.fset(self._scalar.value) From 7592c49d39e6dbf5beeef63996dddee308832617 Mon Sep 17 00:00:00 2001 From: Christian Vedel Date: Mon, 26 Aug 2024 13:52:01 +0200 Subject: [PATCH 3/4] fix test --- .../Objects/new_variable/test_parameter.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/tests/unit_tests/Objects/new_variable/test_parameter.py b/tests/unit_tests/Objects/new_variable/test_parameter.py index 017e76bd..5269d81b 100644 --- a/tests/unit_tests/Objects/new_variable/test_parameter.py +++ b/tests/unit_tests/Objects/new_variable/test_parameter.py @@ -292,15 +292,9 @@ def test_full_value_no_match_callback(self, parameter: Parameter): assert parameter._callback.fget.call_count == 1 def test_set_full_value(self, parameter: Parameter): - # When - self.mock_callback.fget.return_value = sc.scalar(1, unit='m') - - # Then - parameter.full_value = sc.scalar(2, unit='m') - - # Expect - parameter._callback.fset.assert_called_once_with(sc.scalar(2, unit='m')) - assert parameter._scalar == sc.scalar(2, unit='m') + # When Then Expect + with pytest.raises(AttributeError): + parameter.full_value = sc.scalar(2, unit='s') def test_copy(self, parameter: Parameter): # When Then From 474a3fa502eb8177629563ea6c0e6b506ab8d221 Mon Sep 17 00:00:00 2001 From: Christian Vedel Date: Mon, 26 Aug 2024 14:35:53 +0200 Subject: [PATCH 4/4] typo --- src/easyscience/Objects/new_variable/descriptor_number.py | 2 +- src/easyscience/Objects/new_variable/parameter.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/easyscience/Objects/new_variable/descriptor_number.py b/src/easyscience/Objects/new_variable/descriptor_number.py index 40bbf525..95c6fc5e 100644 --- a/src/easyscience/Objects/new_variable/descriptor_number.py +++ b/src/easyscience/Objects/new_variable/descriptor_number.py @@ -101,7 +101,7 @@ def full_value(self) -> Variable: @full_value.setter def full_value(self, full_value: Variable) -> None: - raise AttributeError(f'Full_value is read-only. Change the value and variance seperately. or create a new {self.__class__.__name__}.') # noqa: E501 + raise AttributeError(f'Full_value is read-only. Change the value and variance seperately. Or create a new {self.__class__.__name__}.') # noqa: E501 @property def value(self) -> numbers.Number: diff --git a/src/easyscience/Objects/new_variable/parameter.py b/src/easyscience/Objects/new_variable/parameter.py index ec178ec9..56dad214 100644 --- a/src/easyscience/Objects/new_variable/parameter.py +++ b/src/easyscience/Objects/new_variable/parameter.py @@ -148,7 +148,7 @@ def full_value(self) -> Variable: @full_value.setter def full_value(self, scalar: Variable) -> None: - raise AttributeError(f'Full_value is read-only. Change the value and variance seperately. or create a new {self.__class__.__name__}.') # noqa: E501 + raise AttributeError(f'Full_value is read-only. Change the value and variance seperately. Or create a new {self.__class__.__name__}.') # noqa: E501 @property def value(self) -> numbers.Number: