Skip to main content

Reusable components for bottle

Project description

# bottle-utils

Reusable components for bottle

## Responses

### Plugin response.JsonResponsePlugin

The JSON response plugin is a plugin that provides three main features:

  • Returns dict or list responses as a JSON object: {“result”: <output>} * If the response is a dict containing either “result” or “error”, the result is returned as-is

  • Catches HTTPResponse exceptions (including the subclass HTTPError) and formats them as a JSON object: {“error”: {“code”: <http response code>, “message”: <exception message>}}

  • Provides an error handler that can be used to replace the standard error handler with one that returns JSON objects * The handler must be manually applied for each error code to each app, except as shown below

## SQLAlchemy

The SQLAlchemy package must be installed, and is NOT a requirement of this package as a whole! Make sure it is installed or ImportError will be raised.

### Plugin sqlalchemy.SQLAlchemyNotFoundPlugin

The SQLAlchemy not found plugin converts SQLAlchemy not found exceptions to 404s. Apply within the JsonResponsePlugin to turn not found objects into a nicely formatted JSON error message.

### Plugin sqlalchemy.SQLAlchemySession

Given an sqlalchemy engine in the constructor, this plugin creates bottle.request.sa_session that can be used for querying. This results in a new session for each thread/request. The kwarg “autocommit” may also be passed, turning automatic commits on or off (default: True)

## Apps

### Function apps.setup

Set up a collection of apps. The function accepts the following arguments:

  • main_app (required): “main” app on which other apps are mounted

  • sub_apps (optional): List containing either plain application instances (which are not mounted anywhere) or lists containing [app, mountpoint], where the app is mounted to main_app at mountpoint. The main_app is automatically added to this list - do not add it yourself.

  • plugins (optional): list of plugins to install to all apps

  • error_handlers (optional): List containing either error handler callbacks, or lists containing [range, handler] where handler is applied to all error codes in range (default range is 300-599)

  • error_handler_generators (optional): List containing either methods that generate error handler callbacks, or lists containing [range, handler_generator] where handler_generator(code) is applied to all error codes in range (default range is 300-599)

error_handler_generators can be used to apply the JSON response error handler:

setup(mainapp, [otherapp], error_handler_generators = [JsonResponsePlugin.getErrorHandler])

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

bottleutils-0.1.5.tar.gz (4.4 kB view hashes)

Uploaded source

Supported by

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