The missing interactive shell for SQLAlchemy projects.
Project description
🔮 Alchemist Shell
The missing interactive shell for SQLAlchemy.
Working with SQLAlchemy in a standard REPL is painful. You have to manually manage imports, handle async event loops, and deal with unreadable object representations. Alchemist Shell turns your terminal into a powerful, zero-setup database workbench.
🛠 Why this exists?
The current workflow for inspecting SQLAlchemy projects in the terminal is broken:
-
Manual Setup
You shouldn't have to manually import every model and session helper just to check a record. -
Manual Session Management
In interactive environments, setting up and managing a session is repetitive boilerplate.
Creating engines, instantiating sessions, and keeping them alive just to run a few queries breaks the flow. -
Bad Visibility
Default object reprs like<User 1>tell you nothing. You deserve to see your data clearly.
✨ DX Features
-
Auto-Discovery
Recursively scans your project and injects all models into the namespace instantly. -
Pre-loaded Toolkit
select,func,text, and other SQLAlchemy essentials are available on startup. -
Auto-Formatting
Model instances render as high-fidelityrichtables when evaluated. -
Modern Shell
Powered by IPython with completion, syntax highlighting, and history-based autosuggestions.
📦 Installation
pip install alchemist-shell
🧪 The Workflow
1. Initialize the shell
Interact with your db having to manually load your session:
alchemist shell
2. Run queries directly on the terminal
All your SQLAlchemy models are autodiscovered and imported:
alchemist ❯ user = User(username="alchemist")
alchemist ❯ await db.add(user)
alchemist ❯ await db.commit()
2. Immediate Feedback
View your database objects as a formated table without creating a sophisticated __repr__ method:
alchemist ❯ user
# Renders a clean table with all column values
3. Native Async Queries
Full auto-await support when you need complex queries:
alchemist ❯ results = await db.execute(select(Order))
alchemist ❯ orders = results.scalars().all()
📜 License
MIT License. Permissive and simple.
Built to make SQLAlchemy development suck less.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file alchemist_shell-0.1.3.tar.gz.
File metadata
- Download URL: alchemist_shell-0.1.3.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.14.4 Linux/7.0.0-27-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30990c5c4a24bc17628c8c8e561f2fc09e76dc6903e0b49ed6290b93a6400744
|
|
| MD5 |
a580f6bddc679aabc893d92624f9defc
|
|
| BLAKE2b-256 |
278fb05c3bd129e795781df99bf59e530476b3b87afc507b20ad4f5ca571b876
|
File details
Details for the file alchemist_shell-0.1.3-py3-none-any.whl.
File metadata
- Download URL: alchemist_shell-0.1.3-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.14.4 Linux/7.0.0-27-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1b1efbb7df29ed9b16b728c3b91ea8ae7486d3622eaea11aac78eb34747e3a5
|
|
| MD5 |
97e3eaa202f99b40e0f64b3c24045c5e
|
|
| BLAKE2b-256 |
60ef4509cc59254e0417cf07c9c67ec62af80f909a016cef6c696375ab90a248
|