Skip to content

Bogdanp/markii

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

markii

MarkII is a development-mode error handler for Python web applications.

Build Status Coverage Status Codacy Badge

Installation

pip install markii

Usage

falcon

import falcon
import os

from functools import partial
from markii.frameworks.falcon import handle_error
from paste import httpserver


class Handler(object):
    def on_get(self, request, response, n):
        response.body = str(int(n))


root = os.path.abspath(os.path.dirname(__file__))
app = falcon.API()
app.add_error_handler(Exception, partial(handle_error, app_root=root))
app.add_route("/{n}", Handler())
httpserver.serve(app, host="127.0.0.1", port="8080")

webapp2

import webapp2

from functools import partial
from markii.frameworks.webapp2 import handle_error
from paste import httpserver


class Handler(webapp2.RequestHandler):
    def get(self, n):
        self.response.write(str(int(n)))


app = webapp2.WSGIApplication([
    webapp2.Route(r"/<n:.*>", handler=Handler)
], debug=True)
app.error_handlers[400] = partial(handle_error, code=400)
app.error_handlers[404] = partial(handle_error, code=404)
app.error_handlers[500] = partial(handle_error, code=500)
httpserver.serve(app, host="127.0.0.1", port="8080")

Screenshot

Screenshot

Warning

Make sure you only use MarkII in development mode.

Gotchas

On AppEngine, you must call markii.appengine.fix_appengine() inside your error handler.

Text editor support

MarkII supports opening files in your editor when you double click a frame by taking advantage of OSX's URL handler feature. See:

Acknowledgements

MarkII borrows its ideas (and most of its look) from better_errors.