Skip to content

Releases: chrisjbillington/inotify_simple

1.3.3

24 Feb 22:03
Compare
Choose a tag to compare

Fix failure to set ERRNO when inotify functions fail

1.3.2

21 Feb 16:35
Compare
Choose a tag to compare
  • Fix failure to install on Python 2 if enum34 not already installed

1.3.1

18 Feb 04:11
Compare
Choose a tag to compare
  • Resolves an issue causing an OSError in the case of a blocking read.

1.3.0

17 Feb 16:38
Compare
Choose a tag to compare
  • Switch to using 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.
  • Make the 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().
  • Restructure module layout to a single .py file instead of a package
  • Code simplifications.

This release is backwards compatible with previous releases.

Bugfix release

22 Nov 17:46
Compare
Choose a tag to compare

Fix installation error on non UTF8 systems (issue #13)

1.2.0

21 Nov 18:28
Compare
Choose a tag to compare

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.

Bugfix release

27 Jul 02:38
Compare
Choose a tag to compare

Defer loading of libc until instantiation of an INotify object, so that errors loading it occur there instead of at import time.

1.1.7

24 Nov 22:11
Compare
Choose a tag to compare

Bugfix release - allow use of pathlib module but do not require it.

1.1.6

20 Nov 19:39
Compare
Choose a tag to compare

Bugfix release allowing use of pathlib.Path objects on python < 3.6

1.1.1

05 Mar 06:28
Compare
Choose a tag to compare
  • Use os.fsencode and os.fsdecode() for filepath encoding/decoding in Python 3
  • Do not decode the 'name' field of events in Python 2, and only encode unicode strings passed to add_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.