Skip to main content

Integrated process monitor for developing servers.

Project description

https://img.shields.io/pypi/v/hupper.svg https://img.shields.io/travis/Pylons/hupper.svg Documentation Status

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.2 (2016-11-15)

  • Support triggering reloads via SIGHUP when hupper detected a crash and is waiting for a file to change.

  • Setup the reloader proxy prior to importing the worker’s module. This should allow some work to be done at module-scope instead of in the callable.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hupper-0.3.2.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hupper-0.3.2-py2.py3-none-any.whl (15.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file hupper-0.3.2.tar.gz.

File metadata

  • Download URL: hupper-0.3.2.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for hupper-0.3.2.tar.gz
Algorithm Hash digest
SHA256 b55e9f0ad6a06cbcfa10e43156ea92900b4a6ea7db9395a1e42e821bf02d3196
MD5 0fde2397fa3781f9d1a2a444ed5fcf64
BLAKE2b-256 2d63a686bc9d3b8131f77abaf4622e26f044b958cf8f72b5fdf0ebe032c0b16c

See more details on using hashes here.

File details

Details for the file hupper-0.3.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for hupper-0.3.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f12754d2b5c2dd9c1b16ec98b69e03cc4c2c62e8682d00057af06ffa3ff2d435
MD5 9018aa17d8a6cdd0329c66188295cb03
BLAKE2b-256 fd3faf7b8d49ca55bf043132fd5fc3a969a71c67640272b5f42e86462251f8cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page