GitHub - grundic/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.

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.

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

Contributing

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