Provides a framework for building file watchers. Includes a file watcher utility program that allows you to create file watchers declaratively.
Project description
noticeme
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:
noticeme 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:
noticeme test
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()
Requirements
- Linux >= 2.6.13
- Python >= 3.5
- cffi
- C compiler installed (if you need to run inotify_build.py)
Install
pip
pip install --user noticeme
Include directly
- Copy noticeme.py and inotify_build.py to your project directory
- Within noticeme's package directory run:
python3 inotify_build.py
- 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.
Alternatives
Version 2019.7
- set a more informative window title
Version 2019.8
- add '.noticeme' as possible config file
Version 2019.11
- add 'init' command to write example config file
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.