Skip to main content

Pydantic Model integration of the NumPy array

Reason this release was yanked:

Numpy version constraints are incorrect.

Project description

pydantic-numpy

Integrate NumPy into Pydantic, and provide tooling! NumpyModel make it possible to dump and load np.ndarray within model fields!

Install

pip install pydantic-numpy

Usage

For more examples see test_ndarray.py

import pydantic_numpy.dtype as pnd
from pydantic_numpy import NDArray, NDArrayFp32, NumpyModel


class MyPydanticNumpyModel(NumpyModel):
    K: NDArray[float, pnd.float32]
    C: NDArrayFp32  # <- Shorthand for same type as K


# Instantiate from array
cfg = MyPydanticNumpyModel(K=[1, 2])
# Instantiate from numpy file
cfg = MyPydanticNumpyModel(K={"path": "path_to/array.npy"})
# Instantiate from npz file with key
cfg = MyPydanticNumpyModel(K={"path": "path_to/array.npz", "key": "K"})

cfg.K
# np.ndarray[np.float32]

cfg.dump("path_to_dump_dir", "object_id")
cfg.load("path_to_dump_dir", "object_id")

NumpyModel.load requires the original mode, use model_agnostic_load when you have several models that may be the right model.

Data type (dtype) support!

This package also comes with pydantic_numpy.dtype, which adds subtyping support such as NDArray[float, pnd.float32]. All subfields must be from this package as numpy dtypes have no Pydantic support, which is implemented in this package through the generic class workflow.

Considerations

You can install from cheind's repository if you want Python 3.8 support, but this version only support Pydantic V1 and will not work with V2.

Licensing notice

As of version 3.0.0 the license has moved over to BSD-4. The versions prior are under the MIT license.

History

The original idea originates from this discussion, and forked from cheind's repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_numpy-3.0.0.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

pydantic_numpy-3.0.0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file pydantic_numpy-3.0.0.tar.gz.

File metadata

  • Download URL: pydantic_numpy-3.0.0.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.3 Linux/6.4.4-zen1-1-zen

File hashes

Hashes for pydantic_numpy-3.0.0.tar.gz
Algorithm Hash digest
SHA256 1ace95bcf32a21bd32978bbd86e92dcdddfe24b46cbc641fff0a6f6c030c37cf
MD5 f1462d17ec8240d24f2585e274c3e1f9
BLAKE2b-256 b1342c94571f143fe443de931e970810152e2b24e07ae1d486e815c99fb3ca58

See more details on using hashes here.

File details

Details for the file pydantic_numpy-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: pydantic_numpy-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.3 Linux/6.4.4-zen1-1-zen

File hashes

Hashes for pydantic_numpy-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 56ec3d901c00a7aa01fd174a690eeaa929576d18a8a6da2252dc1956b15def62
MD5 a8c8a8b20e7395f178a2cf80dc4ddcc7
BLAKE2b-256 de82765b8b4a0c588fab324ed17b221513a34ccff4ab43bb913dd78d9390c67d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page