From ce2e0a01f51b09ec1d87a951d70ba3befa66293e Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Mon, 5 Dec 2022 20:29:08 +0100 Subject: [PATCH] single elements of numpy arrays are not of native type --- python/damask/_config.py | 6 ++++-- python/tests/test_Config.py | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/python/damask/_config.py b/python/damask/_config.py index f6714cd81..39db34834 100644 --- a/python/damask/_config.py +++ b/python/damask/_config.py @@ -41,8 +41,10 @@ class NiceDumper(yaml.SafeDumper): return self.represent_data(data.tolist()) if isinstance(data, Rotation): return self.represent_data(data.quaternion.tolist()) - else: - return super().represent_data(data) + if hasattr(data, 'dtype'): + return self.represent_data(data.item()) + + return super().represent_data(data) def ignore_aliases(self, data: Any) -> bool: diff --git a/python/tests/test_Config.py b/python/tests/test_Config.py index e6fa2daff..0fce31106 100644 --- a/python/tests/test_Config.py +++ b/python/tests/test_Config.py @@ -46,7 +46,8 @@ class TestConfig: assert Config.load(tmp_path/'config.yaml') == config def test_numpy(self,tmp_path): - assert Config({'A':np.ones(3,'i')}).__repr__() == Config({'A':[1,1,1]}).__repr__() + assert Config({'A':np.ones(3,'i'), 'B':np.ones(1)[0]}).__repr__() == \ + Config({'A':[1,1,1], 'B':1.0}).__repr__() def test_abstract_is_valid(self): with pytest.raises(NotImplementedError):