1.5 KiB
TODO
v2
We will be moving away from using nptyping in v2.0.0.
It was written for an older era in python before the dramatic changes in the Python type system and is no longer actively maintained. We will be reimplementing a syntax that extends its array specification syntax to include things like ranges and extensible dtypes with varying precision (and is much less finnicky to deal with).
(type_checkers)=
Type Checker Integration
The .pyi
stubfile generation ({mod}numpydantic.meta
) works for
keeping type checkers from complaining about various array formats
not literally being NDArray
objects, but it doesn't do the kind of
validation we would want to be able to use NDArray
objects as full-fledged
python types, including validation propagation through scopes and
IDE type checking for invalid literals.
We want to hook into the type checking process to satisfy these type checkers:
- mypy - has hooks, can be done with an extension
- pyright - unclear if has hooks, might nee to monkeypatch
- pycharm - unlikely this is possible, extensions need to be in Java and installed separately
Validation
Support pydantic value/range constraints - less than, greater than, etc.
Support different precision modes - eg. exact precision, or minimum precision
where specifying a float32 would also accept a float64, etc.
Metadata
Use names in nptyping annotations in generated JSON schema metadata
All TODOs