Failnozzle
Send exception emails without throttling your Inbox
Collect exception logs from your servers, dedupe them and send an aggregate email every minute. Failnozzle exists to prevent your servers from saturating your mail queue with thousands of identical error messages.
flask_filters
Decorators to wrap Flask views with coroutine filters
Move repetitive tasks out of your views. The decorators in flask_filters wrap your views with reusable, composable coroutines that execute before and after your view functions. At Wingu, we use filters to check user authorization, build site navigation, apply feature flags, and more.
flask_viewunit
Unit test Flask views, from URL routing to response
If Selenium and Watir are overkill for unit testing your Flask app, but using Flask's test client is a little too bare, flask_viewunit can help. Provides a shorthand for testing requests, simulating logged in users, and making common assertions about the view's output and database side effects.
Smuggle
Mostly-safely import Python modules from outside sys.path
Sometimes you just need to import a module, no questions asked. In an ideal world, no one would smuggle modules, but if you have to do it, smuggle.py will leave sys.path exactly as it found it. Useful for tests (especially integration tests) or deploy scripting that wants to mess with the import path as little as possible.
Tracewhack
Find known issues for error tracebacks
Tracewhack helps identify known bugs by matching Python tracebacks to Github issues. Useful for when you're on call and don't want to dig through your bug database to find out if you've seen a problem before.
Zero-downtime deploys with Gunicorn and virtualenv
Our notes on setting up reliable zero-downtime deployment of our web application
Setting up truly zero-downtime deploys with Gunicorn and virtualenv can be a little tricky. We've compiled some notes on the challenges and our solution, and we include an implementation using Gunicorn's hooks.
License
The above projects are licensed under the BSD 3 Clause License, which is included as license.txt in each repository. Here is a summary in plain, non-legally-binding English.