Provides python bindings for inotify and framework for building file watchers using coroutines.
Please note this only runs on Linux and a have no plans to support any other OS.
There are many, many alternatives though.
noticeme includes the noticeme command for quickly setting up a file watcher.
Using noticeme declaratively
If you just need a small file watcher you can try this out.
pip install --user noticeme # install noticeme init # writes an initial config to .noticeme noticeme # start watching
To see a full list of events:
To select which watchers we want to run we can give a list.
Say we had watchers named build:js, build:css, and test in a single config file.
In one terminal we could run:
noticeme build:js build:css
And in another:
Quick look at configuration
see noticeme/examples/noticeme.cfg for details
# noticeme.cfg [should] clear_screen = yes [imports] example = A .py file with a @noticeme.watcher decorator in it [my_watcher] description = This is an example. paths = . ** events = written regex = ^docs glob = *.txt shell = echo "my_watcher: file was added"
Using noticeme to build a file watcher programmatically
import asyncio import noticeme @noticeme.watcher('/path/to/directory', 'created modified') async def my_watcher(event): if '.py' == event.path.suffix.lower(): proc = await asyncio.create_subprocess_exec('cmd', event.path.absolute()) await proc.wait() if __name__ == '__main__': noticeme.run()
- Linux >= 2.6.13
- Python >= 3.5
- C compiler installed (if you need to run inotify_build.py)
pip install --user noticeme
- Copy noticeme.py and inotify_build.py to your project directory
- Within noticeme's package directory run:
- This creates a 'build' directory containing the result of ffibuilder.compile
- You should now be able to use noticeme.
- inotify_build.py will no longer be needed.
- set a more informative window title
- add '.noticeme' as possible config file
- add 'init' command to write example config file