Integrated process monitor for developing servers.
Project description
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.
Usage
Start by defining an entry point for your process. This must be an importable path in string format. For example, myapp.scripts.serve.main.
# myapp/scripts/serve.py
import os
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)
Acknowledgments
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 pserve --reload.
0.3.1 (2016-11-06)
Fix package long description on PyPI.
Ensure that the stdin file handle is inheritable incase the “spawn” variant of multiprocessing is enabled.
0.3 (2016-11-06)
Disable bytecode compiling of files imported by the worker process. This should not be necessary when developing and it was causing the process to restart twice on Windows due to how it handles pyc timestamps.
Fix hupper’s support for forwarding stdin to the worker processes on Python < 3.5 on Windows.
Fix some possible file descriptor leakage.
Simplify the hupper.interfaces.IFileMonitor interface by internalizing some of the hupper-specific integrations. They can now focus on just looking for changes.
Add the hupper.interfaces.IFileMonitorFactory interface to improve the documentation for the callback argument required by hupper.interfaces.IFileMonitor.
0.2 (2016-10-26)
Windows support!
Added support for watchdog if it’s installed to do inotify-style file monitoring. This is an optional dependency and hupper will fallback to using polling if it’s not available.
0.1 (2016-10-21)
Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for hupper-0.3.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 095b8972b5b06f94ea90bfe9535a37adb95eafa64b1eb9764eb45fafe34e3997 |
|
MD5 | 057b0ecaea1080c9e44f6faf708c6b1e |
|
BLAKE2b-256 | da4c0a237b68caff2508e045883a40f1ed5ad7a9b4e7350c8079614bb246f564 |