mirror of
https://github.com/p2p-ld/numpydantic.git
synced 2024-11-10 00:34:29 +00:00
50 lines
No EOL
1.5 KiB
Markdown
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}
|
|
|
|
``` |