Video presentation of WSGI, Montreal Python 10
Here is my presentation at the Montreal Python user group gathering on Decembre 9th 2009 at UQAM.
Here is my presentation at the Montreal Python user group gathering on Decembre 9th 2009 at UQAM.
Tired of using paster serve –reload development.ini and waiting for your code to reload ?
memento allows you to dynamically reload your code – without restarting your whole server – or parts of your code.
Install it:
$ easy_install memento
To integrate with Pylons, follow these steps:
Go to your config/middleware.py, and add:
import memento
Then, a bit lower, replace:
def make_app(...): ... # The Pylons WSGI app app = PylonsApp() ...
by:
def make_app(...): ... # The Pylons WSGI app #app = PylonsApp() app = memento.Assassin('pylons.wsgiapp:PylonsApp()', ['yourpackage']) ...
The second parameter to Assassin() is a list of packages you want reloaded on each request. You probably want your whole package to be reloaded, or you can be more granular.
NOTE: don’t forget the () after the PylonsApp, because it has to call the object to get a WSGI app. You’ll get errors otherwise
The neat thing is I think you can disable that in real-time also, by changing the value of app.mode (’on’ = ‘on and ‘off’ = ‘off, as you’ve guessed), so I guess you’d like to keep a copy of that ‘app’ before you lose it’s reference lower in middleware.py.