commit python3-pyudev for openSUSE:Factory
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 <lunaryorn@gmail.com> """
-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 <amulhern@redhat.com> - -# 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 <amulhern@redhat.com> -""" - -__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 <amulhern@redhat.com> - -# 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 <amulhern@redhat.com> -""" - -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 <amulhern@redhat.com> - -# 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 <amulhern@redhat.com> -""" - -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 <amulhern@redhat.com> - -# 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 <amulhern@redhat.com> -""" - -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 <amulhern@redhat.com> - -# 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 <amulhern@redhat.com> -""" - -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 <lunaryorn@gmail.com> """ -__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 <amulhern@redhat.com> """ -__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 <amulhern@redhat.com> - -# 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 <amulhern@redhat.com> -""" - - -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):
participants (1)
-
root@hilbert.suse.de