Skip to main content

Custom Exception Handling Middleware for Swarmauri Framework

Project description

Swarmauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_middleware_exceptionhandling


Swarmauri Middleware Exception Handling

Centralized exception and error handling for Swarmauri applications built on FastAPI.

Features

  • Wraps unhandled exceptions in a consistent JSON payload with the error type, message, and a UTC timestamp.
  • Logs request metadata (method, path, and headers) alongside the stack trace to simplify troubleshooting.
  • Registers through the Swarmauri component system and can be attached to any FastAPI application via app.middleware("http").

Installation

Pick the workflow that matches your project:

pip install swarmauri_middleware_exceptionhandling
poetry add swarmauri_middleware_exceptionhandling
uv pip install swarmauri_middleware_exceptionhandling
# or, inside a uv project
uv add swarmauri_middleware_exceptionhandling

Usage

Attach the middleware to convert uncaught exceptions into the structured error response returned by Swarmauri services.

from fastapi import FastAPI
from fastapi.testclient import TestClient

from swarmauri_middleware_exceptionhandling import ExceptionHandlingMiddleware

app = FastAPI()
app.middleware("http")(ExceptionHandlingMiddleware())


@app.get("/boom")
async def boom():
    raise RuntimeError("Boom!")


client = TestClient(app)
response = client.get("/boom")
assert response.status_code == 500
print(response.json())

The JSON payload produced by the middleware includes the error type, message, and a timestamp similar to the following:

{
  "error": {
    "type": "Unhandled Exception",
    "message": "Boom!",
    "timestamp": "2024-05-01T12:34:56.789012"
  }
}

Want to help?

If you want to contribute to swarmauri-sdk, read up on our guidelines for contributing that will help you get started.

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

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

File details

Details for the file swarmauri_middleware_exceptionhandling-0.7.0.dev46.tar.gz.

File metadata

  • Download URL: swarmauri_middleware_exceptionhandling-0.7.0.dev46.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_middleware_exceptionhandling-0.7.0.dev46.tar.gz
Algorithm Hash digest
SHA256 2620aec0a09fbcf15f2a269df3a5031b0c5c9df756345bf78ac77c9e5e3d5e96
MD5 cca07c292a7b3d611de48b809544182c
BLAKE2b-256 65604977e54113087e102c21ec62f25b0251e81a6efa726c279b539b76c07bec

See more details on using hashes here.

File details

Details for the file swarmauri_middleware_exceptionhandling-0.7.0.dev46-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_middleware_exceptionhandling-0.7.0.dev46-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_middleware_exceptionhandling-0.7.0.dev46-py3-none-any.whl
Algorithm Hash digest
SHA256 a9057cd8fd727464d7f6599160d10719e2d4d8d08d2bcb8be8f3acd41b1d4998
MD5 80a031194c45a2d9cc878b12acfc5924
BLAKE2b-256 c8ceb9053191db7be794da48f6de9a68e1f35e4ea15e2b7d8c4fa27de84da18d

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