diff --git a/_plotly_utils/basevalidators.py b/_plotly_utils/basevalidators.py index ff10a491f45..db6d4e4d4a4 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 b3bc03a13f0..c366e229ea5 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)