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