Skip to content

dnadlinger/nptyping

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyPI version Downloads PyPI version codecov Code style

💡 Type hints for NumPy
💡 Extends numpy.typing
💡 Extensive dynamic type checks for dtypes and shapes of arrays

Example of a hinted function with nptyping:

>>> from nptyping import NDArray, Int, Shape

>>> def func(arr: NDArray[Shape["2, 2"], Int]) -> None:
...     pass

Example of instance checking:

>>> from numpy import array

>>> isinstance(array([[1, 2], [3, 4]]), NDArray[Shape["2, 2"], Int])
True

>>> isinstance(array([[1., 2.], [3., 4.]]), NDArray[Shape["2, 2"], Int])
False

>>> isinstance(array([1, 2, 3, 4]), NDArray[Shape["2, 2"], Int])
False

nptyping also provides assert_isinstance. In contrast to assert isinstance(...), this won't cause IDEs or MyPy complaints. Here is an example:

>>> from nptyping import assert_isinstance
>>> assert_isinstance(array([1]), NDArray[Shape["1"], Int])
True

Here is an example of how detailed expressions can become with nptyping:

def plan_route(locations: NDArray[Shape["[from, to], [x, y]"], Float]) -> NDArray[Shape["* stops, [x, y]"], Float]:
    ...

More examples can be found in the documentation.

Installation

pip install nptyping

Documentation

  • User documentation
    The place to go if you are using this library.

  • Release notes
    To see what's new, check out the release notes.

  • Contributing
    If you're interested in developing along, find the guidelines here.

  • Licence
    If you want to check out how open source this library is.

About

💡 Type hints for Numpy

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%