9

I try to use numpy with nptyping's Array to do my typehinting.

I tried the following:

enemy_hand: Array[float, 48] = np.zeros(48)

I get an typerror:

Expected Type 'Array[float, Any]', got 'ndarray' instead

as far as I understand from this: https://pypi.org/project/nptyping/ thats how it should look.

NameVergessen
  • 598
  • 8
  • 26
  • What line gives you that error? type hinting is only for the user. Also I tried to replicate your problem but `isinstance` gives the expected outputs. Please update your question to include some more information about the error and how you're encountering it – sshashank124 Jan 14 '20 at 07:22
  • @sshashank124 as pointed out in a comment on my deleted answer, asker is trying to do [Variable Annotation](https://www.python.org/dev/peps/pep-0526/) – Daniel F Jan 14 '20 at 07:51

1 Answers1

8

nptyping is currently useless for static analysis. Quoting a post by the library's developer on its issue tracker,

mypy is just not supported by nptyping (yet)

I wouldn't put much hope in that "yet". NumPy's dtype and shape handling is very hard to fit into the typing/mypy static type model, and nptyping's own design decisions are a poor fit for NumPy itself. For example, it doesn't look like the dev ever considered arrays that aren't 2D, so Array[str, 3] represents a 2D array with 3 rows and unspecified columns instead of a 3-element 1D array. All the implementation is in terms of rows and columns, too.

As far as I can tell, the only real functionality nptyping has is isinstance checks, and even that's buggy.

user2357112
  • 260,549
  • 28
  • 431
  • 505