From 2718db3d57e1e37a9e5e44ec2b5617efd6f064ad Mon Sep 17 00:00:00 2001 From: ankokumoyashi Date: Thu, 7 Mar 2019 08:17:12 +0900 Subject: [PATCH] fix to_scalar_or_list when v.ndim == 0 (#1444) * fix to_scalar_or_list when v.ndim == 0 * add ndim=0 testcase to protect from regressions --- _plotly_utils/basevalidators.py | 2 ++ _plotly_utils/tests/validators/test_dataarray_validator.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/_plotly_utils/basevalidators.py b/_plotly_utils/basevalidators.py index ff10a491f4..db6d4e4d4a 100644 --- a/_plotly_utils/basevalidators.py +++ b/_plotly_utils/basevalidators.py @@ -55,6 +55,8 @@ def to_scalar_or_list(v): if isinstance(v, (list, tuple)): return [to_scalar_or_list(e) for e in v] elif np and isinstance(v, np.ndarray): + if v.ndim == 0: + return v.item() return [to_scalar_or_list(e) for e in v] elif pd and isinstance(v, (pd.Series, pd.Index)): return [to_scalar_or_list(e) for e in v] diff --git a/_plotly_utils/tests/validators/test_dataarray_validator.py b/_plotly_utils/tests/validators/test_dataarray_validator.py index b3bc03a13f..c366e229ea 100644 --- a/_plotly_utils/tests/validators/test_dataarray_validator.py +++ b/_plotly_utils/tests/validators/test_dataarray_validator.py @@ -14,7 +14,7 @@ def validator(): # ----- # ### Acceptance ### @pytest.mark.parametrize('val', [ - [], [1], [''], (), ('Hello, ', 'world!'), ['A', 1, 'B', 0, 'C'] + [], [1], [''], (), ('Hello, ', 'world!'), ['A', 1, 'B', 0, 'C'], [np.array(1), np.array(2)] ]) def test_validator_acceptance_simple(val, validator): coerce_val = validator.validate_coerce(val)