Base library for defining lean "contract" models for Python.
This is an implementation of "models" similar to those you see in most ORMs / forms definition systems, but with the main goal of keeping things as simple as possible.
No metaclasses or descriptors are involved; no hackish code messing up with standard Python objects functionality either.
The idea is to have a "layered" library, providing the bare bones needed to define your own schemas, along with some nice helpers for common cases.
- API clients
- ORMs
- Forms
from contracts.core import Contract, BaseField
# Use BaseField to define your field types, eg. StringField and
# IntegerField.
class MyModel(BaseObject):
first_name = StringField()
last_name = StringField()
age = IntegerField()
Then, create some library to make use of the schema somehow 😊.