numpydantic/docs/todo.md

50 lines
No EOL
1.5 KiB
Markdown

# 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
```{todo}
Support pydantic value/range constraints - less than, greater than, etc.
```
```{todo}
Support different precision modes - eg. exact precision, or minimum precision
where specifying a float32 would also accept a float64, etc.
```
## Metadata
```{todo}
Use names in nptyping annotations in generated JSON schema metadata
```
## All TODOs
```{todolist}
```