numpydantic/docs/todo.md

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