1. JanKanis
  2. python-inotify



About python-inotify

This is python-inotify, a Python interface to the Linux 2.6 kernel's inotify subsystem. The inotify subsystem provides an efficient way to let a process watch for changes to files and directories.

This package provides both low- and high-level interfaces to inotify.

The low-level interface is provided through the inotify module. It provides wrappers around the inotify system calls, a read function that returns useful event objects, and relevant constants.

The higher-level interface is more useful, and is provided through the inotify.watcher package. It provides two classes, Watcher and AutoWatcher, which allow you to not worry about file descriptor management, and a third, Threshold, which lets you decide whether you want to read queued events yet.

This package was written by Bryan O'Sullivan and published at https://bitbucket.org/bos/python-inotify, but seems to be no longer maintained. The motivation for this original release can be found at http://www.serpentine.com/blog/2008/01/04/why-you-should-not-use-pyinotify/. Python-inotify is now maintained by Jan Kanis at https://bitbucket.org/JanKanis/python-inotify/.

This package is not pyinotify

To confuse matters a little, there's another Python inotify interface available, called pyinotify. I wrote python-inotify as a reaction to pyinotify, after trying to use pyinotify a little and finding it lacking. In my admittedly brief experience, pyinotify was buggy and slow to the extent that I stopped trying to fix its problems and wrote a new implementation instead.

One difference is that pyinotify has a callback based API in which you define callbacks or methods that are called when a specific event happens, forcing an event-driven programmig style. Python-inotify has an API that allows you to use a blocking Watcher.read() call.

You can find pyinotify at http://pyinotify.sourceforge.net/