Python data mapper and query builder for SQL databases.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Justin Duch 3e27dfb24b update changelog 3 months ago
.github/workflows add python3.9 to tests 1 year ago
apocryphes fix rollbacks 6 months ago
docs typo 3 months ago
tests allow module path to be used for associations 3 months ago
.gitignore fix inserting on tables without primary keys 4 months ago update changelog 3 months ago
LICENSE wildcard docs 8 months ago update readme 4 months ago bump version 3 months ago
setup.cfg add ability for subqueries 1 year ago fix name 7 months ago

la black luna


PyPI PyPI - License PyPI - Python Version Documentation Status

Estoult is a Python toolkit for data mapping with an integrated query builder for SQL databases. It currently supports MySQL, PostgreSQL, and SQLite.


  • Not an ORM. Estoult doesn't attempt to apply relational algebra to objects.
  • Concise and composable (sub)queries.
  • Easy debugging by displaying any generated SQL in a readable format.
  • Fast. Estoult is NOT an ORM.

Estoult only works with Python 3.6+ and is primarily tested on Python 3.9+.


Install Estoult through pip:

pip install estoult


Check the documentation for help and getting started.


If you have found a bug or would like to see a feature added to Estoult, please submit an issue or a pull request! Likewise if you found something in the documentation unclear or imprecise.


Tests are run with pytest. Install it using pip:

pip install pytest

Run tests from the shell:



Estoult is licensed under the MIT license (see LICENSE file).