Awesome Open Source
Awesome Open Source

Awesome Python Models Awesome

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.

  • 👻 ascetic - Ascetic, a lightweight Python datamapper ORM.
  • alt text attrs - Python Classes Without Boilerplate.
  • alt text booby - data modeling and validation Python library.
  • alt text causalmodels - causal modeling in Python.
  • alt text colander - A serialization/deserialization/validation library for strings, mappings and lists.
  • alt text composite - Declarative XML files parse, unparse with help of lxml library.
  • alt text datastore.objects - simple object mapper on top of datastore (not relational).
  • alt text dirty-models - Dirty model for python.
  • dejavu - Dejavu is a thread-safe Object-Relational Mapper for Python applications.
  • alt text gnarl - Lightweight module to define serializable, schema-validated classes
  • alt text guts - Lightweight declarative YAML and XML data binding for Python.
  • alt text jsonmapper - Python JSON<->Object mapper.
  • alt text jsonmodels - jsonmodels is library to make it easier for you to deal with structures that are converted to, or read from JSON.
  • alt text jsonobjects - jsonobjects allows you to declaratively specify how to extract and convert elements from a JSON document.
  • alt text jsonobject - A simple json-object mapping for Python.
  • 👻 jsonpickle - Python library for serializing any arbitrary object graph into JSON.
  • alt text kim - A JSON Serialization and Marshaling framework.
  • alt text lazycontract - Python library to define declarative contracts for serialization and deserialization.
  • alt text lupin - Python document object mapper (load python object from JSON and vice-versa).
  • alt text marshmallow - A lightweight library for converting complex objects to and from simple Python datatypes.
  • 👻 metaparams - Python meta framework for Parameters in classes.
  • alt text micromodels - Declarative dictionary-based model classes for Python.
  • alt text monk - An unobtrusive data modeling, manipulation and validation library.
  • alt text normalize - A toolkit for wrapping network data in Python objects.
  • alt text model-api - For modeling remote APIs in an ORM fashion.
  • alt text object-mapper - ObjectMapper is a class for automatic object mapping in Python.
  • alt text param - Make your Python code clearer and more reliable by declaring Parameters.
  • 👻 prettyrecord - Structures like SQLAlchemy's declarative_base or Django's models in your project!
  • alt text pydantic - Data validation using Python 3.6 type hinting.
  • alt text pyschema - Python library for class-based schema definition, object serialization and data validation.
  • alt text python-json - Python library for easily JSON encoding/decoding complex class-based Python models, using an arbitrarily complex (but easy to write!) mapping schema.
  • alt text python-docar - A library for document oriented architectures.
  • alt text resource-api - A framework that allows developers decoratively define resources and relationships between them.
  • alt text schematics - Python Data Structures for Humans™.
  • alt text schema - A generic declarative schema system.
  • alt text scheme - A declarative schema framework for Python.
  • alt text simple-models - Simple models - keep your API messages in shape with validation and handy descriptors based object interface.
  • alt text simple_model - a very simple model framework for python.
  • alt text yorm - Automatic object-YAML mapping for Python.

ODM, ORM, Active Record

Libraries, implementing ODM/ORM/Active Record patterns, letting you to work with external objects (REST, DB) like normal python instances.

  • alt text acid - SQLite for NoSQL.
  • 👻 butterdb - butterdb is a Python object mapper for Google Drive Spreadsheets.
  • alt text django - The Web framework for perfectionists with deadlines (includes ORM layer).
  • alt text finch - Asynchronous RESTful API consumer for Python.
  • alt text flywheel - Object mapper for Amazon's DynamoDB.
  • alt text kev - Python ORM for key-value stores. Currently supported backends are Redis, S3, and a S3/Redis hybrid backend.
  • alt text modular-odm - A database-agnostic Object-Document Mapper for Python.
  • alt text mongoengine - A Python Object-Document-Mapper for working with MongoDB.
  • alt text orator - The Orator ORM provides a simple yet beautiful ActiveRecord implementation.
  • alt text pony - Pony Object Relational Mapper.
  • alt text peewee - a small, expressive orm -- supports postgresql, mysql and sqlite.
  • alt text py-rest-orm - Generic Python REST ORM. Inspired by Django. Powered by Requests.
  • alt text python-rest-model - A standard way to consume a RESTful service, inspired by Django models.
  • alt text pyresto - A generic ORM framework for RESTful APIs.
  • alt text pymodm - A Pythonic, object-oriented interface for working with MongoDB.
  • alt text PynamoDB - A pythonic interface to Amazon's DynamoDB.
  • alt text redisco - A Python Library for Simple Models and Containers Persisted in Redis.
  • alt text remodel - Very simple yet powerful and extensible Object Document Mapper for RethinkDB, written in Python.
  • alt text 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.
  • alt text wukong - An ORM Client library for SolrCloud.
  • alt text yadm - Yet Another Document Mapper (ODM) for MongoDB.
  • alt text walrus - Lightweight Python utilities for working with Redis.

Data validation

Libraries for validating custom data structures.

  • alt text cerberus - Lightweight, extensible data validation library for Python.
  • alt text destructure - Easy declarative schema validation with optional name-binding.
  • alt text jsonschema - jsonschema is an implementation of JSON Schema for Python (supporting 2.7+ including Python 3).
  • alt text pyschemes - PySchemes is a library for validating data structures in Python.
  • alt text pyvaru - Rule based data validation library for python 3.
  • alt text required - Required is a simple library which allows you to validate dependencies across multiple fields.
  • alt text 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.
  • alt text strictyaml - Type-safe YAML parser and validator.
  • alt text valideer - Lightweight data validation and adaptation Python library.
  • alt text validr - A simple, fast, extensible python library for data validation.
  • alt text 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

Other Awesome Lists

List of lists.


If you know some project/library that is not listed here, just let me know! Or even better, create a pull request.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
python (55,471
awesome (1,417
awesome-list (1,341
orm (378
validation (328
serialization (216
schema (183
activerecord (133
model (115
validator (107
awesome-lists (80
deserialization (54
mapper (45
odm (27