Skip to main content

Web based error utils

Project description

Web Errors v0.4.3

image image image style tests codecov

web_error is a set of exceptions and handlers for use in web apis to support easy error management and responses

Each exception easily marshals to JSON for use in api errors. Handlers for different web frameworks are provided.

Errors

The base web_error.error.HttpException accepts a message, debug_message, code and status (default 500)

And will render a response with status as the status code:

{
    "code": "code",
    "message": "message",
    "debug_message": "debug_message",
}

Some convenience Exceptions are provided, to create custom error subclass these and define message and code attributes.

  • web_error.error.ServerException provides status 500 errors
  • web_error.error.BadRequestException provides status 400 errors
  • web_error.error.UnauthorisedException provides status 401 errors
  • web_error.error.NotFoundException provides status 404 errors

Custom Errors

Subclassing the convenience classes provide a simple way to consistently raise the same error and message.

Code is an optional attribute to provide a unique value to parse in a frontend/client instead of matching against messages.

from web_error.error import NotFoundException


class UserNotFoundError(NotFoundException):
    message = "User not found."
    code = "E001"

Pyramid

Include the pyramid exception handlers in your config.

def main(global_config, **config_blob):
    config = Configurator(settings=config_blob)

    ...

    config.scan("web_error.handler.pyramid")

    return config.make_wsgi_app()

This will handle all unexpected errors, and any app specific errors.

@view_config(route_name="test", renderer="json")
def test(request):
    raise UserNotFoundError("debug message")

Flask

Register the error handler with your application

app.register_error_handler(Exception, web_error.handler.flask.exception_handler)

Aiohttp

Decorate your views with the error handler.

@web_error.handler.aiohttp.view_error_handler
async def user(self):
    raise UserNotFoundError("debug message")

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

web_error-0.4.3.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

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

web_error-0.4.3-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file web_error-0.4.3.tar.gz.

File metadata

  • Download URL: web_error-0.4.3.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.10.9 Linux/5.17.1-zen1-1-zen

File hashes

Hashes for web_error-0.4.3.tar.gz
Algorithm Hash digest
SHA256 4db1d4a27da23a309e365df4522c63a7cf724cd7f48190110a4d23f1e7ecf8bc
MD5 d05cce94f598af51cfa00a744fbc6e7d
BLAKE2b-256 8a2fafd550e166ca7994b7cf46fb55e0ad8215e296e5c31c4c4445492c281281

See more details on using hashes here.

File details

Details for the file web_error-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: web_error-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.10.9 Linux/5.17.1-zen1-1-zen

File hashes

Hashes for web_error-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9f208d759d0bfadecdb592a0a82bc1b705f3efd1708ccb06edd734fe3d6e2b37
MD5 841d7747a6d01b4f626a5a6712e08cc9
BLAKE2b-256 0f5d46892fa84f9ac3992a3e6cb21f8349930eb52c95cdc5ecaa2b38c7f49fad

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