From 9d65c49b10396c5a0a4086ce57ff7b7f120f4dd6 Mon Sep 17 00:00:00 2001 From: Daniel Kohler <11864045+ddkohler@users.noreply.github.com> Date: Mon, 11 Mar 2024 10:30:21 -0500 Subject: [PATCH 1/2] constants propagate units --- WrightTools/data/_data.py | 5 +++++ tests/data/chop.py | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/WrightTools/data/_data.py b/WrightTools/data/_data.py index 62624584..dd1eb20c 100644 --- a/WrightTools/data/_data.py +++ b/WrightTools/data/_data.py @@ -596,6 +596,11 @@ def _from_slice(self, idx, name=None, parent=None) -> Data: for const in list(self.constant_expressions) + constants: out.create_constant(const, verbose=False) + if const in self.constant_expressions: + dest_units = self.constants[self.constant_expressions.index(const)].units + else: + dest_units = self.axes[self.axis_expressions.index(const)].units + out.constants[out.constant_expressions.index(const)].convert(dest_units) for j, units in enumerate(new_axis_units): out.axes[j].convert(units) diff --git a/tests/data/chop.py b/tests/data/chop.py index e01c0238..a40b7db6 100755 --- a/tests/data/chop.py +++ b/tests/data/chop.py @@ -111,8 +111,10 @@ def test_3D_to_2D_units(): assert d.w2.size == 11 assert d.axis_expressions == ("wm", "w2") assert d.units == ("eV", "eV") - data.close() + w1 = d.constants[d.constant_names.index("w1")] + assert w1.units == "eV" chop.close() + data.close() def test_parent(): From 50b7e96ed0f05f34283bbed513f94d236596d9e2 Mon Sep 17 00:00:00 2001 From: Daniel Kohler <11864045+ddkohler@users.noreply.github.com> Date: Mon, 11 Mar 2024 10:37:02 -0500 Subject: [PATCH 2/2] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b23e472..acec7727 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/). ## [Unreleased] +### Fixed +- constants in chopped data will inherit the units of the original data + ## [3.5.2] ### Added