NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #5526 most downloaded on PyPI
A simple wrapper around inotify. No fancy bells and whistles, just a literal wrapper with ctypes. Under 100 lines of code!
Last release 1 years ago
25 Aug 2025
Ships unpredictably
gaps range from 3 months to 5.1 years
Some releases are documented
notes for 12 of 22 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
22 releases · first in 2016
add support for FileIO's closefd argument
FileIO's closefd argumentModernise packaging: replace setup.py with pyproject.toml
setup.py with pyproject.tomlNothing published for this version
One column per quarter.
Nothing published for this version
Fix failure to set ERRNO when inotify functions fail
Fix failure to set ERRNO when inotify functions fail
Fix failure to install on Python 2 if enum34 not already installed
Resolves an issue causing an OSError in the case of a blocking read.
OSError in the case of a blocking read.Switch to using inotify_init1() and add inheritable and nonblocking keyword arguments to INotify, which control the IN_CLOEXEC and IN_NONBLOCK bits of
inotify_init1() and add inheritable and nonblocking keyword arguments to INotify, which control the IN_CLOEXEC and IN_NONBLOCK bits of the flags passed to inotify_init1(). Default to inheritable=False, which is in line with the Python standard library's behaviour for all file descriptors it opens.delay argument passed to INotify.read() only delay reading if there were no events to read initially, rather than unconditionally. An unconditional delay can rate limit a program that is struggling to keep up with events, which is undesirable.INotify() now subclasses io.FileIO, which simplifies things a bit - INotify.close() for example is inherited rather than implemented in the INotify() class. INotify.fd is now just an alias for the inherited INotify.fileno()..py file instead of a packageThis release is backwards compatible with previous releases.
Fix installation error on non UTF8 systems (issue #13)
Fix installation error on non UTF8 systems (issue #13)
INotify() class is now more file-like. .close() is idempotent, and it has a .fileno() method enabling it to be used directly with select.select() and
INotify() class is now more file-like. .close() is idempotent, and it has a .fileno() method enabling it to be used directly with select.select() and similar functions.
Defer loading of libc until instantiation of an INotify object, so that errors loading it occur there instead of at import time.
Defer loading of libc until instantiation of an INotify object, so that errors loading it occur there instead of at import time.
Bugfix release - allow use of pathlib module but do not require it.
Bugfix release - allow use of pathlib module but do not require it.
Bugfix release allowing use of pathlib.Path objects on python < 3.6
Bugfix release allowing use of pathlib.Path objects on python < 3.6
Nothing published for this version
Nothing published for this version
Use os.fsencode and os.fsdecode() for filepath encoding/decoding in Python 3
os.fsencode and os.fsdecode() for filepath encoding/decoding in Python 3add_watch(), not strings that are already bytestrings.These two changes allow inotify_simple to handle filepaths that might not respect the filesystem encoding. In Python 2, leaving everything as bytes mean we don't care about encoding at all. In Python 3, using os.fsencode() and os.fsdecode(), which use the surrogateescape error handler, allows incorrectly encoded filepaths to make the decode/encode round-trip unchanged. All standard library functions that encode or decode filepaths do so in this way, so filepaths returned by a standard library calls can be passed to add_watch(), with correct behaviour even if the filepath was incorrectly encoded on the filesystem.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →