Changelog¶
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
0.1.1 — 2026-09-03¶
Documentation-only release. No code changes — published so the updated README renders on the PyPI project page, which snapshots it per version.
Changed¶
- README now carries PyPI, Python version, license, and CI badges, documents the
flask/ninja/drfextras together, notes the shippedpy.typedmarkers, and flags that a server (uvicorn) must be installed separately since Errium depends onfastapi, notfastapi[standard].
Added¶
- This changelog, published to the docs site at https://dagin34.github.io/errium/changelog/.
0.1.0 — 2026-09-03¶
First public release, published on PyPI.
Added¶
- Core pipeline (
errium_core) — framework-agnosticClassificationEngine, theExceptionClassifierprotocol,ClassifiedError/StandardizedErrorcontracts,DefaultFormatter, andValidationNormalizer. Detects framework and SQLAlchemy exception types by duck-typing rather than importing them, so the core stays dependency-light. - FastAPI adapter (
errium) —ErriumMiddlewarefor uncaught and HTTP exceptions, plusvalidation_exception_handlerforRequestValidationErrorwith beautifieddetails. - Flask adapter (
errium_flask) — theErriumFlaskextension, covering Werkzeug HTTP exceptions, uncaught exceptions, and pydantic validation errors raised inside views. - Django Ninja adapter (
errium_ninja) —register_errium(api), overriding Ninja's built-in handlers forValidationError,HttpError,Http404, andException. - Django REST Framework adapter (
errium_drf) —errium_exception_handler, wired throughREST_FRAMEWORK["EXCEPTION_HANDLER"], with its ownflatten_drf_errorsnormalizer. - Database classification —
DatabaseExceptionClassifiermaps SQLAlchemy errors toDATABASE_ERROR, and uniqueness violations toDUPLICATE_RESOURCE, with no hard SQLAlchemy dependency. - Dev vs. prod sanitization —
ERRIUM_DEBUGcontrols whether 5xx responses are sanitized and whether adebugblock with the stack trace and hints is attached. - Typing — all five packages ship a
py.typedmarker; the source is checked undermypy --strict.