Skip to main content

A magical Python database abstraction layer inspired by Sorcery

Project description

🔮 SorcererDB – A Smart SQL Abstraction Layer

License: MIT Python Status: In Development codecov

SorcererDB is a lightweight, extensible database abstraction layer designed to simplify raw SQL access while offering advanced features like multi-connection management, query caching, and reusable query definitions.

✨ Features

  • Named connections and connection pooling
  • Safe, type-aware prepared statements
  • Optional query result caching (e.g., Redis or in-memory)
  • Stored query registration and reuse
  • Lightweight CRUD helpers: insert, update, delete
  • Query profiling and memory diagnostics
  • Full transaction support

⚡️ Quick Start

pip install sorcererdb
from sorcererdb import SorcererDB, DBConfig

config = DBConfig(user="root", password="pw", database="test")
db = SorcererDB().connect("default", config)

rows = db.execute("SELECT * FROM users WHERE role = %s", ("admin",))

📦 Installation

pip install sorcererdb

Or install directly from source:

git clone https://github.com/ericktheredd5875/sorcererdb-python.git
cd sorcererdb-python
pip install -e .

🧭 Roadmap / TODO

  • Basic DB connection pool
  • Simple query execution interface
  • Caching layer (Memcache/Redis backends)
  • Query profiler with timing and trace support
  • Named prepared queries (alias/shortcut system)
  • SQLite and PostgreSQL drivers
  • Type hinting and full doc coverage
  • sorcerer CLI for testing and diagnostics
  • PyPI release
  • Connection Pooling (with thread-local binding)
  • Multi-Threading Support
  • ??

📜 License

MIT License © 2025 Eric Harris

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

sorcererdb-0.1.0a2.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sorcererdb-0.1.0a2-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file sorcererdb-0.1.0a2.tar.gz.

File metadata

  • Download URL: sorcererdb-0.1.0a2.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for sorcererdb-0.1.0a2.tar.gz
Algorithm Hash digest
SHA256 ba9045edef5ee001a7396b02f8833990c2558c2e22329e86b614c3a24c0a121e
MD5 87805fc95748c85d536f414407650546
BLAKE2b-256 12befc279b6e6f3da7b22de4564767f1a86062eeb0b6d839d7fae2fbee0bdb81

See more details on using hashes here.

File details

Details for the file sorcererdb-0.1.0a2-py3-none-any.whl.

File metadata

  • Download URL: sorcererdb-0.1.0a2-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for sorcererdb-0.1.0a2-py3-none-any.whl
Algorithm Hash digest
SHA256 e321a7405dccd986e8f118f6f93e652c385059dc71ec28dc88568456b820b5db
MD5 99b8f2aa30cd4386873c021601cecbd1
BLAKE2b-256 c9e7d5434930383f57dca98e0e3e723354291e7142dae4d930a5931eb57aac92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page