A curated list of awesome Python libraries, which implement models, schemas, serializers/deserializers, ODM's/ORM's, Active Records or similar patterns.
Model, Schema
Libraries implementing some kind of model, letting you to serialize/deserialize python object to some data structures.
ODM, ORM, Active Record
Libraries, implementing ODM/ORM/Active Record patterns, letting you to work with external objects (REST, DB) like normal python instances.
acid - SQLite for NoSQL.
- 👻 butterdb - butterdb is a Python object mapper for Google Drive Spreadsheets.
django - The Web framework for perfectionists with deadlines (includes ORM layer).
finch - Asynchronous RESTful API consumer for Python.
flywheel - Object mapper for Amazon's DynamoDB.
kev - Python ORM for key-value stores. Currently supported backends are Redis, S3, and a S3/Redis hybrid backend.
modular-odm - A database-agnostic Object-Document Mapper for Python.
mongoengine - A Python Object-Document-Mapper for working with MongoDB.
orator - The Orator ORM provides a simple yet beautiful ActiveRecord implementation.
pony - Pony Object Relational Mapper.
peewee - a small, expressive orm -- supports postgresql, mysql and sqlite.
py-rest-orm - Generic Python REST ORM. Inspired by Django. Powered by Requests.
python-rest-model - A standard way to consume a RESTful service, inspired by Django models.
pyresto - A generic ORM framework for RESTful APIs.
pymodm - A Pythonic, object-oriented interface for working with MongoDB.
PynamoDB - A pythonic interface to Amazon's DynamoDB.
redisco - A Python Library for Simple Models and Containers Persisted in Redis.
remodel - Very simple yet powerful and extensible Object Document Mapper for RethinkDB, written in Python.
restorm - RestORM allows you to interact with resources as if they were objects.
- 👻 storm - Storm is an object-relational mapper (ORM) for Python developed at Canonical.
- 👻 sqlobject - SQLObject is a popular Object Relational Manager for providing an object interface to your database, with tables as classes, rows as instances, and columns as attributes.
wukong - An ORM Client library for SolrCloud.
yadm - Yet Another Document Mapper (ODM) for MongoDB.
walrus - Lightweight Python utilities for working with Redis.
Data validation
Libraries for validating custom data structures.
cerberus - Lightweight, extensible data validation library for Python.
destructure - Easy declarative schema validation with optional name-binding.
jsonschema - jsonschema is an implementation of JSON Schema for Python (supporting 2.7+ including Python 3).
pyschemes - PySchemes is a library for validating data structures in Python.
pyvaru - Rule based data validation library for python 3.
required - Required is a simple library which allows you to validate dependencies across multiple fields.
schema - schema is a library for validating Python data structures, such as those obtained from config-files, forms, external services or command-line parsing, converted from JSON/YAML (or something else) to Python data-types.
strictyaml - Type-safe YAML parser and validator.
valideer - Lightweight data validation and adaptation Python library.
validr - A simple, fast, extensible python library for data validation.
voluptuous - Voluptuous, despite the name, is a Python data validation library. It is primarily intended for validating data coming into Python as JSON, YAML, etc.
Other resources
- fullstackpython: Object-relational mappers (ORMs)
- Python ORM/ODM Examples, For The Sleepy
- martinfowler: Active Record
- martinfowler: Data Mapper
- wiki: Object-relational mapping
- Higher Level Database Programming
Other Awesome Lists
List of lists.
- Monty
- Python
Contributing
If you know some project/library that is not listed here, just let me know! Or even better, create a pull request.