Skip to main content

No project description provided

Project description

CI codecov

Extendable Pydantic

This addons provides a new type used to declare Pydantic model as Extendable class.

From release 1.0.0 it only supports Pydantic >= 2.0.0.

from pydantic import BaseModel
from extendable_pydantic import ExtendableModelMeta
from extendable import context, registry

class Location(BaseModel, metaclass=ExtendableModelMeta):
    lat = 0.1
    lng = 10.1

class ExtendedLocation(Location, extends=Location):
    name: str

_registry = registry.ExtendableClassesRegistry()
context.extendable_registry.set(_registry)
_registry.init_registry()

loc = Location(**{"lat": 12.3, "lng": 13.2, "name": "My Loc"})

loc.model_dump() == {"lat": 12.3, "lng": 13.2, "name": "My Loc"}
#> True

loc.model_json_schema()
#> {'title': 'Location', 'type': 'object', 'properties': {'lat': {'title': 'Lat', 'default': 0.1, 'type': 'number'}, 'lng': {'title': 'Lng', 'default': 10.1, 'type': 'number'}, 'name': {'title': 'Name', 'type': 'string'}}, 'required': ['name']}

Development

pip install -e .

Then, copy extendable_pydantic_patcher.pth to $VIRTUAL_ENV/lib/python3.10/site-packages.

Release

  • run ``bumpversion patch|minor|major --list
  • Check the new_version value returned by the previous command
  • run towncrier build.
  • Inspect and commit the updated HISTORY.rst.
  • git tag {new_version} ; git push --tags.

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

extendable_pydantic-1.3.2.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

extendable_pydantic-1.3.2-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file extendable_pydantic-1.3.2.tar.gz.

File metadata

  • Download URL: extendable_pydantic-1.3.2.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for extendable_pydantic-1.3.2.tar.gz
Algorithm Hash digest
SHA256 87807ffe59663cdc927360d0c343f649c3b38e21282b23b101d1b4527507cca8
MD5 e1ed847656258d8240de3bbf009e1de8
BLAKE2b-256 276a7301b09bf9b969bff83f2e82ff72a9fe687de47a88bb7712955ddf4e0c95

See more details on using hashes here.

File details

Details for the file extendable_pydantic-1.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for extendable_pydantic-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8d74af55cb577204577186ef3bb4748bb4aab5e52821d917ec7b727af9cde4d3
MD5 a3b28ef7a06bd5ba7833ffb8fb6c2986
BLAKE2b-256 aa0e7aeb8f7974366a7bb3fea76b0140342d1af4f60575a98129ed3166c5c43a

See more details on using hashes here.

Supported by

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