Estoult
Python data mapper and query builder for SQL databases.
Install / Use
/learn @halcyonnouveau/EstoultREADME

Estoult
Estoult (pronounced es-too) is a Python toolkit for data mapping with an integrated query builder for SQL databases. It currently supports MySQL, PostgreSQL, and SQLite.
Features:
- 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.9+.
Installation
Install Estoult through pip:
pip install estoult
# or with a specific database driver (postgres or mysql)
pip install estoult[postgres]
Quick Example
from estoult import Schema, Field, Query, SQLiteDatabase
db = SQLiteDatabase("example.db")
class User(db.Schema):
__tablename__ = "User"
id = Field(int, primary_key=True)
name = Field(str)
age = Field(int)
# Insert a user
user = User.insert({"name": "Artoria", "age": 35})
# Query users
users = (
Query(User)
.select()
.where(User.age > 21)
.execute()
)
# Update user
User.update({"id": user["id"]}, {"age": 36})
Documentation
Check the documentation for help and getting started.
Contributing
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
Tests are run with pytest. Install it using pip:
pip install pytest
Run tests from the shell:
pytest
License
Estoult is licensed under the MIT license (see LICENSE file).
Related Skills
oracle
339.1kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
prose
339.1kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
claude-opus-4-5-migration
83.8kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
Command Development
83.8kThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
