Changelog

0.21.0 (July 20, 2016)

  • Deprecate use of Device object as mapping from udev property names to values.
  • Add a Properties class and a Device.properties() method for udev properties.
  • Fix places where Device object was incorrectly used in a boolean context.
  • Return an empty string, not None, if the property value is an empty string.
  • Exceptions re-raised from libudev calls now have a message string.
  • Insert a warning about using a Device in a boolean context in docs.
  • Infrastructure for vagrant tests is removed.
  • Various internal refactorings.
  • Extensive test improvements.
  • Numerous documentation fixes.

0.20.0 (April 29, 2016)

  • Remove parsing code added in previous release.
  • No longer do CI for Python 2.6.
  • Eliminate all wildcard imports and __all__ statements.
  • No longer use deprecated Device.from_sys_path() method.
  • Minor pylint induced changes.
  • Documentation fixes.

0.19.0 (Feb 3, 2016)

  • Restore raising KeyError by Attributes.as* methods when attribute not found.
  • Explicitly require six module.
  • Never raise a DeviceNotFoundError when iterating over a device enumeration.
  • Device.subsystem() now returns None if device has no subsystem.
  • Add DeprecationWarnings to deprecated Device methods.
  • Replace “/” with ”!” in Device.from_name() sys_name parameter.
  • Add some unstable classes for parsing some kinds of values.
  • Make version info more like Python’s including micro numbers and levels.
  • Refactor some internal modules into subdirectories.
  • Work on tests and reproducers.

0.18 (Dec 1, 2015)

  • DeviceNotFoundError is no longer a subtype of LookupError
  • Added support for pyqt5 monitor observer
  • Added discover module, which looks up a device on limited information
  • Attributes class no longer extends Mapping, extends object instead
  • Attributes class no longer inherits [] operator, Mapping methods
  • Attributes class objects are no longer iterable
  • Attributes.available_attributes property added
  • Attributes.get() method, with usual semantics, defined
  • Device.from_* methods are deprecated, uses Devices.from_* methods instead
  • Device.from_device_file() now raises DeviceNotFoundByFileError
  • Device.from_device_number() now raises DeviceNotFoundByNumberError
  • Devices.from_interface_index() method added
  • Devices.from_kernel_device() method added
  • Numerous testing infrastructure changes

0.17 (Aug 26, 2015)

0.16.1 (Aug 02, 2012)

  • #53: Fix source distribution
  • #54: Fix typo in test

0.16 (Jul 25, 2012)

0.15 (Mar 1, 2012)

0.14 (Feb 10, 2012)

0.13 (Nov 4, 2011)

0.12 (Aug 31, 2011)

  • #32: Fix memory leak.
  • #33: Fix Python 3 support for pyudev.glib.
  • Fix license header in pyudev._compat.

0.11 (Jun 26, 2011)

0.10 (Apr 20, 2011)

0.9 (Mar 09, 2011)

0.8 (Jan 08, 2011)

0.7 (Nov 15, 2010)

0.6 (Oct 03, 2010)

0.5 (Sep 06, 2010)

0.4 (Aug 23, 2010)

API changes

0.3 (Jul 28, 2010)

  • #1: Fix documentation to reflect the actual behaviour of the underlying API
  • Raise TypeError if udev.Device are compared with >, >=, < or <=.
  • Add udev.Enumerator.match_children().
  • Add udev.Device.children.
  • Add qudev.QUDevMonitorObserver.deviceChanged().
  • Add qudev.QUDevMonitorObserver.deviceMoved().

0.2 (Jun 28, 2010)

  • Add udev.Monitor.
  • Add udev.Device.asbool().
  • Add udev.Device.asint().
  • Remove type magic in udev.Device.__getitem__().
  • Add qudev.

0.1 (May 03, 2010)

  • Initial release.
  • Add udev.Context.
  • Add udev.Device.
  • Add udev.Enumerator.