Raptorize WSGI Middleware
Fact: every WSGI app is better with a velociraptor.
You could install it yourself with pip:
$ pip install raptorizemw
Or you could add
raptorizemw to the list of required packages in the
setup.py file of your project.
Usage in Pyramid
myapp/__init__.py and replace the
line with the following:
import raptorizemw app = config.make_wsgi_app() app = raptorizemw.make_middleware(app) return app
Restart your app, but watch out for raptors!
Usage in Flask
yourapp.py and replace the
app.run() line with the following:
import raptorizemw app.wsgi_app = raptorizemw.make_middleware(app.wsgi_app) app.run()
Usage in TurboGears 2
myapp/config/middleware.py and add the following to
# Wrap your base TurboGears 2 application with custom middleware here import raptorizemw app = raptorizemw.make_middleware(app)
Usage in a PasteDeploy pipeline
You can also add raptors into your PasteDeploy pipeline like so:
[pipeline:main] pipeline = raptorize my-app [filter:raptorize] use = egg:raptorizemw enterOn = konami-code delayTime = 3000 random_chance = 0.25 only_on_april_1st = True [app:myapp] ...
Essentially, you're able to specify
raportizemw as a filter within your
WSGI pipeline, and configure options accordingly as per the Configuration
RaptorizeMiddleware.__init__(...) both take
a number of configuration keywords:
enterOncan be one of two actions: 'timer' or 'konami-code'. If 'timer' is specified, then the raptor is shown on page load. If 'konami-code', then the raptor is shown if the page-viewing user enters the sacred sequence. Default is 'timer'.
delayTimemust be an
intand is the number of milliseconds until the raptor is shown. Default is 2000.
random_chancemust be a float between 0.0 and 1.0 representing a 'percent chance' to load the raptor. A value of 1.0 means the raptor will be injected every time; a value of 0.0 means it will never be injected; a value of 0.5 will result in a 50% chance of raptors. Default is 1.0.
only_on_april_1stshould be a
boolvalue that will restrict raptors only to April Fool's day. The configuration will coerce Boolean-like strings (such as
1) into a suitable format if provided in this manner (such as through a text-based pipeline configuration). Default is
app = raptorizemw.make_middleware( app, enterOn='konami-code', delayTime=500, random_chance=0.5, only_on_april_1st=True )
will result in 50% of pages loaded with raptors on April Fool's Day only. These raptors will only be displayed if the user also enters the konami code, and quite quickly, after only a half a second.
Get the source
The code and bug tracker live over at http://github.com/ralphbean/raptorizemw. Please fork and improve!