Hello community,
here is the log from the commit of package python3-pyudev for openSUSE:Factory checked in at 2016-06-02 09:38:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-pyudev (Old)
and /work/SRC/openSUSE:Factory/.python3-pyudev.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-pyudev"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-pyudev/python3-pyudev.changes 2016-02-08 09:48:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-pyudev.new/python3-pyudev.changes 2016-06-02 09:38:02.000000000 +0200
@@ -1,0 +2,17 @@
+Mon May 16 15:38:01 UTC 2016 - arun@gmx.de
+
+- update to version 0.20.0:
+ * 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.
+
+-------------------------------------------------------------------
+Sun May 8 07:05:39 UTC 2016 - arun@gmx.de
+
+- specfile:
+ * updated source url to files.pythonhosted.org
+
+-------------------------------------------------------------------
Old:
----
pyudev-0.19.0.tar.gz
New:
----
pyudev-0.20.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-pyudev.spec ++++++
--- /var/tmp/diff_new_pack.OI6vNZ/_old 2016-06-02 09:38:03.000000000 +0200
+++ /var/tmp/diff_new_pack.OI6vNZ/_new 2016-06-02 09:38:03.000000000 +0200
@@ -17,13 +17,13 @@
Name: python3-pyudev
-Version: 0.19.0
+Version: 0.20.0
Release: 0
Summary: Udev bindings for Python
License: LGPL-2.1+
Group: Development/Libraries/Python
Url: http://pyudev.readthedocs.org/
-Source0: https://pypi.python.org/packages/source/p/pyudev/pyudev-%{version}.tar.gz
+Source0: https://files.pythonhosted.org/packages/source/p/pyudev/pyudev-%{version}.tar.gz
BuildRequires: libudev-devel
BuildRequires: python3-Sphinx
BuildRequires: python3-devel
++++++ pyudev-0.19.0.tar.gz -> pyudev-0.20.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/CHANGES.rst new/pyudev-0.20.0/CHANGES.rst
--- old/pyudev-0.19.0/CHANGES.rst 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/CHANGES.rst 2016-04-29 23:17:02.000000000 +0200
@@ -1,4 +1,14 @@
-0.19.0 (Feb 3, 2015)
+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.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/PKG-INFO new/pyudev-0.20.0/PKG-INFO
--- old/pyudev-0.19.0/PKG-INFO 2016-02-03 15:39:22.000000000 +0100
+++ new/pyudev-0.20.0/PKG-INFO 2016-04-29 23:20:42.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pyudev
-Version: 0.19.0
+Version: 0.20.0
Summary: A libudev binding
Home-page: http://pyudev.readthedocs.org/
Author: Sebastian Wiesner
@@ -63,7 +63,7 @@
The source code is hosted on GitHub_::
- git clone git://github.com/lunaryorn/pyudev.git
+ git clone git://github.com/pyudev/pyudev.git
Please fork the repository and send pull requests with your fixes or new
features, but respect the following guidelines:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/README.rst new/pyudev-0.20.0/README.rst
--- old/pyudev-0.19.0/README.rst 2016-02-02 17:19:29.000000000 +0100
+++ new/pyudev-0.20.0/README.rst 2016-04-29 23:17:02.000000000 +0200
@@ -55,7 +55,7 @@
The source code is hosted on GitHub_::
- git clone git://github.com/lunaryorn/pyudev.git
+ git clone git://github.com/pyudev/pyudev.git
Please fork the repository and send pull requests with your fixes or new
features, but respect the following guidelines:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/doc/guide.rst new/pyudev-0.20.0/doc/guide.rst
--- old/pyudev-0.19.0/doc/guide.rst 2016-02-02 17:19:29.000000000 +0100
+++ new/pyudev-0.20.0/doc/guide.rst 2016-04-29 23:17:02.000000000 +0200
@@ -245,7 +245,7 @@
monitor.filter_by('block')
for device in iter(monitor.poll, None):
... if 'ID_FS_TYPE' in device:
-... print('{0} partition {1}'.format(action, device.get('ID_FS_LABEL')))
+... print('{0} partition {1}'.format(device.action, device.get('ID_FS_LABEL')))
...
add partition MULTIBOOT
remove partition MULTIBOOT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/__init__.py new/pyudev-0.20.0/src/pyudev/__init__.py
--- old/pyudev-0.19.0/src/pyudev/__init__.py 2016-02-02 17:55:25.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/__init__.py 2016-04-29 23:17:02.000000000 +0200
@@ -34,16 +34,36 @@
.. moduleauthor:: Sebastian Wiesner
"""
-from __future__ import (print_function, division, unicode_literals,
- absolute_import)
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+from __future__ import unicode_literals
-__all__ = ['Context', 'Device']
+from pyudev.device import Attributes
+from pyudev.device import Device
+from pyudev.device import Devices
+from pyudev.device import DeviceNotFoundAtPathError
+from pyudev.device import DeviceNotFoundByFileError
+from pyudev.device import DeviceNotFoundByNameError
+from pyudev.device import DeviceNotFoundByNumberError
+from pyudev.device import DeviceNotFoundError
+from pyudev.device import DeviceNotFoundInEnvironmentError
+from pyudev.device import Tags
+from pyudev.discover import DeviceFileHypothesis
+from pyudev.discover import DeviceNameHypothesis
+from pyudev.discover import DeviceNumberHypothesis
+from pyudev.discover import DevicePathHypothesis
+from pyudev.discover import Discovery
+
+from pyudev.core import Context
+from pyudev.core import Enumerator
+
+from pyudev.monitor import Monitor
+from pyudev.monitor import MonitorObserver
-from pyudev.device import *
-from pyudev.discover import *
-from pyudev.core import *
-from pyudev.monitor import *
from pyudev.version import __version__
from pyudev.version import __version_info__
+
+from pyudev._util import udev_version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/_ctypeslib/_errorcheckers.py new/pyudev-0.20.0/src/pyudev/_ctypeslib/_errorcheckers.py
--- old/pyudev-0.19.0/src/pyudev/_ctypeslib/_errorcheckers.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/_ctypeslib/_errorcheckers.py 2016-04-29 23:17:02.000000000 +0200
@@ -99,6 +99,7 @@
raised. Otherwise nothing happens.
"""
+ # pylint: disable=invalid-name
if not result:
errnum = get_errno()
if errnum != 0:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/_ctypeslib/libudev.py new/pyudev-0.20.0/src/pyudev/_ctypeslib/libudev.py
--- old/pyudev-0.19.0/src/pyudev/_ctypeslib/libudev.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/_ctypeslib/libudev.py 2016-04-29 23:17:02.000000000 +0200
@@ -47,61 +47,64 @@
from ._errorcheckers import check_negative_errorcode
-class udev(Structure):
+class udev(Structure): # pylint: disable=invalid-name
"""
Dummy for ``udev`` structure.
"""
# pylint: disable=too-few-public-methods
pass
-udev_p = POINTER(udev)
+udev_p = POINTER(udev) # pylint: disable=invalid-name
-class udev_enumerate(Structure):
+class udev_enumerate(Structure): # pylint: disable=invalid-name
"""
Dummy for ``udev_enumerate`` structure.
"""
# pylint: disable=too-few-public-methods
+ pass
-udev_enumerate_p = POINTER(udev_enumerate)
+udev_enumerate_p = POINTER(udev_enumerate) # pylint: disable=invalid-name
-class udev_list_entry(Structure):
+class udev_list_entry(Structure): # pylint: disable=invalid-name
"""
Dummy for ``udev_list_entry`` structure.
"""
# pylint: disable=too-few-public-methods
+ pass
-udev_list_entry_p = POINTER(udev_list_entry)
+udev_list_entry_p = POINTER(udev_list_entry) # pylint: disable=invalid-name
-class udev_device(Structure):
+class udev_device(Structure): # pylint: disable=invalid-name
"""
Dummy for ``udev_device`` structure.
"""
# pylint: disable=too-few-public-methods
+ pass
-udev_device_p = POINTER(udev_device)
+udev_device_p = POINTER(udev_device) # pylint: disable=invalid-name
-class udev_monitor(Structure):
+class udev_monitor(Structure): # pylint: disable=invalid-name
"""
Dummy for ``udev_device`` structure.
"""
# pylint: disable=too-few-public-methods
-udev_monitor_p = POINTER(udev_monitor)
+udev_monitor_p = POINTER(udev_monitor) # pylint: disable=invalid-name
-class udev_hwdb(Structure):
+class udev_hwdb(Structure): # pylint: disable=invalid-name
"""
Dummy for ``udev_hwdb`` structure.
"""
# pylint: disable=too-few-public-methods
-udev_hwdb_p = POINTER(udev_hwdb)
+udev_hwdb_p = POINTER(udev_hwdb) # pylint: disable=invalid-name
-dev_t = c_ulonglong
+dev_t = c_ulonglong # pylint: disable=invalid-name
SIGNATURES = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/_parsing/__init__.py new/pyudev-0.20.0/src/pyudev/_parsing/__init__.py
--- old/pyudev-0.19.0/src/pyudev/_parsing/__init__.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/_parsing/__init__.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2015 mulhern
-
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by the
-# Free Software Foundation; either version 2.1 of the License, or (at your
-# option) any later version.
-
-# This library is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
-# for more details.
-
-# You should have received a copy of the GNU Lesser General Public License
-# along with this library; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-"""
- pyudev._parsing
- ===============
-
- Parsing various fields extracted by pyudev.
-
- .. moduleauthor:: mulhern
-"""
-
-__all__ = [
- 'Devlink',
- 'IdPathParse',
- 'IdPathParsers',
- 'PCIAddressParse'
-]
-
-from ._devlink import Devlink
-
-from ._id_path import IdPathParse
-from ._id_path import IdPathParsers
-
-from ._pci_address import PCIAddressParse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/_parsing/_devlink.py new/pyudev-0.20.0/src/pyudev/_parsing/_devlink.py
--- old/pyudev-0.19.0/src/pyudev/_parsing/_devlink.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/_parsing/_devlink.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,101 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2015 Anne Mulhern
-
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by the
-# Free Software Foundation; either version 2.1 of the License, or (at your
-# option) any later version.
-
-# This library is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
-# for more details.
-
-# You should have received a copy of the GNU Lesser General Public License
-# along with this library; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-"""
- pyudev.device._devlink
- ======================
-
- Simple Devlink class.
-
- .. moduleauthor:: mulhern
-"""
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
-import os
-
-
-class Devlink(object):
- """
- Represents a device link.
- """
-
- def __init__(self, path):
- """
- Initializer
-
- :param str path: the full path of the device link
- """
- self._path = path
-
- def __str__(self):
- return self._path
-
- @property
- def path(self):
- """
- The full path of the device link.
-
- :returns: the full path
- :rtype: str
- """
- return self._path
-
- @property
- def has_category(self):
- """
- Whether this devlink has a category, like by-id, or by-path.
-
- :returns: True if the devlink has a category, otherwise False.
- :rtype: boolean
-
- This is decided by taking apart the path and looking for the lack
- of expected distinguishing features.
- """
- base = os.path.dirname(self._path)
- if not os.path.basename(base).startswith("by-"):
- return False
-
- return os.path.dirname(os.path.dirname(base)) == "/dev"
-
- @property
- def value(self):
- """
- The value of the devlink, which is the basename of the path.
-
- :returns: the basename, or None if this devlink has no category.
- :rtype: str or NoneType
- """
- if not self.has_category:
- return None
- return os.path.basename(self._path)
-
- @property
- def category(self):
- """
- The category of this device link.
-
- :returns: the category of the device link or None, if no category
- :rtype: str or NoneType
- """
- if not self.has_category:
- return None
- return os.path.basename(os.path.dirname(self._path))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/_parsing/_id_path.py new/pyudev-0.20.0/src/pyudev/_parsing/_id_path.py
--- old/pyudev-0.19.0/src/pyudev/_parsing/_id_path.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/_parsing/_id_path.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,171 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2015 mulhern
-
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by the
-# Free Software Foundation; either version 2.1 of the License, or (at your
-# option) any later version.
-
-# This library is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
-# for more details.
-
-# You should have received a copy of the GNU Lesser General Public License
-# along with this library; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-"""
- pyudev._parsing._id_path
- ========================
-
- Parsing the ID_PATH udev property.
-
- .. moduleauthor:: mulhern
-"""
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
-from collections import defaultdict
-
-from ._shared import Field
-from ._shared import Parser
-
-
-class IdPathParsers(object):
- """
- Aggregate parsers.
- """
- # pylint: disable=too-few-public-methods
-
- PARSERS = [
- Parser(r'acpi-%s', [Field('sys_name')]),
- Parser(r'ap-%s', [Field('sys_name')]),
- Parser(r'ata-%s', [Field('port_no')]),
- Parser(r'bcma-%s', [Field('core')]),
- Parser(r'cciss-disk%s', [Field('disk')]),
- Parser(r'ccw-%s', [Field('sys_name')]),
- Parser(r'ccwgroup-%s', [Field('sys_name')]),
- Parser(r'fc-%s-%s', [Field('port_name'), Field('lun')]),
- Parser(
- r'ip-%s:%s-iscsi-%s-%s',
- [
- Field('persistent_address'),
- Field('persistent_port'),
- Field('target_name'),
- Field('lun')
- ]
- ),
- Parser(r'iucv-%s', [Field('sys_name')]),
- Parser(r'nst%s', [Field('name')]),
- Parser(r'pci-%s', [Field('sys_name')]),
- Parser(r'platform-%s', [Field('sys_name')]),
- Parser(r'sas-%s-%s', [Field('sas_address'), Field('lun')]),
- Parser(
- r'sas-exp%s-phy%s-%s',
- [
- Field(
- 'sas_address',
- r'.*',
- 'sysfs sas_address attribute of expander'
- ),
- Field(
- 'phy_identifier',
- r'.*',
- 'sysfs phy_identifier attribute of target sas device'
- ),
- Field('lun', description='sysnum of device (0 if none)')
- ]
- ),
- Parser(
- r'sas-phy%s-%s',
- [
- Field(
- 'phy_identifier',
- r'.*',
- 'sysfs phy_identifier attribute of target sas device'
- ),
- Field('lun', description='sysnum of device (0 if none)')
- ]
- ),
- Parser(r'scm-%s', [Field('sys_name')]),
- Parser(
- r'scsi-%s:%s:%s:%s',
- [
- Field('host'),
- Field('bus'),
- Field('target'),
- Field('lun')
- ]
- ),
- Parser('serio-%s', [Field('sysnum')]),
- Parser('st%s', [Field('name')]),
- Parser('usb-0:%s', [Field('port')]),
- Parser('vmbus-%s-%s', [Field('guid'), Field('lun')]),
- Parser('xen-%s', [Field('sys_name')])
- ]
-
-
-class IdPathParse(object):
- """
- Manage the parsing of an ID_PATH value.
- """
- # pylint: disable=too-few-public-methods
-
- def __init__(self, parsers):
- """
- Initializer.
-
- :param parsers: parser objects to parse with
- :type parsers: list of Parser
- """
- self.parsers = parsers
-
- self._table = defaultdict(list)
- for parser in self.parsers:
- self._table[parser.prefix].append(parser)
-
- self._keys = self._table.keys()
-
- def _parse_one(self, value):
- """
- Parse the first part of the value.
-
- :param str value: the value to parse
- :returns: the result of parsing, may be several matches
- :rtype: list of parser * match pairs
- """
- keys = (key for key in self._keys if value.startswith(key))
- parsers = (p for key in keys for p in self._table[key])
- matches = ((p, p.regexp.match(value)) for p in parsers)
- return [(p, m) for (p, m) in matches if m is not None]
-
- def parse(self, value):
- """
- Parse the value.
-
- :param str value: the value to parse
- :returns: the result of parsing
- :rtype: list of list of parser * match pairs
-
- Returns the empty list if parsing fails.
-
- If multiple matches, picks the match with the longest matching prefix.
-
- There should not ever be a tie, because, if there are two equally
- long matching prefixes, only one can match.
- """
- match_list = []
- while value != '':
- matches = self._parse_one(value)
- if matches == []:
- return []
-
- (parser, best_match) = max(matches, key=lambda x: len(x[0].prefix))
- match_list.append((parser, best_match))
- value = value[len(best_match.group('total')):]
-
- return match_list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/_parsing/_pci_address.py new/pyudev-0.20.0/src/pyudev/_parsing/_pci_address.py
--- old/pyudev-0.19.0/src/pyudev/_parsing/_pci_address.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/_parsing/_pci_address.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,60 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2016 mulhern
-
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by the
-# Free Software Foundation; either version 2.1 of the License, or (at your
-# option) any later version.
-
-# This library is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
-# for more details.
-
-# You should have received a copy of the GNU Lesser General Public License
-# along with this library; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-"""
- pyudev._parsing._pci_address
- ============================
-
- Parsing a PCI address.
-
- .. moduleauthor:: mulhern
-"""
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
-from ._shared import Field
-from ._shared import Parser
-
-
-class PCIAddressParse(object):
- """
- Parse a pci address.
- """
- # pylint: disable=too-few-public-methods
-
- _PARSER = Parser(
- r'%s:%s:%s\.%s',
- [
- Field('domain', description='range 256'),
- Field('bus', description='range 256'),
- Field('device', description='range 32'),
- Field('function', description='range 8')
- ]
- )
-
- def parse(self, value):
- """
- Parse the value.
-
- :param str value: the value to parse
- :returns: the result of parsing
- :rtype: Parser * (Match or NoneType)
- """
- return (self._PARSER, self._PARSER.regexp.match(value))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/_parsing/_shared.py new/pyudev-0.20.0/src/pyudev/_parsing/_shared.py
--- old/pyudev-0.19.0/src/pyudev/_parsing/_shared.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/_parsing/_shared.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,118 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2016 mulhern
-
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by the
-# Free Software Foundation; either version 2.1 of the License, or (at your
-# option) any later version.
-
-# This library is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
-# for more details.
-
-# You should have received a copy of the GNU Lesser General Public License
-# along with this library; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-"""
- pyudev._parsing._shared
- =======================
-
- Some classes that parsers share.
-
- .. moduleauthor:: mulhern
-"""
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
-import re
-
-
-class Parser(object):
- """
- A parser for udev ID_PATH values.
- """
-
- def __init__(self, format_string, fields):
- """
- Initializer.
-
- :param str format_string: string used to format this id by udev
- :param fields: list of fields that fill the string
-
- ``format_string`` must content itself with basic C-style format
- codes, beginning with '%' as '%s', '%d'.
- """
- self.format_string = '%s' % format_string
- self.fields = fields
- self._prefix = self.format_string.split('%', 1)[0]
-
- substitution_list = [
- ('(?P<%s>%s)' % (f.name, f.regexp)) for f in self.fields
- ]
- regexp = self.format_string % tuple(substitution_list)
- self._regexp = re.compile('(?P<total>%s)' % regexp)
-
- @property
- def regexp(self):
- """
- The regular expression that should match this value.
-
- :returns: the regular expression that should match this value
- :rtype: compiled regular expression
-
- The regular expression uses ?P<name> syntax.
-
- If there is a match, match.groups('total') matches the entire matched
- string.
- """
- return self._regexp
-
- @property
- def prefix(self):
- """
- A partially distinguishing prefix.
-
- Some parsers may use the same prefix.
-
- :returns: a prefix that distinguishes the parser from other parsers
- """
- return self._prefix
-
- @property
- def keys(self):
- """
- Keys within the regular expression.
-
- :returns: a list of the keys useful for finding portions of a match
- :rtype: list of str
- """
- return [f.name for f in self.fields]
-
-
-class Field(object):
- """
- A field in an id_path.
- """
- # pylint: disable=too-few-public-methods
-
- def __init__(self, name, regexp=r'.*', description=None):
- """
- Initializer.
-
- :param str name: the name of the field
- :param str regexp: regular expression to match the field
-
- The best choice of regular expression may generally define a language
- that is a superset of the actual language of the field.
- Since the containing regular expression will constrain matches, the
- regular expression does not need to be the most precise.
- In general, '.*' may be good enough.
- """
- self.name = name
- self.regexp = regexp
- self.description = description
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/_qt_base.py new/pyudev-0.20.0/src/pyudev/_qt_base.py
--- old/pyudev-0.19.0/src/pyudev/_qt_base.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/_qt_base.py 2016-04-29 23:17:02.000000000 +0200
@@ -32,7 +32,7 @@
import six
-from pyudev.core import Device
+from pyudev.device import Device
class MonitorObserverMixin(object):
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/_util.py new/pyudev-0.20.0/src/pyudev/_util.py
--- old/pyudev-0.19.0/src/pyudev/_util.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/_util.py 2016-04-29 23:17:02.000000000 +0200
@@ -117,11 +117,6 @@
entry = libudev.udev_list_entry_get_next(entry)
-# for the sake of readability
-_is_char_device = stat.S_ISCHR
-_is_block_device = stat.S_ISBLK
-
-
def get_device_type(filename):
"""
Get the device type of a device file.
@@ -137,9 +132,9 @@
.. versionadded:: 0.15
"""
mode = os.stat(filename).st_mode
- if _is_char_device(mode):
+ if stat.S_ISCHR(mode):
return 'char'
- elif _is_block_device(mode):
+ elif stat.S_ISBLK(mode):
return 'block'
else:
raise ValueError('not a device file: {0!r}'.format(filename))
@@ -166,13 +161,13 @@
while True:
try:
return func(*args, **kwargs)
- except (OSError, IOError, select.error) as e:
+ except (OSError, IOError, select.error) as err:
# If this is not an IOError or OSError, it's the old select.error
# type, which means that the errno is only accessible via subscript
- if isinstance(e, (OSError, IOError)):
- error_code = e.errno
+ if isinstance(err, (OSError, IOError)):
+ error_code = err.errno
else:
- error_code = e.args[0]
+ error_code = err.args[0]
if error_code == errno.EINTR:
continue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/core.py new/pyudev-0.20.0/src/pyudev/core.py
--- old/pyudev-0.19.0/src/pyudev/core.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/core.py 2016-04-29 23:17:02.000000000 +0200
@@ -29,7 +29,7 @@
from __future__ import (print_function, division, unicode_literals,
absolute_import)
-from pyudev.device import Device
+from pyudev.device import Devices
from pyudev.device._errors import DeviceNotFoundAtPathError
from pyudev._ctypeslib.libudev import load_udev_library
@@ -37,9 +37,6 @@
from pyudev._util import ensure_unicode_string
from pyudev._util import property_value_to_bytes
from pyudev._util import udev_list_iterate
-from pyudev._util import udev_version
-
-__all__ = ['udev_version', 'Context', 'Enumerator']
class Context(object):
@@ -391,6 +388,6 @@
entry = self._libudev.udev_enumerate_get_list_entry(self)
for name, _ in udev_list_iterate(self._libudev, entry):
try:
- yield Device.from_sys_path(self.context, name)
+ yield Devices.from_sys_path(self.context, name)
except DeviceNotFoundAtPathError:
continue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/device/__init__.py new/pyudev-0.20.0/src/pyudev/device/__init__.py
--- old/pyudev-0.19.0/src/pyudev/device/__init__.py 2016-02-02 17:19:29.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/device/__init__.py 2016-04-29 23:17:02.000000000 +0200
@@ -24,18 +24,6 @@
.. moduleauthor:: Sebastian Wiesner
"""
-__all__ = [
- 'Attributes',
- 'Device',
- 'Devices',
- 'DeviceNotFoundAtPathError',
- 'DeviceNotFoundByFileError',
- 'DeviceNotFoundByNameError',
- 'DeviceNotFoundByNumberError',
- 'DeviceNotFoundError',
- 'DeviceNotFoundInEnvironmentError',
- 'Tags'
-]
from ._device import Attributes
from ._device import Device
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/discover.py new/pyudev-0.20.0/src/pyudev/discover.py
--- old/pyudev-0.19.0/src/pyudev/discover.py 2016-02-02 17:19:29.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/discover.py 2016-04-29 23:17:02.000000000 +0200
@@ -39,13 +39,6 @@
from pyudev.device import Devices
from pyudev.device import DeviceNotFoundError
-__all__ = [
- "DeviceFileHypothesis",
- "DeviceNameHypothesis",
- "DeviceNumberHypothesis",
- "DevicePathHypothesis",
- "Discovery"
-]
def wrap_exception(func):
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/glib.py new/pyudev-0.20.0/src/pyudev/glib.py
--- old/pyudev-0.19.0/src/pyudev/glib.py 2016-02-02 17:19:29.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/glib.py 2016-04-29 23:17:02.000000000 +0200
@@ -45,8 +45,10 @@
class _ObserverMixin(object):
"""Mixin to provide observer behavior to the old and the new API."""
+ # pylint: disable=too-few-public-methods
def _setup_observer(self, monitor):
+ # pylint: disable=attribute-defined-outside-init
self.monitor = monitor
self.event_source = None
self.enabled = True
@@ -66,12 +68,14 @@
@enabled.setter
def enabled(self, value):
if value and self.event_source is None:
+ # pylint: disable=attribute-defined-outside-init
self.event_source = glib.io_add_watch(
self.monitor, glib.IO_IN, self._process_udev_event)
elif not value and self.event_source is not None:
glib.source_remove(self.event_source)
def _process_udev_event(self, source, condition):
+ # pylint: disable=unused-argument
if condition == glib.IO_IN:
device = self.monitor.poll(timeout=0)
if device:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/monitor.py new/pyudev-0.20.0/src/pyudev/monitor.py
--- old/pyudev-0.19.0/src/pyudev/monitor.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/monitor.py 2016-04-29 23:17:02.000000000 +0200
@@ -34,17 +34,15 @@
from threading import Thread
from functools import partial
+from pyudev.device import Device
+
from pyudev._util import eintr_retry_call
from pyudev._util import ensure_byte_string
-from pyudev.core import Device
from pyudev._os import pipe
from pyudev._os import poll
-__all__ = ['Monitor', 'MonitorObserver']
-
-
class Monitor(object):
"""
A synchronous device event monitor.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev/version.py new/pyudev-0.20.0/src/pyudev/version.py
--- old/pyudev-0.19.0/src/pyudev/version.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev/version.py 2016-04-29 23:17:02.000000000 +0200
@@ -25,7 +25,7 @@
.. moduleauthor:: mulhern
"""
-__version_info__ = (0, 19, 0, '')
+__version_info__ = (0, 20, 0, '')
__version__ = "%s%s" % \
(
".".join(str(x) for x in __version_info__[:3]),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev.egg-info/PKG-INFO new/pyudev-0.20.0/src/pyudev.egg-info/PKG-INFO
--- old/pyudev-0.19.0/src/pyudev.egg-info/PKG-INFO 2016-02-03 15:38:59.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev.egg-info/PKG-INFO 2016-04-29 23:20:35.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pyudev
-Version: 0.19.0
+Version: 0.20.0
Summary: A libudev binding
Home-page: http://pyudev.readthedocs.org/
Author: Sebastian Wiesner
@@ -63,7 +63,7 @@
The source code is hosted on GitHub_::
- git clone git://github.com/lunaryorn/pyudev.git
+ git clone git://github.com/pyudev/pyudev.git
Please fork the repository and send pull requests with your fixes or new
features, but respect the following guidelines:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/src/pyudev.egg-info/SOURCES.txt new/pyudev-0.20.0/src/pyudev.egg-info/SOURCES.txt
--- old/pyudev-0.19.0/src/pyudev.egg-info/SOURCES.txt 2016-02-03 15:38:59.000000000 +0100
+++ new/pyudev-0.20.0/src/pyudev.egg-info/SOURCES.txt 2016-04-29 23:20:36.000000000 +0200
@@ -60,11 +60,6 @@
src/pyudev/_os/__init__.py
src/pyudev/_os/pipe.py
src/pyudev/_os/poll.py
-src/pyudev/_parsing/__init__.py
-src/pyudev/_parsing/_devlink.py
-src/pyudev/_parsing/_id_path.py
-src/pyudev/_parsing/_pci_address.py
-src/pyudev/_parsing/_shared.py
src/pyudev/device/__init__.py
src/pyudev/device/_device.py
src/pyudev/device/_errors.py
@@ -79,7 +74,6 @@
tests/test_monitor.py
tests/test_observer.py
tests/test_observer_deprecated.py
-tests/test_parsing.py
tests/test_pypi.py
tests/test_util.py
tests/_device_tests/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/_device_tests/_attributes_tests.py new/pyudev-0.20.0/tests/_device_tests/_attributes_tests.py
--- old/pyudev-0.19.0/tests/_device_tests/_attributes_tests.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/tests/_device_tests/_attributes_tests.py 2016-04-29 23:17:02.000000000 +0200
@@ -55,6 +55,10 @@
@given(_CONTEXT_STRATEGY, strategies.sampled_from(_DEVICE_DATA))
@settings(max_examples=5)
def test_getitem(self, a_context, device_datum):
+ """
+ Test that attribute value is the same as datum attribute value and
+ is instance of bytes.
+ """
device = Device.from_path(a_context, device_datum.device_path)
for key, value in non_volatile_attributes(device_datum.attributes):
raw_value = value.encode(sys.getfilesystemencoding())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/_device_tests/_device_tests.py new/pyudev-0.20.0/tests/_device_tests/_device_tests.py
--- old/pyudev-0.19.0/tests/_device_tests/_device_tests.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/tests/_device_tests/_device_tests.py 2016-04-29 23:17:02.000000000 +0200
@@ -32,7 +32,6 @@
import gc
from datetime import timedelta
-from hypothesis import assume
from hypothesis import given
from hypothesis import settings
from hypothesis import strategies
@@ -382,14 +381,14 @@
@settings(max_examples=5)
def test_asint(self, a_context, device_datum):
device = Devices.from_path(a_context, device_datum.device_path)
- for property, value in device_datum.properties.items():
+ for prop, value in device_datum.properties.items():
try:
value = int(value)
except ValueError:
with pytest.raises(ValueError):
- device.asint(property)
+ device.asint(prop)
else:
- assert device.asint(property) == value
+ assert device.asint(prop) == value
@given(_CONTEXT_STRATEGY, strategies.sampled_from(_DEVICE_DATA))
@settings(max_examples=5)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/conftest.py new/pyudev-0.20.0/tests/conftest.py
--- old/pyudev-0.19.0/tests/conftest.py 2016-02-02 17:19:29.000000000 +0100
+++ new/pyudev-0.20.0/tests/conftest.py 2016-04-29 23:17:02.000000000 +0200
@@ -18,8 +18,6 @@
from __future__ import (print_function, division, unicode_literals,
absolute_import)
-import os
-
import pytest
import pyudev
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/plugins/fake_monitor.py new/pyudev-0.20.0/tests/plugins/fake_monitor.py
--- old/pyudev-0.19.0/tests/plugins/fake_monitor.py 2016-02-02 17:19:29.000000000 +0100
+++ new/pyudev-0.20.0/tests/plugins/fake_monitor.py 2016-04-29 23:17:02.000000000 +0200
@@ -34,7 +34,6 @@
from __future__ import (print_function, division, unicode_literals,
absolute_import)
-import sys
import os
from select import select
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/test_core.py new/pyudev-0.20.0/tests/test_core.py
--- old/pyudev-0.19.0/tests/test_core.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/tests/test_core.py 2016-04-29 23:17:02.000000000 +0200
@@ -22,7 +22,6 @@
import random
import syslog
-import pytest
import mock
from pyudev import udev_version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/test_enumerate.py new/pyudev-0.20.0/tests/test_enumerate.py
--- old/pyudev-0.19.0/tests/test_enumerate.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/tests/test_enumerate.py 2016-04-29 23:17:02.000000000 +0200
@@ -224,8 +224,8 @@
"""
properties = ('DEVTYPE', 'ID_TYPE')
devices = context.list_devices()
- for property in properties:
- devices.match_property(property, 'disk')
+ for prop in properties:
+ devices.match_property(prop, 'disk')
for device in devices:
assert (device.get('DEVTYPE') == 'disk' or
device.get('ID_TYPE') == 'disk')
@@ -233,8 +233,8 @@
def test_combined_matches_of_different_types(self, context):
properties = ('DEVTYPE', 'ID_TYPE')
devices = context.list_devices().match_subsystem('input')
- for property in properties:
- devices.match_property(property, 'disk')
+ for prop in properties:
+ devices.match_property(prop, 'disk')
devices = list(devices)
assert not devices
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/test_libudev.py new/pyudev-0.20.0/tests/test_libudev.py
--- old/pyudev-0.19.0/tests/test_libudev.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/tests/test_libudev.py 2016-04-29 23:17:02.000000000 +0200
@@ -22,8 +22,6 @@
import re
import ctypes
-import pytest
-
from pyudev import _ctypeslib
from .utils import is_unicode_string
@@ -66,7 +64,7 @@
else:
if pattern.match(function.name):
return True
- else:
+ else: # pylint: disable=useless-else-on-loop
return False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/test_monitor.py new/pyudev-0.20.0/tests/test_monitor.py
--- old/pyudev-0.19.0/tests/test_monitor.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/tests/test_monitor.py 2016-04-29 23:17:02.000000000 +0200
@@ -19,7 +19,6 @@
from __future__ import (print_function, division, unicode_literals,
absolute_import)
-import errno
from datetime import datetime, timedelta
from contextlib import contextmanager
from select import select
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/test_parsing.py new/pyudev-0.20.0/tests/test_parsing.py
--- old/pyudev-0.19.0/tests/test_parsing.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/tests/test_parsing.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,143 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2015 Anne Mulhern
-
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by the
-# Free Software Foundation; either version 2.1 of the License, or (at your
-# option) any later version.
-
-# This library is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
-# for more details.
-
-# You should have received a copy of the GNU Lesser General Public License
-# along with this library; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-"""
- tests.test_parsing
- ==================
-
- Test parsing values that happen to be synthesized from other values
- such that they need to be parsed.
-
- .. moduleauthor:: mulhern
-"""
-
-
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
-from itertools import groupby
-
-import pyudev
-
-from pyudev import _parsing
-
-import pytest
-
-from hypothesis import given
-from hypothesis import settings
-from hypothesis import strategies
-
-_CONTEXT = pyudev.Context()
-_DEVICES = _CONTEXT.list_devices()
-
-
-class TestIDPATH(object):
- """
- Test parsing ID_PATH values.
- """
- # pylint: disable=too-few-public-methods
-
- @given(
- strategies.sampled_from(_DEVICES).filter(
- lambda x: x.get('ID_PATH') is not None
- )
- )
- def test_parsing(self, a_device):
- """
- Test that parsing is satisfactory on all examples.
- """
- id_path = a_device.get('ID_PATH')
- parser = _parsing.IdPathParse(_parsing.IdPathParsers.PARSERS)
- result = parser.parse(id_path)
- assert isinstance(result, list) and result != []
-
- _devices = [d for d in _DEVICES if d.get('ID_SAS_PATH') is not None]
- @pytest.mark.skipif(
- len(_devices) == 0,
- reason="no devices with ID_SAS_PATH property"
- )
- @given(strategies.sampled_from(_devices))
- @settings(min_satisfying_examples=1)
- def test_parsing_sas_path(self, a_device):
- """
- Test that parsing is satisfactory on all examples.
- """
- id_path = a_device.get('ID_SAS_PATH')
- parser = _parsing.IdPathParse(_parsing.IdPathParsers.PARSERS)
- result = parser.parse(id_path)
- assert isinstance(result, list) and result != []
-
-
-class TestDevlinks(object):
- """
- Test ``Devlinks`` methods.
- """
- # pylint: disable=too-few-public-methods
-
- _devices = [d for d in _DEVICES if list(d.device_links)]
- @pytest.mark.skipif(
- len(_devices) == 0,
- reason="no devices with device links"
- )
- @given(strategies.sampled_from(_devices))
- @settings(max_examples=5, min_satisfying_examples=1)
- def test_devlinks(self, a_device):
- """
- Verify that device links are in "by-.*" categories or no category.
- """
- device_links = (_parsing.Devlink(d) for d in a_device.device_links)
-
- def sort_func(dl):
- """
- :returns: category of device link
- :rtype: str
- """
- key = dl.category
- return key if key is not None else ""
-
- devlinks = sorted(device_links, key=sort_func)
-
- categories = list(k for k, g in groupby(devlinks, sort_func))
- assert all(c == "" or c.startswith("by-") for c in categories)
-
- assert all((d.category is None and d.value is None) or \
- (d.category is not None and d.value is not None) \
- for d in devlinks)
-
- assert all(d.path == str(d) for d in devlinks)
-
-
-class TestPCIAddress(object):
- """
- Test parsing a PCI address object.
- """
- # pylint: disable=too-few-public-methods
-
- _devices = [d for d in _DEVICES if d.subsystem == 'pci']
- @pytest.mark.skipif(
- len(_devices) == 0,
- reason="no devices with subsystem pci"
- )
- @given(strategies.sampled_from(_devices))
- @settings(min_satisfying_examples=1)
- def test_parsing_pci(self, a_device):
- """
- Test correct parsing of pci-addresses.
- """
- assert _parsing.PCIAddressParse().parse(a_device.sys_name) is not None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/test_util.py new/pyudev-0.20.0/tests/test_util.py
--- old/pyudev-0.19.0/tests/test_util.py 2016-02-03 15:36:35.000000000 +0100
+++ new/pyudev-0.20.0/tests/test_util.py 2016-04-29 23:17:02.000000000 +0200
@@ -19,7 +19,6 @@
absolute_import)
import sys
-import errno
import pytest
from mock import Mock
@@ -123,9 +122,9 @@
raise ValueError('from function')
-_char_devices = list(_CONTEXT.list_devices(subsystem="tty"))
-@pytest.mark.skipif(len(_char_devices) == 0, reason='no tty devices')
-@given(strategies.sampled_from(_char_devices))
+_CHAR_DEVICES = list(_CONTEXT.list_devices(subsystem="tty"))
+@pytest.mark.skipif(len(_CHAR_DEVICES) == 0, reason='no tty devices')
+@given(strategies.sampled_from(_CHAR_DEVICES))
@settings(min_satisfying_examples=1, max_examples=5)
def test_get_device_type_character_device(a_device):
"""
@@ -133,9 +132,9 @@
"""
assert _util.get_device_type(a_device.device_node) == 'char'
-_block_devices = list(_CONTEXT.list_devices(subsystem="block"))
-@pytest.mark.skipif(len(_block_devices) == 0, reason='no block devices')
-@given(strategies.sampled_from(_block_devices))
+_BLOCK_DEVICES = list(_CONTEXT.list_devices(subsystem="block"))
+@pytest.mark.skipif(len(_BLOCK_DEVICES) == 0, reason='no block devices')
+@given(strategies.sampled_from(_BLOCK_DEVICES))
@settings(min_satisfying_examples=1, max_examples=5)
def test_get_device_type_block_device(a_device):
"""
@@ -167,6 +166,7 @@
import os, signal, select
def handle_alarm(signum, frame):
+ # pylint: disable=unused-argument
pass
orig_alarm = signal.getsignal(signal.SIGALRM)
@@ -181,7 +181,7 @@
# Ensure that a signal raises EINTR on Python < 3.5
if sys.version_info < (3, 5):
- with pytest.raises(select.error) as e:
+ with pytest.raises(select.error):
signal.alarm(1)
select.select([], [], [fd], 2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyudev-0.19.0/tests/utils/libudev.py new/pyudev-0.20.0/tests/utils/libudev.py
--- old/pyudev-0.19.0/tests/utils/libudev.py 2016-02-02 17:19:29.000000000 +0100
+++ new/pyudev-0.20.0/tests/utils/libudev.py 2016-04-29 23:17:02.000000000 +0200
@@ -123,25 +123,25 @@
for symbol in self.tree.getroot():
self._symbol_table[symbol.get('id')] = symbol
- def _resolve_Function(self, symbol):
+ def _resolve_Function(self, symbol): # pylint: disable=invalid-name
return_type = self._resolve_symbol(symbol.get('returns'))
arguments = tuple(self._resolve_symbol(a.get('type'))
for a in symbol.findall('./Argument'))
return Function(symbol.get('name'), arguments, return_type)
- def _resolve_Struct(self, symbol):
+ def _resolve_Struct(self, symbol): # pylint: disable=invalid-name
return Struct(symbol.get('name'))
- def _resolve_FundamentalType(self, symbol):
+ def _resolve_FundamentalType(self, symbol): # pylint: disable=invalid-name
return FundamentalType(symbol.get('name'))
- def _resolve_CvQualifiedType(self, symbol):
+ def _resolve_CvQualifiedType(self, symbol): # pylint: disable=invalid-name
return CvQualifiedType(self._resolve_symbol(symbol.get('type')))
- def _resolve_PointerType(self, symbol):
+ def _resolve_PointerType(self, symbol): # pylint: disable=invalid-name
return PointerType(self._resolve_symbol(symbol.get('type')))
- def _resolve_Typedef(self, symbol):
+ def _resolve_Typedef(self, symbol): # pylint: disable=invalid-name
return Typedef(self._resolve_symbol(symbol.get('type')))
def _resolve_symbol(self, symbol):