Changelog¶
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)¶
- #52: Remove global libudev object
- #57: Really start the monitor on
pyudev.Monitor.poll() - #60: Do not use
select.select()to avoid hitting its file descriptor limit - #58: Force non-blocking IO in
pyudev.Monitorto avoid blocking on receiving the device - #63: Set proper flags on pipe fds.
- #65: Handle irregular polling events properly.
- #50: Add
pyudev.wx.MonitorObserverand deprecatepyudev.wx.WxUDevMonitorObserver - #50: Add
pyudev.glib.MonitorObserverand deprecatepyudev.glib.GUDevMonitorObserver - #50: Add
pyudev.pyqt4.MonitorObserverand deprecatepyudev.pyqt4.QUDevMonitorObserver - #50: Add
pyudev.pyside.MonitorObserverand deprecatepyudev.pyside.QUDevMonitorObserver - Add a wrapper function to retry interruptible system calls.
0.16.1 (Aug 02, 2012)¶
- #53: Fix source distribution
- #54: Fix typo in test
0.16 (Jul 25, 2012)¶
- Remove
pyudev.Monitor.from_socket(). - Deprecate
pyudev.Device.traverse()in favor ofpyudev.Device.ancestors. - #47: Deprecate
pyudev.Monitor.receive_device()in favor ofpyudev.Monitor.poll. - #47: Deprecate
pyudev.Monitor.enable_receivingin favor ofpyudev.Monitor.start. - #47: Deprecate
pyudev.Monitor.__iter__in favor of explicit looping orpyudev.MonitorObserver. - #49: Deprecate
event_handlertopyudev.MonitorObserverin favour ofcallbackargument. - #46: Continuously test pyudev on Travis-CI.
- Add
pyudev.Device.ancestors. - Add
pyudev.Device.action. - #10: Add
pyudev.Device.sequence_number. - #47: Add
pyudev.Monitor.poll(). - #47: Add
pyudev.Monitor.started. - #49: Add
callbackargument topyudev.Monitor. pyudev.Monitor.start()can be called repeatedly.- #45: Get rid of 2to3
- #43: Fix test failures on Python 2.6
- Fix signature in declaration of
udev_monitor_set_receive_buffer_size. - #44: Test wrapped signatures with help of
gccxml. - Fix compatibility with udev 183 and newer in
pyudev.Context. pyudev.MonitorObserver.stop()can be called from the observer thread.
0.15 (Mar 1, 2012)¶
- #20: Add
remove_filter(). - #40: Add user guide to the documentation.
- #39: Add
pyudev.Device.from_device_file(). errno.EINVALfrom underlying libudev functions causesValueErrorinstead ofEnvironmentError.pyudev.MonitorObservercallspyudev.Monitor.enable_receiving()when started.- #20:
pyudev.Monitor.filter_by()andpyudev.Monitor.filter_by_tag()can be called afterpyudev.Monitor.enable_receiving().
0.14 (Feb 10, 2012)¶
- Host documentation at http://pyudev.readthedocs.org (thanks to the readthedocs.org team for this service)
- #37: Add
pyudev.wx.WxUDevMonitorObserverfor wxPython (thanks to Tobias Eberle). - Add
pyudev.MonitorObserver. - Add
pyudev.glib.GUDevMonitorObserver.enabled,pyudev.pyqt4.QUDevMonitorObserver.enabledandpyudev.pyside.QUDevMonitorObserver.enabled.
0.13 (Nov 4, 2011)¶
- #36: Add
pyudev.Monitor.set_receive_buffer_size()(thanks to Rémi Rérolle). - Add
pyudev.Enumerator.match_parent(). - Add
parentkeyword argument topyudev.Enumerator.match(). - #31: Add
pyudev.Enumerator.match_attribute(). - Add
nomatchargument topyudev.Enumerator.match_subsystem()andpyudev.Enumerator.match_attribute(). - Remove
pyudev.Enumerator.match_children()in favour ofpyudev.Enumerator.match_parent(). - #34:
pyudev.Device.tagsreturns apyudev.Tagsobject. pyudev.Device.childrenrequires udev version 172 now
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)¶
- #30: Add
pyudev.Device.sys_number. - #29: Add
pyudev.Device.from_device_number() - #29: Add
pyudev.Device.device_number. - Support PyPy.
0.10 (Apr 20, 2011)¶
- Add
pyudev.__version_info__ - Add
pyudev.Device.device_type pyudev.Context,pyudev.Enumerator,pyudev.Deviceandpyudev.Monitorcan directly be passed toctypes-wrapped functions.- #24: Add
pyudev.Context.run_path.
0.9 (Mar 09, 2011)¶
- #21: Add
pyudev.Device.find_parent(). - #22: Add
pyudev.Monitor.filter_by_tag(). - Add
pyudev.Context.log_priority. - Improve error reporting, if libudev is missing.
0.8 (Jan 08, 2011)¶
- #16: Add
pyudev.Enumerator.match(). - Add keyword arguments to
pyudev.Context.list_devices(). - #19: Add
pyudev.Enumerator.match_sys_name(). - #18: Add
pyudev.udev_version(). - #17: Add
pyudev.Device.is_initialized. - #17: Add
pyudev.Device.time_since_initialized. - #17: Add
pyudev.Enumerator.match_is_initialized() - Fix support for earlier releases of udev.
- Document minimum udev version for all affected attributes.
0.7 (Nov 15, 2010)¶
- #15: Add
pyudev.glib.GUDevMonitorObserver.
0.6 (Oct 03, 2010)¶
- #8: Add
pyudev.Device.tags. - #8: Add
pyudev.Enumerator.match_tag(). - #11: Add
pyudev.Device.from_environment() - #5: Add
pyudev.pyside - #14: Remove apipkg dependency.
- #14: Require explicit import of
pyudev.pyqt4. - Fix licence headers in source files.
0.5 (Sep 06, 2010)¶
- Support Python 3.
- #6: Add
pyudev.Device.attributes(thanks to Daniel Lazzari). - #6: Add
pyudev.Attributes(thanks to Daniel Lazzari). - #7:
pyudev.Device.contextandpyudev.Monitor.contextare part of the public API. - #9: Add
pyudev.Device.driver. - #12: Add
pyudev.Device.from_name(). - Rename
pyudev.NoSuchDeviceErrortopyudev.DeviceNotFoundError. pyudev.Device.from_sys_path()raisespyudev.DeviceNotFoundAtPathError.- #13: Fix
AttributeErrorinpyudev.Device.device_node. - Improve and extend documentation.
- Add more tests.
0.4 (Aug 23, 2010)¶
API changes¶
- #3: Rename
udevtopyudev. - #3: Rename
qudevtopyudev.pyqt4. - Add
pyudev.Device.from_path(). pyudev.Device.from_sys_path()raisespyudev.NoSuchDeviceError.pyudev.Monitor.receive_device()raisesEnvironmentError.errno,strerrorandfilenameattributes ofEnvironmentErrorexceptions have meaningful content.- Fix
NameErrorinpyudev.Monitor.from_socket() subsystemargument topyudev.Monitor.filter_by()is mandatory.- Delete underlying C objects if
pyudev.Deviceis garbage-collected. - Fix broken signal emitting in
pyudev.pyqt4.QUDevMonitorObserver.
0.3 (Jul 28, 2010)¶
- #1: Fix documentation to reflect the actual behaviour of the underlying API
- Raise
TypeErrorifudev.Deviceare 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.