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).
Metadata
Release files for estoult 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| estoult-0.8.0.tar.gz | 20.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| estoult-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.8 kB
Release files / estoult-0.8.0.tar.gz
| Download URL | estoult-0.8.0.tar.gz |
|---|---|
| Size | 20.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
48865a8f4d65a768af70ebabab9ffe0a63e893b57d87fd23ebca12766e4c77d7
|
|
BLAKE2b-256 checksum How to use checksums |
1a671e2d07b779d43be7aea1e1d93fbfa86529f037858a3c5716ddfeeb6ddca1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.3
|
Release files / estoult-0.8.0-py3-none-any.whl
| Download URL | estoult-0.8.0-py3-none-any.whl |
|---|---|
| Size | 18.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5afcb8dfc8d08eb49affdcd46731b0479900318ece3d8d98834f03f4ce82013b
|
|
BLAKE2b-256 checksum How to use checksums |
04f0c0b027aa36dd8dbc6ce53bbf5c902290c0b4854139ba91346e9b91f4e05a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.3
|