A lib to define pydantic models extendable at runtime.
Project description
pydantic-ext
This addons provides a new type used to declare Pydantic model as Extendable class.
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.dict() == {"lat": 12.3, "lng": 13.2, "name": "My Loc"}
#> True
loc.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']}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for extendable_pydantic-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f04199a9f9cc3f9cdd7265ff26a34baae43bf4c3a98a8ff60a92205fe7369576 |
|
MD5 | 4e713b3f8caa0abe1937f4471a61868a |
|
BLAKE2b-256 | 831f00ac1775aebeff9eb0ca9dd2446faf00d41434914a23e8673fa0339efc98 |
Close
Hashes for extendable_pydantic-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37d52291bbcbc10ad778891bf50f27ffcecaa441138ad5656c12ff10a2c66599 |
|
MD5 | f6a558445285e0f8a0b472dbaefc7162 |
|
BLAKE2b-256 | 0f52c0f086d920f2c8f7782df159d0098ce93968caf12002b52cc3a3745db26e |