Skip to content

rshk/contracts

Repository files navigation

Contracts

image

image

Base library for defining lean "contract" models for Python.

Abstract

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.

Use cases

  • API clients
  • ORMs
  • Forms

Example model definition

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 😊.

About

Base library for defining lean "contract" models for Python.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published