A modern, easy-to-use package to automatically restart a Python application when file changes are detected!
I wanted to make this package as easy as possible to use. Here's a quick start, it's all you'll need πΌ
pip install -U py-mon
pymon filename.py
That's pretty much it! π
If you have a more sophisticated use-case, here are the available command line options:
--watch
(-w
) to specify paths or patterns to watch. Examples:src/*.py
,data/**/*.json
. Default:*.py
--ignore
(-i
) to specify patterns of files/paths to ignore. Use once for each pattern.--exec
(-x
) to execute a shell command instead of running a Python file.--debug
(-d
) to log detected file changes to the terminal.--clean
(-c
) to run pymon in clean mode (no logs, no commands).
pymon test.py -w "*.json"
will monitor changes in Python (default) and JSON files in the current directorypymon test.py -w "src/*.py" -w "data/*.json"
will monitor Python files in the src directory and JSON files in the data directorypymon test.py -i "*.log" -i "*__pycache__*"
will ignore changes in log files and pycache directoriespymon "python3 -m http.server" -x
will run the server and restart it when files changepymon "npm run dev" -x -w "src/*.js" -w "src/*.jsx"
will run a Node.js dev server and monitor JavaScript files
When running pymon, you can use these commands:
- Type
rs
to manually restart the process - Type
stop
to terminate pymon
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!
This package is open source so anyone with adequate Python experience can contribute to this project!
If you find any issues with the package or in the code, please create an issue and report it here!
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
Back when I was 13, I spent a lot of time developing discord bots and it was a hassle to constantly Ctrl+C
and then run the bot again on my terminal. Since I had just gotten started with web development back then, I decided to make something like nodemon but for Python so I randomly created this package one evening! I looked back at it a few weeks ago (I'm now 16) and realized over a thousand people download it every month so I quickly rewrote it (v2) to clean it up and add some new features!