annotation¶
A pydantic.GetPydanticCoreSchema - like type annotation
to make type checkers happy :)
- NDArraySchema(shape: type[~numpydantic.validation.shape.Shape[*, ...]] | ~numpydantic.validation.shape.Shape[*, ...] | str | tuple = Shape['*, ...'], dtype: str | type | ~typing.Any | ~numpy.generic = typing.Any) GetPydanticSchema[source]¶
Specify shape and dtype constraints in an
typing.Annotatedtype.In addition to validating dtype and shape constraints, the
typeof the array will also be validated - i.e. if the annotation is for anumpy.ndarray, adask.array.Arraywill be rejected even if it has the correct shape and dtype.Examples
>>> from typing import Annotated as A >>> from numpydantic import Shape, NDArraySchema >>> import numpy as np >>> from pydantic import BaseModel
>>> class MyModel(BaseModel): >>> array: A[np.ndarray, NDArraySchema(Shape(3, 3), np.uint8)]
or, without Shape
>>> class MyOtherModel(BaseModel): >>> array: A[np.ndarray, NDArraySchema((3, 3), np.uint8)]
Valid:
>>> MyModel(array=np.ones((3, 3), dtype=np.uint8))
Not valid:
>>> MyModel(array=dask.array.ones((3, 3), dtype=np.uint8))
- Parameters:
Returns: