Skip to main content

Standalone WebOb port of the Werkzeug Debugger with Python3 support meant to replace WebError in future TurboGears2

Project description

About backlash

backlash is a standalone version of the Werkzeug Debugger based on WebOb adapted to support for Python3.

backlash has born as a future replacement for WebError in upcoming TurboGears2 versions.

Installing

backlash can be installed from pypi:

easy_install backlash

or:

pip install backlash

should just work for most of the users

Debugging and Console

Backlash supports both debugging applications on crash and realtime console, both are based on the Werkzeug Debugger and adapted to work with WebOb.

The debugging function is provided by the DebuggedApplication middleware, wrapping your application with this middleware will intercept any exception and display the traceback and an interactive console in your browser.

An interactive console will also be always available at /__console__ path.

Context Injectors

The DebuggedApplication middleware also makes possible to provide one or more context injectors, those are simple python functions that will be called when an exception is raised to retrieve the context to store and make back available during debugging.

Context injectors have to return a dictionary which will be merged into the current request context, the request context itself will be made available inside the debugger as the ctx object.

This feature is used for example by TurboGears to provide back some of the objects which were available during execution like the current request.

Example

The DebuggedApplication middleware is used by TurboGears in the following way:

def _turbogears_backlash_context(environ):
    tgl = environ.get('tg.locals')
    return {'request':getattr(tgl, 'request', None)}

app = backlash.DebuggedApplication(app, context_injectors=[_turbogears_backlash_context])

Exception Tracing

The TraceErrorsMiddleware provides a WSGI middleware that intercepts any exception raised during execution, retrieves a traceback object and provides it to one or more reporters to log the error.

By default the EmailReporter class is provided to send error reports by email. This object supports most of the options WebError ErrorMiddleware to provide some kind of backward compatibility and make possible a quick transition.

While this function is easily replicable using the python logging SMTPHandler, the TraceErrorsMiddleware is explicitly meant for web applications crash reporting which has the benefit of being able to provide more complete informations and keep a clear and separate process in managing errors.

Example

The TraceErrorsMiddleware is used by TurboGears in the following way:

from backlash.trace_errors import EmailReporter

def _turbogears_backlash_context(environ):
   tgl = environ.get('tg.locals')
   return {'request':getattr(tgl, 'request', None)}

app = backlash.TraceErrorsMiddleware(app, [EmailReporter(**errorware)],
                                     context_injectors=[_turbogears_backlash_context])

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

backlash-0.0.3.tar.gz (170.3 kB view details)

Uploaded Source

File details

Details for the file backlash-0.0.3.tar.gz.

File metadata

  • Download URL: backlash-0.0.3.tar.gz
  • Upload date:
  • Size: 170.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for backlash-0.0.3.tar.gz
Algorithm Hash digest
SHA256 157aed0f9cbcb955895adfbff16acfb11f212b25f0e961e7ccfdc8b2bebb8540
MD5 2618d236a2b92e5c3ebf454976101918
BLAKE2b-256 7fcaae556a66d57beaf895d8735fad40c578960852fd212f103d1083e130fbf1

See more details on using hashes here.

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