Skip to main content

py-mon

A modern, easy-to-use package to automatically restart a Python application when file changes are detected!

Quickstart (10s)

pip install -U py-mon
pymon app.py

Zero-config reloads for Python files by default. Requires Python 3.9+.

Why py-mon?

  • Works for Python files or any shell command (-x "npm run dev").
  • Simple patterns for watch/ignore; sane defaults.
  • Clean/quiet mode available when you don’t want prompts.

Core flags

  • -w / --watch <pattern>: what to watch (default *.py).
  • -i / --ignore <pattern>: what to ignore.
  • -x / --exec: run a shell command instead of python <file>.
  • -d / --debug: print changed paths.
  • -c / --clean: no logs, no stdin commands.
  • --delay <ms>: wait this long after the last change before restarting (default 250), so editor save bursts trigger one restart.

Command Input

When running pymon, you can use these commands:

  • Type rs to manually restart the process
  • Type stop to terminate pymon

If stdin is not available (e.g. running in CI or under a process manager), pymon keeps watching with command input disabled. When pymon stops or restarts your program, it terminates the whole process group, so shell commands started with -x don't leave stray child processes behind.

Optional Config File

Put a .pymonrc or pymon.json in your project root to keep team settings consistent:

{
  "watch": ["*.py", "config/*.yaml"],
  "ignore": ["*__pycache__*", "*.log"],
  "debug": false,
  "clean": false,
  "exec": false,
  "delay": 250
}

Command line arguments will always override config file settings.

__pycache__, .pyc/.pyo files and .git internals are always ignored, in addition to any ignore patterns you set.

Anyway that's basically it! Thanks for everything, I would appreciate it if you could leave a follow or star this repository ❣️ If you have any feature requests, read below!

Contributing

This package is open source so anyone with adequate Python experience can contribute to this project!

Report Issues

If you find any issues with the package or in the code, please create an issue and report it here!

Fix/Edit Content

If you want to contribute to this package, fork the repository, clone it, make your changes and then proceed to create a pull request here

Tests

Run the test suite locally with pytest:

pip install -e ".[dev]"
pytest

Metadata

Release files for py-mon 2.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-mon 2.3.0
File Size Uploaded
py_mon-2.3.0.tar.gz 12.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for py-mon 2.3.0
File Interpreter ABI Platform
py_mon-2.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.3 kB

Release files / py_mon-2.3.0.tar.gz

Download URL py_mon-2.3.0.tar.gz
Size 12.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d76c6d0d2e05a0650afb756d4d350800726d0262e90862fe98dae65eadfe9427
BLAKE2b-256 checksum
How to use checksums
42f2790342e781a20bb79920647872a8d6085e523225b188ebb76fa2a38aad12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release files / py_mon-2.3.0-py3-none-any.whl

Download URL py_mon-2.3.0-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2320f7bd748644805c2dd5364f406c1d308937b08964987c2460e874f207c121
BLAKE2b-256 checksum
How to use checksums
11bc61c9b7cbd59e6004c4edd6dbcd128005e56f509c58888beafc6f8f882121
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

2.3.0 This release

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page