hupper API¶
-
hupper.start_reloader(worker_path, reload_interval=1, verbose=1, monitor_factory=None, worker_args=None, worker_kwargs=None)[source]¶ Start a monitor and then fork a worker process which starts by executing the importable function at
worker_path.If this function is called from a worker process that is already being monitored then it will return a reference to the current
hupper.interfaces.IReloaderProxywhich can be used to communicate with the monitor.worker_pathmust be a dotted string pointing to a globally importable function that will be executed to start the worker. An example could bemyapp.cli.main. In most cases it will point at the same function that is invokingstart_reloaderin the first place.reload_intervalis a value in seconds and will be used to throttle restarts.verbosecontrols the output. Set to0to turn off any logging of activity and turn up to2for extra output.monitor_factoryis an instance ofhupper.interfaces.IFileMonitorFactory. If left unspecified, this will try to create ahupper.watchdog.WatchdogFileMonitorif watchdog is installed and will fallback to the less efficienthupper.polling.PollingFileMonitorotherwise.
-
hupper.get_reloader()[source]¶ Get a reference to the current
hupper.interfaces.IReloaderProxy.Raises a
RuntimeErrorif the current process is not actively being monitored by a parent process.
-
class
hupper.reloader.Reloader(worker_path, monitor_factory, reload_interval=1, verbose=1, worker_args=None, worker_kwargs=None)[source]¶ A wrapper class around a file monitor which will handle changes by restarting a new worker process.
-
class
hupper.interfaces.IFileMonitorFactory[source]¶ -
__call__(callback)[source]¶ Return an
IFileMonitorinstance.callbackis a callable to be invoked by theIFileMonitorwhen file changes are detected. It should accept the path of the changed file as its only parameter.
-
-
class
hupper.polling.PollingFileMonitor(callback, poll_interval=1)[source]¶ An
hupper.interfaces.IFileMonitorthat stats the files at periodic intervals.callbackis a callable that accepts a path to a changed file.poll_intervalis a value in seconds between scans of the files on disk. Do not set this too low or it will eat your CPU and kill your drive.
-
class
hupper.watchdog.WatchdogFileMonitor(callback)[source]¶ An
hupper.interfaces.IFileMonitorthat useswatchdogto watch for file changes uses inotify.callbackis a callable that accepts a path to a changed file.