diff options
author | Bas van Beek <b.f.van.beek@vu.nl> | 2021-06-04 22:40:30 +0200 |
---|---|---|
committer | Bas van Beek <b.f.van.beek@vu.nl> | 2021-06-04 22:40:30 +0200 |
commit | 982cafd324d6b0a9c77b61f2ea3ca335812a2949 (patch) | |
tree | 3b142991b7e40d921f5188b4c957f4097d54b5ef | |
parent | 6790873334b143117f4e8d1f515def8c7fdeb9fb (diff) | |
download | numpy-982cafd324d6b0a9c77b61f2ea3ca335812a2949.tar.gz |
BUG: Fixe an issue wherein `_GenericAlias` could raise for non-tuple parameters
-rw-r--r-- | numpy/typing/_generic_alias.py | 2 | ||||
-rw-r--r-- | numpy/typing/tests/test_generic_alias.py | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/numpy/typing/_generic_alias.py b/numpy/typing/_generic_alias.py index 0d30f54ca..18a180440 100644 --- a/numpy/typing/_generic_alias.py +++ b/numpy/typing/_generic_alias.py @@ -104,7 +104,7 @@ class _GenericAlias: def __init__(self, origin: type, args: Any) -> None: self._origin = origin self._args = args if isinstance(args, tuple) else (args,) - self._parameters = tuple(_parse_parameters(args)) + self._parameters = tuple(_parse_parameters(self.__args__)) @property def __call__(self) -> type: diff --git a/numpy/typing/tests/test_generic_alias.py b/numpy/typing/tests/test_generic_alias.py index 0b9917439..27afe3927 100644 --- a/numpy/typing/tests/test_generic_alias.py +++ b/numpy/typing/tests/test_generic_alias.py @@ -41,6 +41,12 @@ class TestGenericAlias: @pytest.mark.parametrize("name,func", [ ("__init__", lambda n: n), + ("__init__", lambda n: _GenericAlias(np.ndarray, Any)), + ("__init__", lambda n: _GenericAlias(np.ndarray, (Any,))), + ("__init__", lambda n: _GenericAlias(np.ndarray, (Any, Any))), + ("__init__", lambda n: _GenericAlias(np.ndarray, T1)), + ("__init__", lambda n: _GenericAlias(np.ndarray, (T1,))), + ("__init__", lambda n: _GenericAlias(np.ndarray, (T1, T2))), ("__origin__", lambda n: n.__origin__), ("__args__", lambda n: n.__args__), ("__parameters__", lambda n: n.__parameters__), |