hupper is an integrated process monitor that will track changes to
any imported Python files in
sys.modules as well as custom paths. When
files are changed the process is restarted.
Hupper can load any Python code similar to
python -m <module> by using the
hupper -m <module> program.
$ hupper -m myapp Starting monitor for PID 23982.
Start by defining an entry point for your process. This must be an importable
path in string format. For example,
# myapp/scripts/serve.py import sys import hupper import waitress def wsgi_app(environ, start_response): start_response('200 OK', [('Content-Type', 'text/plain']) yield [b'hello'] def main(args=sys.argv[1:]): if '--reload' in args: # start_reloader will only return in a monitored subprocess reloader = hupper.start_reloader('myapp.scripts.serve.main') # monitor an extra file reloader.watch_files(['foo.ini']) waitress.serve(wsgi_app)
hupper is inspired by initial work done by Carl J Meyer and David Glick
during a Pycon sprint and is built to be a more robust and generic version of
Ian Bicking's excellent PasteScript
paste serve --reload and Pyramid's