Web based error utils
Project description
Web Errors v0.5.6
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 errorsweb_error.error.BadRequestException
provides status 400 errorsweb_error.error.UnauthorisedException
provides status 401 errorsweb_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"
FastAPI
Include the exception_handler
in your app.
exception_handler = web_error.handler.fastapi.exception_handler
return FastAPI(
exception_handlers={
Exception: exception_handler,
RequestValidationError: exception_handler,
HTTPException: exception_handler,
},
)
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
Release history Release notifications | RSS feed
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
File details
Details for the file web_error-0.5.6.tar.gz
.
File metadata
- Download URL: web_error-0.5.6.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.10.9 Linux/6.1.7-zen1-1-zen
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd040daedb585215c6c8fa5d6237bc2df679930f3e2e8224fd6e18c95aef697e |
|
MD5 | e4292024e59645243466716d6a136da4 |
|
BLAKE2b-256 | 5771209a7be11c52277bf27ffc26a15dd774e7b60178d00631e2a19f494b88bc |
File details
Details for the file web_error-0.5.6-py3-none-any.whl
.
File metadata
- Download URL: web_error-0.5.6-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.10.9 Linux/6.1.7-zen1-1-zen
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7d19d87f9bda25e5301be53e4caf8988f91cd7a79469b39a983ba5c94448419 |
|
MD5 | c9c30d36dae7e0d6129d1430046171db |
|
BLAKE2b-256 | 8b0c24c2050e0ca568a828757ed1f5799ae964c0adda107adff80a6ee5c72f6c |