https://github.com/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.
https://github.com/grundic/awesome-python-models
List: awesome-python-models
activerecord awesome awesome-list awesome-lists deserialization document-mapper mapper marshalling model odm orm python schema serialization validation validator
Last synced: 19 days ago
JSON representation
A curated list of awesome Python libraries, which implement models, schemas, serializers/deserializers, ODM's/ORM's, Active Records or similar patterns.
- Host: GitHub
- URL: https://github.com/grundic/awesome-python-models
- Owner: grundic
- License: mit
- Created: 2017-03-21T20:01:05.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-05-07T19:53:05.000Z (almost 7 years ago)
- Last Synced: 2024-10-29T23:54:46.356Z (6 months ago)
- Topics: activerecord, awesome, awesome-list, awesome-lists, deserialization, document-mapper, mapper, marshalling, model, odm, orm, python, schema, serialization, validation, validator
- Homepage:
- Size: 102 KB
- Stars: 157
- Watchers: 15
- Forks: 9
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- fucking-lists - awesome-python-models
- awesomelist - awesome-python-models
- collection - awesome-python-models
- lists - awesome-python-models
- ultimate-awesome - 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. (Other Lists / Julia Lists)
README
# Awesome Python Models [](https://github.com/sindresorhus/awesome)
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](#awesome-python-models)
- [Model/Schema](#model-schema)
- [ODM/ORM/Active Record](#odm-orm-active-record)
- [Data/validation](#data-validation)
- [Other resources](#other-resources)
- [Other Awesome Lists](#other-awesome-lists)
- [Contributing](#contributing)- - -
## Model, Schema
*Libraries implementing some kind of model, letting you to serialize/deserialize python object to some data structures.*
* :ghost: [ascetic](https://bitbucket.org/emacsway/ascetic) - Ascetic, a lightweight Python datamapper ORM.
* 
[attrs](https://github.com/python-attrs/attrs) - Python Classes Without Boilerplate.
* 
[booby](https://github.com/jaimegildesagredo/booby) - data modeling and validation Python library.
* 
[causalmodels](https://github.com/roronya/causalmodels) - causal modeling in Python.
* 
[colander](https://github.com/Pylons/colander) - A serialization/deserialization/validation library for strings, mappings and lists.
* 
[composite](https://github.com/tarvitz/composite/) - Declarative XML files parse, unparse with help of lxml library.
* 
[datastore.objects](https://github.com/datastore/datastore.objects) - simple object mapper on top of datastore (not relational).
* 
[dirty-models](https://github.com/alfred82santa/dirty-models) - Dirty model for python.
* [dejavu](http://www.aminus.net/dejavu/chrome/common/doc/2.0a/html/intro.html) - Dejavu is a thread-safe Object-Relational Mapper for Python applications.
* 
[gnarl](https://github.com/aperezdc/gnarl) - Lightweight module to define serializable, schema-validated classes
* 
[guts](https://github.com/emolch/guts) - Lightweight declarative YAML and XML data binding for Python.
* 
[jsonmapper](https://github.com/mgood/jsonmapper) - Python JSON<->Object mapper.
* 
[jsonmodels](https://github.com/beregond/jsonmodels) - jsonmodels is library to make it easier for you to deal with structures that are converted to, or read from JSON.
* 
[jsonobjects](https://github.com/caxap/jsonobjects) - jsonobjects allows you to declaratively specify how to extract and convert elements from a JSON document.
* 
[jsonobject](https://github.com/dimagi/jsonobject) - A simple json-object mapping for Python.
* :ghost: [jsonpickle](https://github.com/jsonpickle/jsonpickle) - Python library for serializing any arbitrary object graph into JSON.
* 
[kim](https://github.com/mikeywaites/kim) - A JSON Serialization and Marshaling framework.
* 
[lazycontract](https://github.com/neilisaac/lazycontract) - Python library to define declarative contracts for serialization and deserialization.
* 
[lupin](https://github.com/holinnn/lupin) - Python document object mapper (load python object from JSON and vice-versa).
* 
[marshmallow](https://github.com/marshmallow-code/marshmallow) - A lightweight library for converting complex objects to and from simple Python datatypes.
* :ghost: [metaparams](https://github.com/mementum/metaparams) - Python meta framework for Parameters in classes.
* 
[micromodels](https://github.com/j4mie/micromodels) - Declarative dictionary-based model classes for Python.
* 
[monk](https://github.com/neithere/monk) - An unobtrusive data modeling, manipulation and validation library.
* 
[normalize](https://github.com/hearsaycorp/normalize) - A toolkit for wrapping network data in Python objects.
* 
[model-api](https://github.com/caxiam/model-api) - For modeling remote APIs in an ORM fashion.
* 
[object-mapper](https://github.com/marazt/object-mapper) - ObjectMapper is a class for automatic object mapping in Python.
* 
[param](https://github.com/ioam/param) - Make your Python code clearer and more reliable by declaring Parameters.
* :ghost: [prettyrecord](https://github.com/skorczan/prettyrecord) - Structures like SQLAlchemy's declarative_base or Django's models in your project!
* 
[pydantic](https://github.com/samuelcolvin/pydantic) - Data validation using Python 3.6 type hinting.
* 
[pyschema](https://github.com/spotify/pyschema) - Python library for class-based schema definition, object serialization and data validation.
* 
[python-json](https://github.com/wtsi-hgi/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](https://github.com/30loops/python-docar) - A library for document oriented architectures.
* 
[resource-api](https://github.com/F-Secure/resource-api) - A framework that allows developers decoratively define resources and relationships between them.
* 
[schematics](https://github.com/schematics/schematics) - Python Data Structures for Humans™.
* 
[schema](https://github.com/marrow/schema/) - A generic declarative schema system.
* 
[scheme](https://github.com/jordanm/scheme) - A declarative schema framework for Python.
* 
[simple-models](https://github.com/prawn-cake/simple-models) - Simple models - keep your API messages in shape with validation and handy descriptors based object interface.
* 
[simple_model](https://github.com/afriemann/simple_model) - a very simple model framework for python.
* 
[yorm](https://github.com/jacebrowning/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](https://github.com/dw/acid) - SQLite for NoSQL.
* :ghost: [butterdb](https://github.com/terrible-ideas/butterdb) - butterdb is a Python object mapper for Google Drive Spreadsheets.
* 
[django](https://github.com/django/django) - The Web framework for perfectionists with deadlines (includes ORM layer).
* 
[finch](https://github.com/jaimegildesagredo/finch) - Asynchronous RESTful API consumer for Python.
* 
[flywheel](https://github.com/stevearc/flywheel) - Object mapper for Amazon's DynamoDB.
* 
[kev](https://github.com/capless/kev) - Python ORM for key-value stores. Currently supported backends are Redis, S3, and a S3/Redis hybrid backend.
* 
[modular-odm](https://github.com/CenterForOpenScience/modular-odm) - A database-agnostic Object-Document Mapper for Python.
* 
[mongoengine](https://github.com/MongoEngine/mongoengine) - A Python Object-Document-Mapper for working with MongoDB.
* 
[orator](https://github.com/sdispater/orator) - The Orator ORM provides a simple yet beautiful ActiveRecord implementation.
* 
[pony](https://github.com/ponyorm/pony) - Pony Object Relational Mapper.
* 
[peewee](https://github.com/coleifer/peewee) - a small, expressive orm -- supports postgresql, mysql and sqlite.
* 
[py-rest-orm](https://github.com/GenePeeks/py-rest-orm) - Generic Python REST ORM. Inspired by Django. Powered by Requests.
* 
[python-rest-model](https://github.com/mdaif/python-rest-model) - A standard way to consume a RESTful service, inspired by Django models.
* 
[pyresto](https://github.com/BYK/pyresto) - A generic ORM framework for RESTful APIs.
* 
[pymodm](https://github.com/mongodb/pymodm) - A Pythonic, object-oriented interface for working with MongoDB.
* 
[PynamoDB](https://github.com/jlafon/PynamoDB) - A pythonic interface to Amazon's DynamoDB.
* 
[redisco](https://github.com/kiddouk/redisco) - A Python Library for Simple Models and Containers Persisted in Redis.
* 
[remodel](https://github.com/linkyndy/remodel) - Very simple yet powerful and extensible Object Document Mapper for RethinkDB, written in Python.
* 
[restorm](https://github.com/joeribekker/restorm) - RestORM allows you to interact with resources as if they were objects.
* :ghost: [storm](https://storm.canonical.com) - Storm is an object-relational mapper (ORM) for Python developed at Canonical.
* :ghost: [sqlobject](http://www.sqlobject.org) - 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](https://github.com/SurveyMonkey/wukong) - An ORM Client library for SolrCloud.
* 
[yadm](https://github.com/zzzsochi/yadm) - Yet Another Document Mapper (ODM) for MongoDB.
* 
[walrus](https://github.com/coleifer/walrus) - Lightweight Python utilities for working with Redis.## Data validation
*Libraries for validating custom data structures.*
* 
[cerberus](https://github.com/pyeve/cerberus) - Lightweight, extensible data validation library for Python.
* 
[destructure](https://github.com/selik/destructure) - Easy declarative schema validation with optional name-binding.
* 
[jsonschema](https://github.com/Julian/jsonschema) - jsonschema is an implementation of JSON Schema for Python (supporting 2.7+ including Python 3).
* 
[pyschemes](https://github.com/shivylp/pyschemes) - PySchemes is a library for validating data structures in Python.
* 
[pyvaru](https://github.com/daveoncode/pyvaru) - Rule based data validation library for python 3.
* 
[required](https://github.com/shezadkhan137/required) - Required is a simple library which allows you to validate dependencies across multiple fields.
* 
[schema](https://github.com/keleshev/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](https://github.com/crdoconnor/strictyaml) - Type-safe YAML parser and validator.
* 
[valideer](https://github.com/podio/valideer) - Lightweight data validation and adaptation Python library.
* 
[validr](https://github.com/guyskk/validr) - A simple, fast, extensible python library for data validation.
* 
[voluptuous](https://github.com/alecthomas/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)](https://www.fullstackpython.com/object-relational-mappers-orms.html)
* [Python ORM/ODM Examples, For The Sleepy](https://github.com/sloria/PythonORMSleepy)
* [martinfowler: Active Record](https://www.martinfowler.com/eaaCatalog/activeRecord.html)
* [martinfowler: Data Mapper](https://martinfowler.com/eaaCatalog/dataMapper.html)
* [wiki: Object-relational mapping](https://en.wikipedia.org/wiki/Object-relational_mapping)
* [Higher Level Database Programming](https://wiki.python.org/moin/HigherLevelDatabaseProgramming)# Other Awesome Lists
List of lists.
* Monty
* [awesome](https://github.com/sindresorhus/awesome)
* [lists](https://github.com/jnv/lists)
* Python
* [awesome-python](https://github.com/vinta/awesome-python)
* [awesome-sqlalchemy](https://github.com/dahlia/awesome-sqlalchemy)
* [pycrumbs](https://github.com/kirang89/pycrumbs)
* [python-github-projects](https://github.com/checkcheckzz/python-github-projects)
* [python_reference](https://github.com/rasbt/python_reference)
* [pythonidae](https://github.com/svaksha/pythonidae)
# Contributing
If you know some project/library that is not listed here, just let me know! Or even better, create a pull request.