aionotify

Asyncio-powered inotify library


Keywords
asyncio, inotify
License
BSD-3-Clause
Install
pip install aionotify==0.3.0

Documentation

aionotify

Latest Version Supported Python versions Wheel status License

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

Events

An event is a simple object with a few attributes:

  • name: the path of the modified file
  • flags: the modification flag; use aionotify.Flags.parse() to retrieve a list of individual values.
  • alias: the alias of the watch triggering the event
  • cookie: 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')