These changes result in an almost clean pylint 1.1.0 run on master -- there is a bug where it is complaining about an illegal symbol that is picked up by NetworkManager introspection, dshea is looking into that. These all also work with pylint 1.0.0
Brian C. Lane (2): pylint: change disable-msg to disable pylint: Add a pile of new E1101 exceptions
anaconda | 8 +-- dracut/parse-kickstart | 10 ++-- dracut/python-deps | 4 +- pyanaconda/anaconda_log.py | 2 +- pyanaconda/anaconda_optparse.py | 2 +- pyanaconda/bootloader.py | 2 +- pyanaconda/constants.py | 2 +- pyanaconda/constants_text.py | 2 +- pyanaconda/exception.py | 2 +- pyanaconda/flags.py | 2 +- pyanaconda/network.py | 4 +- pyanaconda/packaging/__init__.py | 4 +- pyanaconda/packaging/tarpayload.py | 2 +- pyanaconda/packaging/yumpayload.py | 2 +- pyanaconda/sitecustomize.py | 2 +- pyanaconda/threads.py | 2 +- pyanaconda/ui/common.py | 4 +- pyanaconda/ui/gui/__init__.py | 2 +- pyanaconda/ui/gui/spokes/__init__.py | 4 +- pyanaconda/ui/gui/spokes/custom.py | 2 +- pyanaconda/ui/gui/spokes/lib/accordion.py | 4 +- pyanaconda/ui/gui/spokes/lib/cart.py | 6 +-- pyanaconda/ui/gui/spokes/lib/detailederror.py | 2 +- pyanaconda/ui/gui/spokes/lib/resize.py | 2 +- pyanaconda/ui/gui/spokes/lib/summary.py | 4 +- pyanaconda/ui/gui/spokes/network.py | 12 ++--- pyanaconda/ui/gui/spokes/software.py | 4 +- pyanaconda/ui/gui/spokes/source.py | 6 +-- pyanaconda/ui/gui/spokes/storage.py | 4 +- pyanaconda/ui/helpers.py | 2 +- pyanaconda/ui/tui/simpleline/__init__.py | 4 +- pyanaconda/ui/tui/spokes/__init__.py | 6 +-- pyanaconda/ui/tui/spokes/source.py | 4 +- scripts/anaconda-yum | 4 +- tests/glade/markup/check_markup.py | 2 +- tests/pyanaconda_tests/iutil_test.py | 10 ++-- tests/pyanaconda_tests/timezone_test.py | 4 +- tests/pylint/markup.py | 2 +- tests/pylint/pylint-false-positives | 73 +++++++++++++++++++++++++++ tests/storage/cases/__init__.py | 4 +- 40 files changed, 148 insertions(+), 75 deletions(-)
pylint-1.1.0 generates errors using disable-msg, so switch to the new form which also works with pylint-1.0.0 --- anaconda | 8 ++++---- dracut/parse-kickstart | 10 +++++----- dracut/python-deps | 4 ++-- pyanaconda/anaconda_log.py | 2 +- pyanaconda/anaconda_optparse.py | 2 +- pyanaconda/bootloader.py | 2 +- pyanaconda/constants.py | 2 +- pyanaconda/constants_text.py | 2 +- pyanaconda/exception.py | 2 +- pyanaconda/flags.py | 2 +- pyanaconda/network.py | 4 ++-- pyanaconda/packaging/__init__.py | 4 ++-- pyanaconda/packaging/tarpayload.py | 2 +- pyanaconda/packaging/yumpayload.py | 2 +- pyanaconda/sitecustomize.py | 2 +- pyanaconda/threads.py | 2 +- pyanaconda/ui/common.py | 4 ++-- pyanaconda/ui/gui/__init__.py | 2 +- pyanaconda/ui/gui/spokes/__init__.py | 4 ++-- pyanaconda/ui/gui/spokes/custom.py | 2 +- pyanaconda/ui/gui/spokes/lib/accordion.py | 4 ++-- pyanaconda/ui/gui/spokes/lib/cart.py | 6 +++--- pyanaconda/ui/gui/spokes/lib/detailederror.py | 2 +- pyanaconda/ui/gui/spokes/lib/resize.py | 2 +- pyanaconda/ui/gui/spokes/lib/summary.py | 4 ++-- pyanaconda/ui/gui/spokes/network.py | 12 ++++++------ pyanaconda/ui/gui/spokes/software.py | 4 ++-- pyanaconda/ui/gui/spokes/source.py | 6 +++--- pyanaconda/ui/gui/spokes/storage.py | 4 ++-- pyanaconda/ui/helpers.py | 2 +- pyanaconda/ui/tui/simpleline/__init__.py | 4 ++-- pyanaconda/ui/tui/spokes/__init__.py | 6 +++--- pyanaconda/ui/tui/spokes/source.py | 4 ++-- scripts/anaconda-yum | 4 ++-- tests/glade/markup/check_markup.py | 2 +- tests/pyanaconda_tests/iutil_test.py | 10 +++++----- tests/pyanaconda_tests/timezone_test.py | 4 ++-- tests/pylint/markup.py | 2 +- tests/storage/cases/__init__.py | 4 ++-- 39 files changed, 75 insertions(+), 75 deletions(-)
diff --git a/anaconda b/anaconda index 00bdee0..82c4f6b 100755 --- a/anaconda +++ b/anaconda @@ -395,7 +395,7 @@ def gtk_warning(title, reason): dialog.run() dialog.destroy()
-# pylint: disable-msg=W0621 +# pylint: disable=W0621 def check_memory(anaconda, options, display_mode=None): reason_strict = _("%(product_name)s requires %(needed_ram)s MB of memory to " "install, but you only have %(total_ram)s MB on this machine.\n") @@ -464,11 +464,11 @@ def check_memory(anaconda, options, display_mode=None): time.sleep(2)
def startDebugger(signum, frame): - # pylint: disable-msg=F0401 + # pylint: disable=F0401 import epdb epdb.serve(skip=1)
-# pylint: disable-msg=W0621 +# pylint: disable=W0621 def setupDisplay(anaconda, options, addons=None): from pyanaconda.ui.tui.simpleline import App from pyanaconda.ui.tui.spokes.askvnc import AskVNCSpoke @@ -720,7 +720,7 @@ if __name__ == "__main__":
# Allow a file to be loaded as early as possible try: - # pylint: disable-msg=F0401,W0611 + # pylint: disable=F0401,W0611 import updates_disk_hook except ImportError: pass diff --git a/dracut/parse-kickstart b/dracut/parse-kickstart index 8bcb47b..8977910 100755 --- a/dracut/parse-kickstart +++ b/dracut/parse-kickstart @@ -19,7 +19,7 @@ import glob from pykickstart.parser import KickstartParser, preprocessKickstart from pykickstart.version import returnClassForVersion from pykickstart.errors import KickstartError -# pylint: disable-msg=W0401 +# pylint: disable=W0401 from pykickstart.constants import * from pykickstart import commands from collections import OrderedDict @@ -44,7 +44,7 @@ def read_cmdline(f): lines = open(f).readlines() except IOError: lines = [] - # pylint: disable-msg=W0621 + # pylint: disable=W0621 for line in lines: for arg in line.split(): k,_e,v = arg.partition("=") @@ -196,7 +196,7 @@ class DracutHandler(handlerclass): cmd = args[0] # the commands member is implemented by the class returned # by returnClassForVersion - # pylint: disable-msg=E1101 + # pylint: disable=E1101 command = self.commands[cmd] if hasattr(command, "dracut_args"): log.debug("kickstart line %u: handling %s", lineno, cmd) @@ -241,7 +241,7 @@ def s390_settings(device): #NETTYPE="qeth" #OPTIONS="layer2=1 portname=FOOBAR portno=0" with open('/etc/ccw.conf') as f: - # pylint: disable-msg=W0621 + # pylint: disable=W0621 for line in f: if cfg['SUBCHANNELS'] in line: items = line.strip().split(',') @@ -253,7 +253,7 @@ def s390_settings(device):
def ksnet_to_dracut(args, lineno, net, bootdev=False): '''Translate the kickstart network data into dracut network data.''' - # pylint: disable-msg=W0621 + # pylint: disable=W0621 line = [] ip="" autoconf="" diff --git a/dracut/python-deps b/dracut/python-deps index 80d2f5e..5f09141 100755 --- a/dracut/python-deps +++ b/dracut/python-deps @@ -3,7 +3,7 @@
import os, sys from modulefinder import ModuleFinder -# pylint: disable-msg=W0401 +# pylint: disable=W0401 from distutils.sysconfig import *
sitedir = get_python_lib() @@ -19,7 +19,7 @@ def moduledir(pyfile): if modname not in ('..', 'site-packages'): return os.path.join(topdir, modname)
-# pylint: disable-msg=W0621 +# pylint: disable=W0621 def pyfiles(moddir): '''basically, "find $moddir -type f -name "*.py"''' for curdir, _dirs, files in os.walk(moddir): diff --git a/pyanaconda/anaconda_log.py b/pyanaconda/anaconda_log.py index 3e90c51..afdba23 100644 --- a/pyanaconda/anaconda_log.py +++ b/pyanaconda/anaconda_log.py @@ -191,7 +191,7 @@ class AnacondaLog: syslogHandler.setLevel(logging.DEBUG) logr.addHandler(syslogHandler)
- # pylint: disable-msg=W0622 + # pylint: disable=W0622 def showwarning(self, message, category, filename, lineno, file=sys.stderr, line=None): """ Make sure messages sent through python's warnings module get logged. diff --git a/pyanaconda/anaconda_optparse.py b/pyanaconda/anaconda_optparse.py index 200d018..7a2f646 100644 --- a/pyanaconda/anaconda_optparse.py +++ b/pyanaconda/anaconda_optparse.py @@ -122,7 +122,7 @@ class AnacondaOptionParser(OptionParser): option.process(arg, val, values, self) return values
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def parse_args(self, args=None, values=None, cmdline=None): """ Like OptionParser.parse_args(), but also parses the boot cmdline. diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py index e2564ea..0ea7984 100644 --- a/pyanaconda/bootloader.py +++ b/pyanaconda/bootloader.py @@ -1780,7 +1780,7 @@ class MacEFIGRUB(EFIGRUB):
# Inherit abstract methods from BootLoader -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class YabootBase(BootLoader): def write_config_password(self, config): if self.password: diff --git a/pyanaconda/constants.py b/pyanaconda/constants.py index 3df73ee..b65865d 100644 --- a/pyanaconda/constants.py +++ b/pyanaconda/constants.py @@ -28,7 +28,7 @@ SELINUX_DEFAULT = 1 ADDON_PATHS = ["/usr/share/anaconda/addons"]
# pull in kickstart constants as well -# pylint: disable-msg=W0401 +# pylint: disable=W0401 from pykickstart.constants import *
# common string needs to be easy to change diff --git a/pyanaconda/constants_text.py b/pyanaconda/constants_text.py index 08a8046..36770f7 100644 --- a/pyanaconda/constants_text.py +++ b/pyanaconda/constants_text.py @@ -17,7 +17,7 @@ # along with this program. If not, see http://www.gnu.org/licenses/. #
-# pylint: disable-msg=W0401 +# pylint: disable=W0401 from pyanaconda.constants import * from pyanaconda.i18n import _, N_
diff --git a/pyanaconda/exception.py b/pyanaconda/exception.py index 48046c6..3483d34 100644 --- a/pyanaconda/exception.py +++ b/pyanaconda/exception.py @@ -173,7 +173,7 @@ class AnacondaExceptionHandler(ExceptionHandler): # run kickstart traceback scripts (if necessary) try: kickstart.runTracebackScripts(anaconda.ksdata.scripts) - # pylint: disable-msg=W0702 + # pylint: disable=W0702 except: pass
diff --git a/pyanaconda/flags.py b/pyanaconda/flags.py index e81972d..9482a5e 100644 --- a/pyanaconda/flags.py +++ b/pyanaconda/flags.py @@ -29,7 +29,7 @@ log = logging.getLogger("anaconda") # A lot of effort, but it only allows a limited set of flags to be referenced class Flags(object): def __setattr__(self, attr, val): - # pylint: disable-msg=E1101 + # pylint: disable=E1101 if attr not in self.__dict__ and not self._in_init: raise AttributeError(attr) else: diff --git a/pyanaconda/network.py b/pyanaconda/network.py index 99bc873..3afc17b 100644 --- a/pyanaconda/network.py +++ b/pyanaconda/network.py @@ -706,7 +706,7 @@ def ifcfg_to_ksdata(ifcfg, devname): kwargs["device"] = ifcfg.get("PHYSDEV") kwargs["vlanid"] = ifcfg.get("VLAN_ID")
- # pylint: disable-msg=E1101 + # pylint: disable=E1101 nd = handler.NetworkData(**kwargs)
# teaming @@ -724,7 +724,7 @@ def ifcfg_to_ksdata(ifcfg, devname): def hostname_ksdata(hostname): from pyanaconda.kickstart import AnacondaKSHandler handler = AnacondaKSHandler() - # pylint: disable-msg=E1101 + # pylint: disable=E1101 return handler.NetworkData(hostname=hostname, bootProto="")
def find_ifcfg_file_of_device(devname, root_path=""): diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py index 8157de0..c85bbd1 100644 --- a/pyanaconda/packaging/__init__.py +++ b/pyanaconda/packaging/__init__.py @@ -613,7 +613,7 @@ class Payload(object): self._copyDriverDiskFiles()
# Inherit abstract methods from Payload -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class ImagePayload(Payload): """ An ImagePayload installs an OS image to the target system. """
@@ -624,7 +624,7 @@ class ImagePayload(Payload): Payload.__init__(self, data)
# Inherit abstract methods from ImagePayload -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class ArchivePayload(ImagePayload): """ An ArchivePayload unpacks source archives onto the target system. """
diff --git a/pyanaconda/packaging/tarpayload.py b/pyanaconda/packaging/tarpayload.py index ce601d5..3c9ec65 100644 --- a/pyanaconda/packaging/tarpayload.py +++ b/pyanaconda/packaging/tarpayload.py @@ -40,7 +40,7 @@ from pyanaconda.constants import ROOT_PATH from pyanaconda.packaging import ArchivePayload, PayloadError
# TarPayload is not yet fully implemented -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class TarPayload(ArchivePayload): """ A TarPayload unpacks a single tar archive onto the target system. """ def __init__(self, data): diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py index b5007cc..b864f12 100644 --- a/pyanaconda/packaging/yumpayload.py +++ b/pyanaconda/packaging/yumpayload.py @@ -1490,7 +1490,7 @@ reposdir=%s # all yumvars and writing out the expanded pairs to the conf yb = yum.YumBase() yum_conf_path = "/etc/yum.conf" - # pylint: disable-msg=W9910 + # pylint: disable=W9910 yb.preconf.fn = ROOT_PATH + yum_conf_path yb.conf.multilib_policy = "all"
diff --git a/pyanaconda/sitecustomize.py b/pyanaconda/sitecustomize.py index f2bcd10..c88ef6a 100644 --- a/pyanaconda/sitecustomize.py +++ b/pyanaconda/sitecustomize.py @@ -19,5 +19,5 @@ #
import sys -# pylint: disable-msg=E1101 +# pylint: disable=E1101 sys.setdefaultencoding('utf-8') diff --git a/pyanaconda/threads.py b/pyanaconda/threads.py index 71e3c51..079de07 100644 --- a/pyanaconda/threads.py +++ b/pyanaconda/threads.py @@ -225,7 +225,7 @@ class AnacondaThread(threading.Thread): log.info("Running Thread: %s (%s)", self.name, self.ident) try: threading.Thread.run(self, *args, **kwargs) - # pylint: disable-msg=W0702 + # pylint: disable=W0702 except: threadMgr.set_error(self.name, *sys.exc_info()) if self._fatal: diff --git a/pyanaconda/ui/common.py b/pyanaconda/ui/common.py index 96ac3c8..ddd5016 100644 --- a/pyanaconda/ui/common.py +++ b/pyanaconda/ui/common.py @@ -351,7 +351,7 @@ class Spoke(UIObject): log.debug("Left spoke: %s", self.__class__.__name__)
# Inherit abstract methods from Spoke -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class NormalSpoke(Spoke): """A NormalSpoke is a Spoke subclass that is displayed when the user selects something on a Hub. This is what most Spokes in anaconda will @@ -402,7 +402,7 @@ class NormalSpoke(Spoke): return True
# Inherit abstract methods from NormalSpoke -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class StandaloneSpoke(NormalSpoke): """A StandaloneSpoke is a Spoke subclass that is displayed apart from any Hub. It is suitable to be used as a Welcome screen. diff --git a/pyanaconda/ui/gui/__init__.py b/pyanaconda/ui/gui/__init__.py index a643660..b99d970 100644 --- a/pyanaconda/ui/gui/__init__.py +++ b/pyanaconda/ui/gui/__init__.py @@ -220,7 +220,7 @@ class ErrorDialog(GUIObject): mainWidgetName = "errorDialog" uiFile = "main.glade"
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def refresh(self, msg): buf = self.builder.get_object("errorTextBuffer") buf.set_text(msg, -1) diff --git a/pyanaconda/ui/gui/spokes/__init__.py b/pyanaconda/ui/gui/spokes/__init__.py index 0cd44b3..f3fc74f 100644 --- a/pyanaconda/ui/gui/spokes/__init__.py +++ b/pyanaconda/ui/gui/spokes/__init__.py @@ -62,7 +62,7 @@ class Spoke(GUIObject): pass
# Inherit abstract methods from Spoke and common.StandaloneSpoke -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class StandaloneSpoke(Spoke, common.StandaloneSpoke): def __init__(self, data, storage, payload, instclass): Spoke.__init__(self, data) @@ -79,7 +79,7 @@ class StandaloneSpoke(Spoke, common.StandaloneSpoke): self.window.connect("quit-clicked", lambda *args: cb())
# Inherit abstract methods from common.NormalSpoke -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class NormalSpoke(Spoke, common.NormalSpoke): def __init__(self, data, storage, payload, instclass): if self.__class__ is NormalSpoke: diff --git a/pyanaconda/ui/gui/spokes/custom.py b/pyanaconda/ui/gui/spokes/custom.py index e99fd2a..5161039 100644 --- a/pyanaconda/ui/gui/spokes/custom.py +++ b/pyanaconda/ui/gui/spokes/custom.py @@ -361,7 +361,7 @@ class ConfirmDeleteDialog(GUIObject): def on_delete_confirm_clicked(self, button, *args): self.window.destroy()
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def refresh(self, mountpoint, device, rootName, subvols=False): GUIObject.refresh(self) label = self.builder.get_object("confirmLabel") diff --git a/pyanaconda/ui/gui/spokes/lib/accordion.py b/pyanaconda/ui/gui/spokes/lib/accordion.py index 571aa2d..c1ec679 100644 --- a/pyanaconda/ui/gui/spokes/lib/accordion.py +++ b/pyanaconda/ui/gui/spokes/lib/accordion.py @@ -235,7 +235,7 @@ class Page(Gtk.Box): class UnknownPage(Page): def __init__(self, title): # For this type of page, there's only one place to store members. - # pylint: disable-msg=W0231 + # pylint: disable=W0231 Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL, spacing=6) self.members = [] self.pageTitle = title @@ -260,7 +260,7 @@ class UnknownPage(Page): # is created, it will be removed and replaced with a Page for it. class CreateNewPage(Page): def __init__(self, title, createClickedCB, autopartTypeChangedCB, partitionsToReuse=True): - # pylint: disable-msg=W0231 + # pylint: disable=W0231 Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL, spacing=6) self.members = [] self.pageTitle = title diff --git a/pyanaconda/ui/gui/spokes/lib/cart.py b/pyanaconda/ui/gui/spokes/lib/cart.py index 7c68367..0cc7652 100644 --- a/pyanaconda/ui/gui/spokes/lib/cart.py +++ b/pyanaconda/ui/gui/spokes/lib/cart.py @@ -52,7 +52,7 @@ class SelectedDisksDialog(GUIObject): self._set_button = self.builder.get_object("set_as_boot_button") self._remove_button = self.builder.get_object("remove_button")
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def initialize(self, disks, free, showRemove=True, setBoot=True): self._previousID = None
@@ -97,7 +97,7 @@ class SelectedDisksDialog(GUIObject): row[IS_BOOT_COL] = True break
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def refresh(self, disks, free, showRemove=True, setBoot=True): super(SelectedDisksDialog, self).refresh()
@@ -130,7 +130,7 @@ class SelectedDisksDialog(GUIObject): size = str(Size(bytes=long(size))).upper() free = str(Size(bytes=long(free))).upper()
- # pylint: disable-msg=W9922 + # pylint: disable=W9922 text = P_("<b>%(count)d disk; %(size)s capacity; %(free)s free space</b> " "(unpartitioned and in filesystems)", "<b>%(count)d disks; %(size)s capacity; %(free)s free space</b> " diff --git a/pyanaconda/ui/gui/spokes/lib/detailederror.py b/pyanaconda/ui/gui/spokes/lib/detailederror.py index c59511f..8912227 100644 --- a/pyanaconda/ui/gui/spokes/lib/detailederror.py +++ b/pyanaconda/ui/gui/spokes/lib/detailederror.py @@ -67,7 +67,7 @@ class DetailedErrorDialog(GUIObject): if label: self.builder.get_object("detailedLabel").set_text(label)
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def refresh(self, msg): buf = self.builder.get_object("detailedTextBuffer") buf.set_text(msg, -1) diff --git a/pyanaconda/ui/gui/spokes/lib/resize.py b/pyanaconda/ui/gui/spokes/lib/resize.py index 4557523..d612ef8 100644 --- a/pyanaconda/ui/gui/spokes/lib/resize.py +++ b/pyanaconda/ui/gui/spokes/lib/resize.py @@ -312,7 +312,7 @@ class ResizeDialog(GUIObject): def _update_reclaim_button(self, got): self._resizeButton.set_sensitive(got+self._initialFreeSpace >= self.payload.spaceRequired)
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def refresh(self, disks): super(ResizeDialog, self).refresh()
diff --git a/pyanaconda/ui/gui/spokes/lib/summary.py b/pyanaconda/ui/gui/spokes/lib/summary.py index 2b3eb86..33cb85f 100644 --- a/pyanaconda/ui/gui/spokes/lib/summary.py +++ b/pyanaconda/ui/gui/spokes/lib/summary.py @@ -35,7 +35,7 @@ class ActionSummaryDialog(GUIObject): GUIObject.__init__(self, data) self._store = self.builder.get_object("actionStore")
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def initialize(self, actions): for (i, action) in enumerate(actions, start=1): mountpoint = "" @@ -55,7 +55,7 @@ class ActionSummaryDialog(GUIObject): action.device.name, mountpoint])
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def refresh(self, actions): GUIObject.refresh(self)
diff --git a/pyanaconda/ui/gui/spokes/network.py b/pyanaconda/ui/gui/spokes/network.py index b2b77c7..64b6a1a 100644 --- a/pyanaconda/ui/gui/spokes/network.py +++ b/pyanaconda/ui/gui/spokes/network.py @@ -450,14 +450,14 @@ class NetworkControlBox(GObject.GObject):
# Signal handlers. def on_nm_state_changed(self, *args): - # pylint: disable-msg=E1101 + # pylint: disable=E1101 self.emit("nm-state-changed")
def on_device_selection_changed(self, *args): self.refresh_ui()
def on_device_state_changed(self, device, new_state, *args): - # pylint: disable-msg=E1101 + # pylint: disable=E1101 self.emit("device-state-changed", device.get_iface(), new_state, *args) if new_state == NetworkManager.DeviceState.SECONDARIES: return @@ -696,7 +696,7 @@ class NetworkControlBox(GObject.GObject): and not dev_cfg.device.get_carrier()): # TRANSLATORS: ethernet cable is unplugged unplugged = ', <i>%s</i>' % escape_markup(_("unplugged")) - # pylint: disable-msg=W9922 + # pylint: disable=W9922 title = '<span size="large">%s (%s%s)</span>' % \ (escape_markup(_(self.device_type_name.get(dev_cfg.device_type, ""))), escape_markup(dev_cfg.get_iface()), @@ -1308,10 +1308,10 @@ class NetworkSpoke(FirstbootSpokeMixIn, NormalSpoke): NormalSpoke.__init__(self, *args, **kwargs) self.network_control_box = NetworkControlBox(self.builder, spoke=self) self.network_control_box.hostname = self.data.network.hostname - # pylint: disable-msg=E1101 + # pylint: disable=E1101 self.network_control_box.connect("nm-state-changed", self.on_nm_state_changed) - # pylint: disable-msg=E1101 + # pylint: disable=E1101 self.network_control_box.connect("device-state-changed", self.on_device_state_changed)
@@ -1405,7 +1405,7 @@ class NetworkStandaloneSpoke(StandaloneSpoke): parent = self.builder.get_object("AnacondaStandaloneWindow-action_area5") parent.add(self.network_control_box.vbox)
- # pylint: disable-msg=E1101 + # pylint: disable=E1101 self.network_control_box.connect("nm-state-changed", self.on_nm_state_changed)
diff --git a/pyanaconda/ui/gui/spokes/software.py b/pyanaconda/ui/gui/spokes/software.py index bfae3ae..1420252 100644 --- a/pyanaconda/ui/gui/spokes/software.py +++ b/pyanaconda/ui/gui/spokes/software.py @@ -217,9 +217,9 @@ class SoftwareSelectionSpoke(NormalSpoke): # involves side effects like network access. We need to reference # them here, outside of the main thread, to not block the UI. try: - # pylint: disable-msg=W0104 + # pylint: disable=W0104 self.payload.environments - # pylint: disable-msg=W0104 + # pylint: disable=W0104 self.payload.groups
# Parse the environments and groups into the form we want diff --git a/pyanaconda/ui/gui/spokes/source.py b/pyanaconda/ui/gui/spokes/source.py index 3b724dd..97d9c84 100644 --- a/pyanaconda/ui/gui/spokes/source.py +++ b/pyanaconda/ui/gui/spokes/source.py @@ -235,7 +235,7 @@ class IsoChooser(GUIObject): GUIObject.__init__(self, data) self._chooser = self.builder.get_object("isoChooser")
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def refresh(self, currentFile=""): GUIObject.refresh(self) self._chooser.connect("current-folder-changed", self.on_folder_changed) @@ -469,9 +469,9 @@ class SourceSpoke(NormalSpoke): # involves side effects like network access) so go ahead and grab # them now. These are properties with side-effects, just accessing # them will trigger yum. - # pylint: disable-msg=W0104 + # pylint: disable=W0104 self.payload.environments - # pylint: disable-msg=W0104 + # pylint: disable=W0104 self.payload.groups except MetadataError: hubQ.send_message("SoftwareSelectionSpoke", diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py index 3b62163..bd57b71 100644 --- a/pyanaconda/ui/gui/spokes/storage.py +++ b/pyanaconda/ui/gui/spokes/storage.py @@ -155,7 +155,7 @@ class NeedSpaceDialog(InstallOptionsDialogBase): self.disk_free_label.set_text(str(disk_free)) self.fs_free_label.set_text(str(fs_free))
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def refresh(self, required_space, auto_swap, disk_free, fs_free): sw_text = self._get_sw_needs_text(required_space, auto_swap) label_text = _("%s The disks you've selected have the following " @@ -188,7 +188,7 @@ class NoSpaceDialog(InstallOptionsDialogBase): self.disk_free_label.set_text(str(disk_free)) self.fs_free_label.set_text(str(fs_free))
- # pylint: disable-msg=W0221 + # pylint: disable=W0221 def refresh(self, required_space, auto_swap, disk_free, fs_free): sw_text = self._get_sw_needs_text(required_space, auto_swap) label_text = (_("%(sw_text)s You don't have enough space available to install " diff --git a/pyanaconda/ui/helpers.py b/pyanaconda/ui/helpers.py index 898a0c5..e0ec1f5 100644 --- a/pyanaconda/ui/helpers.py +++ b/pyanaconda/ui/helpers.py @@ -361,7 +361,7 @@ class InputCheckHandler(object): return self._check_list.__iter__()
# Inherit abstract methods from InputCheckHandler -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class GUIInputCheckHandler(InputCheckHandler): """Provide InputCheckHandler functionality for Gtk input screens.
diff --git a/pyanaconda/ui/tui/simpleline/__init__.py b/pyanaconda/ui/tui/simpleline/__init__.py index 2c715e2..50ae474 100644 --- a/pyanaconda/ui/tui/simpleline/__init__.py +++ b/pyanaconda/ui/tui/simpleline/__init__.py @@ -19,7 +19,7 @@ # Red Hat Author(s): Martin Sivak msivak@redhat.com #
-# pylint: disable-msg=W0401 +# pylint: disable=W0401 from pyanaconda.ui.tui.simpleline.base import * -# pylint: disable-msg=W0401 +# pylint: disable=W0401 from pyanaconda.ui.tui.simpleline.widgets import * diff --git a/pyanaconda/ui/tui/spokes/__init__.py b/pyanaconda/ui/tui/spokes/__init__.py index e2c4838..57984ba 100644 --- a/pyanaconda/ui/tui/spokes/__init__.py +++ b/pyanaconda/ui/tui/spokes/__init__.py @@ -33,7 +33,7 @@ __all__ = ["TUISpoke", "EditTUISpoke", "EditTUIDialog", "EditTUISpokeEntry", "collect_categories"]
# Inherit abstract methods from Spoke -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class TUISpoke(TUIObject, tui.Widget, Spoke): """Base TUI Spoke class implementing the pyanaconda.ui.common.Spoke API. It also acts as a Widget so we can easily add it to Hub, where is shows @@ -95,7 +95,7 @@ class NormalTUISpoke(TUISpoke, NormalSpoke): EditTUISpokeEntry = namedtuple("EditTUISpokeEntry", ["title", "attribute", "aux", "visible"])
# Inherit abstract methods from NormalTUISpoke -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class EditTUIDialog(NormalTUISpoke): """Spoke/dialog used to read new value of textual or password data"""
@@ -179,7 +179,7 @@ class OneShotEditTUIDialog(EditTUIDialog): return ret
# Inherit abstract methods from NormalTUISpoke -# pylint: disable-msg=W0223 +# pylint: disable=W0223 class EditTUISpoke(NormalTUISpoke): """Spoke with declarative semantics, it contains a list of titles, attribute names and regexps diff --git a/pyanaconda/ui/tui/spokes/source.py b/pyanaconda/ui/tui/spokes/source.py index 7e2464e..45381df 100644 --- a/pyanaconda/ui/tui/spokes/source.py +++ b/pyanaconda/ui/tui/spokes/source.py @@ -226,9 +226,9 @@ class SourceSpoke(EditTUISpoke, SourceSwitchHandler): self.errors.append(_("Error downloading package metadata")) else: try: - # pylint: disable-msg=W0104 + # pylint: disable=W0104 self.payload.environments - # pylint: disable-msg=W0104 + # pylint: disable=W0104 self.payload.groups except MetadataError: self.errors.append(_("No installation source available")) diff --git a/scripts/anaconda-yum b/scripts/anaconda-yum index 91161af..7c7c1da 100755 --- a/scripts/anaconda-yum +++ b/scripts/anaconda-yum @@ -1,5 +1,5 @@ #!/usr/bin/python -# pylint: disable-msg=W9910 +# pylint: disable=W9910 # # Copyright (C) 2013 Red Hat, Inc. # @@ -409,6 +409,6 @@ if __name__ == "__main__":
run_yum_transaction(args.release, args.arch, args.config, args.installroot, args.tsfile, args.rpmlog, args.test, args.debug, args.macro) - # pylint: disable-msg=W0703 + # pylint: disable=W0703 except Exception as e: print("ERROR: unexpected error: %s" % e) diff --git a/tests/glade/markup/check_markup.py b/tests/glade/markup/check_markup.py index 0f06694..3406715 100755 --- a/tests/glade/markup/check_markup.py +++ b/tests/glade/markup/check_markup.py @@ -83,7 +83,7 @@ def check_glade_file(glade_file_path, po_map=None): # Wrap the label text in <markup> tags and parse the tree for label_text in label_texts: try: - # pylint: disable-msg=W9922 + # pylint: disable=W9922 pango_tree = etree.fromstring("<markup>%s</markup>" % label_text) _validate_pango_markup(pango_tree) except etree.XMLSyntaxError: diff --git a/tests/pyanaconda_tests/iutil_test.py b/tests/pyanaconda_tests/iutil_test.py index ea1cd57..c4e930a 100644 --- a/tests/pyanaconda_tests/iutil_test.py +++ b/tests/pyanaconda_tests/iutil_test.py @@ -214,7 +214,7 @@ class RunProgramTests(unittest.TestCase): def vt_activate_test(self): """Test vtActivate."""
- # pylint: disable-msg=E1101 + # pylint: disable=E1101
def raise_os_error(*args, **kwargs): raise OSError @@ -228,7 +228,7 @@ class RunProgramTests(unittest.TestCase): def get_deep_attr_test(self): """Test getdeepattr."""
- # pylint: disable-msg=W0201 + # pylint: disable=W0201
class O(object): pass @@ -253,8 +253,8 @@ class RunProgramTests(unittest.TestCase): def set_deep_attr_test(self): """Test setdeepattr."""
- # pylint: disable-msg=W0201 - # pylint: disable-msg=E1101 + # pylint: disable=W0201 + # pylint: disable=E1101
class O(object): pass @@ -326,7 +326,7 @@ class RunProgramTests(unittest.TestCase): def cmp_obj_attrs_test(self): """Test cmp_obj_attrs."""
- # pylint: disable-msg=W0201 + # pylint: disable=W0201
class O(object): pass diff --git a/tests/pyanaconda_tests/timezone_test.py b/tests/pyanaconda_tests/timezone_test.py index 62ff2cd..25475ba 100644 --- a/tests/pyanaconda_tests/timezone_test.py +++ b/tests/pyanaconda_tests/timezone_test.py @@ -56,9 +56,9 @@ class s390HWclock(unittest.TestCase): self.arch_mock.isS390.return_value = True self.iutil_mock = mock.Mock()
- # pylint: disable-msg=E1101 + # pylint: disable=E1101 timezone.save_hw_clock.func_globals["arch"] = self.arch_mock - # pylint: disable-msg=E1101 + # pylint: disable=E1101 timezone.save_hw_clock.func_globals["iutil"] = self.iutil_mock
def s390_save_hw_clock_test(self): diff --git a/tests/pylint/markup.py b/tests/pylint/markup.py index e307202..c0e4489 100644 --- a/tests/pylint/markup.py +++ b/tests/pylint/markup.py @@ -86,7 +86,7 @@ class MarkupChecker(BaseChecker): def _validate_pango_markup_string(self, node, string, lang=None): try: # QUIS CUSTODIET IPSOS CUSTODES - # pylint: disable-msg=W9922 + # pylint: disable=W9922 tree = ET.fromstring("<markup>%s</markup>" % string) except ET.ParseError: if lang: diff --git a/tests/storage/cases/__init__.py b/tests/storage/cases/__init__.py index fae1f9e..be74078 100644 --- a/tests/storage/cases/__init__.py +++ b/tests/storage/cases/__init__.py @@ -25,7 +25,7 @@ import re execfile("/usr/share/doc/python-blivet/examples/common.py")
# Set up logging before blivet or anaconda are imported. -# pylint: disable-msg=E0602 +# pylint: disable=E0602 set_up_logging() blivet_log = logging.getLogger("blivet") blivet_log.info(sys.argv[0]) @@ -163,7 +163,7 @@ class TestCaseComponent(object): method, but they should call the base method as well to make sure the images get destroyed. """ - # pylint: disable-msg=E0602 + # pylint: disable=E0602 tear_down_disk_images(self._blivet)
for d in self._disks.values():
pylint-1.1.0 appears to have 'better' introspection, and generates more E1101 errors on various Gtk and NM items. Filter them out.
These changes do not cause any problems with pylint-1.0.0 --- tests/pylint/pylint-false-positives | 73 +++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+)
diff --git a/tests/pylint/pylint-false-positives b/tests/pylint/pylint-false-positives index e06680a..7a11f4b 100644 --- a/tests/pylint/pylint-false-positives +++ b/tests/pylint/pylint-false-positives @@ -7,5 +7,78 @@ ^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_property' member$ ^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_padding' member$ ^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'show_all' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'show' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'get_object' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_translation_domain' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'add_objects_from_file' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'add_from_file' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'add_window' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_decorated' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_default_response' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'run' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'destroy' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'load_from_path' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'load_from_data' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'attach' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_label_widget' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_markup' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_halign' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_margin_left' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_margin_right' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_margin_bottom' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'props' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_row_spacing' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_column_spacing' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'get_children' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_has_tooltip' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'append_text' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_active' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_hexpand' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'message' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'get_from_server' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_variants' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'activate' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_layouts' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_options' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_sort_column_id' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_expand' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_use_underline' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_mnemonic_widget' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_mode' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_value' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_min_value' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_max_value' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'add_offset_value' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_chosen' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_title' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'get_default_root_window' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'pixbuf_get_from_window' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'init_check' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'main_level' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'main' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'source_remove' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'spawn_close_pid' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'spawn_async_with_pipes' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'dbus_address_get_for_bus_sync' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'x11_get_default_xdisplay' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'bus_get_sync' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'G_MAXUINT' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'get_locale_direction' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'parse_markup' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'init' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'bind' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'get_default' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'add_provider_for_screen' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new_with_default_fallbacks' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new_for_address_sync' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new_for_bus_sync' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new_from_file' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new_for_xml' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'get_instance' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'dialog_new' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'dialog_set_layout' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'set_default_direction' member$ ^E0611:[ 0-9]*,[0-9]*: No name '_isys' in module 'pyanaconda'$ ^E0611:[ 0-9]*,[0-9]*:.*: No name '_isys' in module 'pyanaconda'$ +^E0712:[ 0-9]*,[0-9]*:.*: Catching an exception which doesn't inherit from BaseException: GError$
On 02/28/2014 02:13 PM, Brian C. Lane wrote:
pylint-1.1.0 appears to have 'better' introspection, and generates more E1101 errors on various Gtk and NM items. Filter them out.
These changes do not cause any problems with pylint-1.0.0
I'd like three more in this list related to pylint trying to run a lot more of the gobject-introspection based code. I'm getting a bunch of "Unable to init server" messages when running on a VM without X, so that means Jenkins might, too, and I'm getting a two-line hash table assert message in the network spoke while pylint tries to make sense of NMClient.ActiveConnection.
^Unable to init server$ gi/module.py:[0-9]*: Warning: g_hash_table_insert_internal: assertion 'hash_table != NULL' failed$ ^ g_type = info.get_g_type()$
(two spaces in the start of the g_type line). I'd also like to add GI_TYPELIB_PATH and LD_LIBRARY_PATH to testenv.sh so it can find the locally-built copy of AnacondaWidgets, but that can be a separate patch.
These patches look fine, and with the extra false positives and a patched astroid the pylint errors with 1.1 are down to the ones in accordion that are probably worth a closer look.
tests/pylint/pylint-false-positives | 73 +++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+)
diff --git a/tests/pylint/pylint-false-positives b/tests/pylint/pylint-false-positives index e06680a..7a11f4b 100644 --- a/tests/pylint/pylint-false-positives +++ b/tests/pylint/pylint-false-positives @@ -7,5 +7,78 @@ ^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_property' member$ ^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_padding' member$ ^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'show_all' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'show' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'get_object' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_translation_domain' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'add_objects_from_file' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'add_from_file' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'add_window' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_decorated' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_default_response' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'run' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'destroy' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'load_from_path' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'load_from_data' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'attach' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_label_widget' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_markup' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_halign' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_margin_left' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_margin_right' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_margin_bottom' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'props' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_row_spacing' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_column_spacing' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'get_children' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_has_tooltip' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'append_text' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_active' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_hexpand' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'message' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'get_from_server' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_variants' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'activate' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_layouts' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_options' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_sort_column_id' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_expand' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_use_underline' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_mnemonic_widget' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_mode' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_value' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_min_value' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_max_value' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'add_offset_value' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_chosen' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Instance of '.*' has no 'set_title' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'get_default_root_window' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'pixbuf_get_from_window' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'init_check' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'main_level' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'main' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'source_remove' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'spawn_close_pid' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'spawn_async_with_pipes' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'dbus_address_get_for_bus_sync' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'x11_get_default_xdisplay' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'bus_get_sync' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'G_MAXUINT' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'get_locale_direction' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'parse_markup' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'init' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Module '.*' has no 'bind' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'get_default' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'add_provider_for_screen' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new_with_default_fallbacks' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new_for_address_sync' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new_for_bus_sync' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new_from_file' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new_for_xml' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'new' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'get_instance' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'dialog_new' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'dialog_set_layout' member$ +^E1101:[ 0-9]*,[0-9]*:.*: Class '.*' has no 'set_default_direction' member$ ^E0611:[ 0-9]*,[0-9]*: No name '_isys' in module 'pyanaconda'$ ^E0611:[ 0-9]*,[0-9]*:.*: No name '_isys' in module 'pyanaconda'$ +^E0712:[ 0-9]*,[0-9]*:.*: Catching an exception which doesn't inherit from BaseException: GError$
On 02/28/2014 02:13 PM, Brian C. Lane wrote:
These changes result in an almost clean pylint 1.1.0 run on master -- there is a bug where it is complaining about an illegal symbol that is picked up by NetworkManager introspection, dshea is looking into that. These all also work with pylint 1.0.0
Looking into it resulted in deciding that it's an issue in astroid that we can't work around. https://bitbucket.org/logilab/astroid/issue/19/syntaxerror-when-examining-gi...
anaconda-patches@lists.fedorahosted.org