aionotify is a simple, asyncio-based inotify library.
Its use is quite simple:
import asyncio import aionotify # Setup the watcher watcher = aionotify.Watcher() watcher.watch(alias='logs', path='/var/log', flags=aionotify.Flags.MODIFY) async def work(): await watcher.setup() for _i in range(10): # Pick the 10 first events event = await watcher.get_event() print(event) watcher.close() asyncio.run(work())
Links
- Code at https://github.com/rbarrois/aionotify
- Package at https://pypi.python.org/pypi/aionotify/
- Continuous integration at https://travis-ci.org/rbarrois/aionotify/
Events
An event is a simple object with a few attributes:
name: the path of the modified fileflags: the modification flag; useaionotify.Flags.parse()to retrieve a list of individual values.alias: the alias of the watch triggering the eventcookie: for renames, this integer value links the "renamed from" and "renamed to" events.
Watches
aionotify uses a system of "watches", similar to inotify.
A watch may have an alias; by default, it uses the path name:
watcher = aionotify.Watcher() watcher.watch('/var/log', flags=aionotify.Flags.MODIFY) # Similar to: watcher.watch('/var/log', flags=aionotify.Flags.MODIFY, alias='/var/log')
A watch can be removed by using its alias:
watcher = aionotify.Watcher() watcher.watch('/var/log', flags=aionotify.Flags.MODIFY) watcher.unwatch('/var/log')