[elbe-devel] [PATCH] pylint: Clean up some messages with revised config

Bastian Germann bage at linutronix.de
Wed May 17 17:47:54 CEST 2023


Run pylint in version 2.16.2 and fix the configuration by removing
non-existing message classes and filtering often violated ones.
Fix some obviously smelly code indicated by pylint.

Signed-off-by: Bastian Germann <bage at linutronix.de>
---
 .pylintrc                               | 44 ++-----------------------
 docs/conf.py                            | 14 ++++----
 elbe                                    |  6 ++--
 elbepack/aptpkgutils.py                 | 16 ++++-----
 elbepack/aptprogress.py                 |  3 +-
 elbepack/cdroms.py                      |  3 --
 elbepack/commands/check-build.py        | 17 ++++------
 elbepack/commands/control.py            |  6 ++--
 elbepack/commands/pkgdiff.py            |  8 ++---
 elbepack/commands/prjrepo.py            |  6 ++--
 elbepack/commands/test.py               |  2 +-
 elbepack/daemons/soap/authentication.py |  2 --
 elbepack/daemons/soap/esoap.py          | 10 ------
 elbepack/daemons/soap/faults.py         | 16 ++++-----
 elbepack/db.py                          | 18 +++-------
 elbepack/debpkg.py                      | 15 ++++-----
 elbepack/directories.py                 |  4 +--
 elbepack/dump.py                        |  1 -
 elbepack/efilesystem.py                 | 15 ++++-----
 elbepack/elbeproject.py                 |  6 +---
 elbepack/elbexml.py                     |  4 +--
 elbepack/filesystem.py                  |  2 +-
 elbepack/finetuning.py                  |  8 ++---
 elbepack/hdimg.py                       | 10 +-----
 elbepack/initvmaction.py                | 11 +++----
 elbepack/junit.py                       |  4 +--
 elbepack/log.py                         |  6 ++--
 elbepack/pkgarchive.py                  |  2 --
 elbepack/repomanager.py                 |  9 -----
 elbepack/rfs.py                         |  6 ++--
 elbepack/rpcaptcache.py                 | 11 +++----
 elbepack/shellhelper.py                 |  2 +-
 elbepack/soapclient.py                  |  3 --
 elbepack/tests/test_doctest.py          |  4 +--
 elbepack/updated.py                     |  1 -
 elbepack/updated_monitors.py            |  5 ++-
 elbepack/updatepkg.py                   |  1 -
 elbepack/validate.py                    |  2 +-
 elbepack/virtapt.py                     |  7 ++--
 test/updated.py                         |  2 +-
 40 files changed, 99 insertions(+), 213 deletions(-)

diff --git a/.pylintrc b/.pylintrc
index c301422900..8f0870cf35 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -13,20 +13,9 @@
 # pygtk.require().
 #init-hook=
 
-# Profiled execution.
-profile=no
-
-# Add files or directories to the blacklist. They should be base names, not
-# paths.
-ignore=CVS
-
 # Pickle collected data for later comparisons.
 persistent=yes
 
-# List of plugins (as comma separated values of python modules names) to load,
-# usually to register additional checkers.
-load-plugins=
-
 extension-pkg-whitelist=apt_pkg,gpg.constants,lxml,_ped
 
 
@@ -41,22 +30,14 @@ extension-pkg-whitelist=apt_pkg,gpg.constants,lxml,_ped
 # can either give multiple identifier separated by comma (,) or put this option
 # multiple time (only on the command line, not in the configuration file where
 # it should appear only once).
-disable=bad-whitespace,missing-docstring,bad-continuation,invalid-name,line-too-long,too-few-public-methods
+disable=missing-docstring,invalid-name,line-too-long,too-few-public-methods,no-member,raise-missing-from,too-many-arguments
 
 
 [REPORTS]
 
 # Set the output format. Available formats are text, parseable, colorized, msvs
 # (visual studio) and html
-output-format=text
-
-# Include message's id in output
-include-ids=no
-
-# Put messages in a separate file for each module / package specified on the
-# command line instead of printing them on stdout. Reports (if any) will be
-# written in a file name "pylint_global.[txt|html]".
-files-output=no
+output-format=colorized
 
 # Tells whether to display a full report or only the messages
 reports=yes
@@ -68,10 +49,6 @@ reports=yes
 # (RP0004).
 evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
 
-# Add a comment according to your evaluation note. This is used by the global
-# evaluation report (RP0004).
-comment=no
-
 
 [VARIABLES]
 
@@ -109,10 +86,6 @@ ignore-mixin-members=yes
 # (useful for classes with attributes dynamically set).
 ignored-classes=SQLObject
 
-# When zope mode is activated, add a predefined set of Zope acquired attributes
-# to generated-members.
-zope=no
-
 # List of members which are set dynamically and missed by pylint inference
 # system, and so shouldn't trigger E0201 when accessed. Python regular
 # expressions are accepted.
@@ -121,9 +94,6 @@ generated-members=REQUEST,acl_users,aq_parent,sigsum.*,sig\.mode\.NORMAL
 
 [BASIC]
 
-# List of builtins function names that should not be used, separated by a comma
-bad-functions=map,filter,apply,input
-
 # Regular expression which should only match correct module names
 module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
 
@@ -197,9 +167,6 @@ max-locals=15
 # Maximum number of return / yield for function / method body
 max-returns=6
 
-# Maximum number of branch for function / method body
-max-branchs=12
-
 # Maximum number of statements in function / method body
 max-statements=50
 
@@ -241,10 +208,3 @@ ext-import-graph=
 # Create a graph of internal dependencies in the given file (report RP0402 must
 # not be disabled)
 int-import-graph=
-
-
-[EXCEPTIONS]
-
-# Exceptions that will emit a warning when being caught. Defaults to
-# "Exception"
-overgeneral-exceptions=Exception
diff --git a/docs/conf.py b/docs/conf.py
index 2cd19607f1..3f3df9c4e0 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -47,9 +47,9 @@ source_suffix = '.rst'
 master_doc = 'index'
 
 # General information about the project.
-project = u'ELBE'
-copyright = u'2017, Linutronix GmbH'  #pylint: disable=redefined-builtin
-author = u'Torben Hohn, Manuel Traut'
+project = 'ELBE'
+copyright = '2017, Linutronix GmbH'  #pylint: disable=redefined-builtin
+author = 'Torben Hohn, Manuel Traut'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
@@ -130,8 +130,8 @@ latex_elements = {
 # (source start file, target name, title,
 #  author, documentclass [howto, manual, or own class]).
 latex_documents = [
-    (master_doc, 'ELBE.tex', u'ELBE Documentation',
-     u'Torben Hohn, Manuel Traut', 'manual'),
+    (master_doc, 'ELBE.tex', 'ELBE Documentation',
+     'Torben Hohn, Manuel Traut', 'manual'),
 ]
 
 
@@ -140,7 +140,7 @@ latex_documents = [
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
 man_pages = [
-    (master_doc, 'elbe', u'ELBE Documentation',
+    (master_doc, 'elbe', 'ELBE Documentation',
      [author], 1)
 ]
 
@@ -151,7 +151,7 @@ man_pages = [
 # (source start file, target name, title, author,
 #  dir menu entry, description, category)
 texinfo_documents = [
-    (master_doc, 'ELBE', u'ELBE Documentation',
+    (master_doc, 'ELBE', 'ELBE Documentation',
      author, 'ELBE', 'One line description of project.',
      'Miscellaneous'),
 ]
diff --git a/elbe b/elbe
index eb0cdca94a..5c9a41d8ab 100755
--- a/elbe
+++ b/elbe
@@ -24,11 +24,11 @@ from elbepack.directories import init_directories, get_cmdlist
 
 
 def usage():
-    print("elbe v%s" % elbe_version)
+    print(f"elbe v{elbe_version}")
     print("need a subcommand: e.g. \'elbe initvm\'. \n\
     Available subcommands are: \n")
     for i in get_cmdlist():
-        print("        * %s" % i)
+        print(f"        * {i}")
 
 # First initialise the directories module
 # so that it knows, where the current elbe
@@ -42,7 +42,7 @@ if len(sys.argv) < 2:
     sys.exit(20)
 
 if sys.argv[1] == "--version":
-    print("elbe v%s" % (elbe_version))
+    print(f"elbe v{elbe_version}")
     sys.exit(0)
 
 cmd_list = get_cmdlist()
diff --git a/elbepack/aptpkgutils.py b/elbepack/aptpkgutils.py
index e21f82cab3..4ac3291bbf 100644
--- a/elbepack/aptpkgutils.py
+++ b/elbepack/aptpkgutils.py
@@ -32,9 +32,8 @@ statestring = {
 def apt_pkg_md5(pkg):
     # pylint: disable=protected-access
     hashes = pkg._records.hashes
-    # pylint: disable=consider-using-enumerate
-    for i in range(len(hashes)):
-        h = str(hashes[i])
+    for hash_entry in hashes:
+        h = str(hash_entry)
         if h.startswith("MD5"):
             return h.split(':')[1]
     return ""
@@ -42,9 +41,8 @@ def apt_pkg_md5(pkg):
 def apt_pkg_sha256(pkg):
     # pylint: disable=protected-access
     hashes = pkg._records.hashes
-    # pylint: disable=consider-using-enumerate
-    for i in range(len(hashes)):
-        h = str(hashes[i])
+    for hash_entry in hashes:
+        h = str(hash_entry)
         if h.startswith("SHA256"):
             return h.split(':')[1]
     return ""
@@ -162,8 +160,6 @@ class PackageBase:
                  installed_prio, candidate_prio,
                  state, is_auto_installed, origin, architecture):
 
-        # pylint: disable=too-many-arguments
-
         self.name = name
         self.installed_version = installed_version
         self.candidate_version = candidate_version
@@ -183,8 +179,8 @@ class PackageBase:
                 f"{statestring[self.state]}>")
 
     def __eq__(self, other):
-        vereq = (self.installed_version == other.installed_version)
-        nameq = (self.name == other.name)
+        vereq = self.installed_version == other.installed_version
+        nameq = self.name == other.name
 
         return vereq and nameq
 
diff --git a/elbepack/aptprogress.py b/elbepack/aptprogress.py
index b2311d0e27..2359892bd9 100644
--- a/elbepack/aptprogress.py
+++ b/elbepack/aptprogress.py
@@ -100,8 +100,7 @@ class ElbeAcquireProgress (AcquireProgress):
 
         self.write(line)
 
-    @staticmethod
-    def pulse(_owner):
+    def pulse(self, owner):
         return True
 
 
diff --git a/elbepack/cdroms.py b/elbepack/cdroms.py
index 17045affde..5edbd5e473 100644
--- a/elbepack/cdroms.py
+++ b/elbepack/cdroms.py
@@ -25,7 +25,6 @@ from elbepack.isooptions import get_iso_options
 
 CDROM_SIZE = 640 * 1000 * 1000
 
-# pylint: disable=too-many-arguments
 def add_source_pkg(repo, component, cache, pkg, version, forbid):
     if pkg in forbid:
         return
@@ -45,7 +44,6 @@ def mk_source_cdrom(components, codename,
                     cdrom_size=CDROM_SIZE, xml=None,
                     mirror='http://ftp.de.debian.org/debian'):
 
-    # pylint: disable=too-many-arguments
     # pylint: disable=too-many-locals
     # pylint: disable=too-many-branches
 
@@ -122,7 +120,6 @@ def mk_source_cdrom(components, codename,
             options=options)) for component, repo in repos.items()]
 
 def mk_binary_cdrom(rfs, arch, codename, init_codename, xml, target):
-    # pylint: disable=too-many-arguments
     # pylint: disable=too-many-locals
     # pylint: disable=too-many-branches
     # pylint: disable=too-many-statements
diff --git a/elbepack/commands/check-build.py b/elbepack/commands/check-build.py
index e95ced262b..91af2f1d4f 100644
--- a/elbepack/commands/check-build.py
+++ b/elbepack/commands/check-build.py
@@ -8,6 +8,7 @@ import logging
 import optparse
 import os
 import shutil
+import sys
 import tempfile
 import traceback
 
@@ -68,7 +69,7 @@ class CheckException(Exception):
 
 class CheckBase:
 
-    tests = dict()
+    tests = {}
 
     def __init__(self):
         self.ret = 0
@@ -91,14 +92,8 @@ class CheckBase:
             return test
         return _register
 
-    # pylint: disable=no-self-use
     def run(self):
         raise Exception("Check run method not implemented")
-        # pylint: disable=unreachable
-        return 0
-
-    def fail(self, reason):
-        raise CheckException(reason)
 
 @CheckBase.register("cdrom")
 class CheckCdroms(CheckBase):
@@ -109,7 +104,7 @@ class CheckCdroms(CheckBase):
         try:
             do(f'7z x -o"{tgt}" "{cdrom}"')
         except CommandError as E:
-            self.fail(f"Failed to extract cdrom {cdrom}:\n{E}")
+            raise CheckException(f"Failed to extract cdrom {cdrom}:\n{E}")
 
     def dpkg_get_infos(self, path, fmt):
         """Get dpkg infos for .deb and .dsc file formats"""
@@ -120,7 +115,7 @@ class CheckCdroms(CheckBase):
                 cmd = f'grep -E "^({"|".join(fmt)}):" {path}'
             return get_command_out(cmd).decode("utf-8")
         except CommandError as E:
-            self.fail(
+            raise CheckException(
                 f"Failed to get debian infos ({'|'.join(fmt)}) "
                 f"for {path}:\n{E}")
 
@@ -368,8 +363,8 @@ class CheckCdroms(CheckBase):
                         self.ret = 1
 
         # List all missing binaries
-        for bin_name in binaries:
-            for bin_version in binaries[bin_name]:
+        for bin_name, versions in binaries.items():
+            for bin_version in versions:
                 logging.error("Missing binary %s_%s", bin_name, bin_version)
 
         logging.info("Succesfully validated %d binary packages out of %d",
diff --git a/elbepack/commands/control.py b/elbepack/commands/control.py
index 000e5f5058..d6af9ae5fe 100644
--- a/elbepack/commands/control.py
+++ b/elbepack/commands/control.py
@@ -129,7 +129,7 @@ def run_command(argv):
             debug=opt.debug,
             retries=int(
                 opt.retries))
-    except URLError as e:
+    except URLError:
         print(
             f"Failed to connect to Soap server {opt.host}:{opt.port}\n",
             file=sys.stderr)
@@ -137,7 +137,7 @@ def run_command(argv):
         print("Check, whether the initvm is actually running.", file=sys.stderr)
         print("try 'elbe initvm start'", file=sys.stderr)
         sys.exit(10)
-    except socket.error as e:
+    except socket.error:
         print(
             f"Failed to connect to Soap server {opt.host}:{opt.port}\n",
             file=sys.stderr)
@@ -147,7 +147,7 @@ def run_command(argv):
             file=sys.stderr)
         print("try 'elbe initvm attach'", file=sys.stderr)
         sys.exit(10)
-    except BadStatusLine as e:
+    except BadStatusLine:
         print(
             f"Failed to connect to Soap server {opt.host}:{opt.port}\n",
             file=sys.stderr)
diff --git a/elbepack/commands/pkgdiff.py b/elbepack/commands/pkgdiff.py
index 789c70825a..305649e7a6 100644
--- a/elbepack/commands/pkgdiff.py
+++ b/elbepack/commands/pkgdiff.py
@@ -54,7 +54,7 @@ def run_command(argv):
     gc = apt.Cache()
 
     gen_pkgs = {}
-    # pylint: disable=E1133
+    # pylint: disable=not-an-iterable
     for p in gen_cache.packages:
         if opt.noauto:
             if p.current_ver and not \
@@ -73,7 +73,7 @@ def run_command(argv):
     fc = apt.Cache()
 
     fix_pkgs = {}
-    # pylint: disable=E1133
+    # pylint: disable=not-an-iterable
     for p in fix_cache.packages:
         if opt.noauto:
             if p.current_ver and not \
@@ -89,9 +89,9 @@ def run_command(argv):
             print(f"+<pkg>{p}</pkg>")
 
     for p in gen_pkgs:
-        if p not in fix_pkgs.keys():
+        if p not in fix_pkgs:
             print(f"-<pkg>{p}</pkg>")
 
     for p in fix_pkgs:
-        if p in gen_pkgs.keys() and fix_pkgs[p] != gen_pkgs[p]:
+        if p in gen_pkgs and fix_pkgs[p] != gen_pkgs[p]:
             print(f"{p}: Version mismatch {fix_pkgs[p]} != {gen_pkgs[p]}")
diff --git a/elbepack/commands/prjrepo.py b/elbepack/commands/prjrepo.py
index 2488291145..1e1a260454 100644
--- a/elbepack/commands/prjrepo.py
+++ b/elbepack/commands/prjrepo.py
@@ -74,7 +74,7 @@ def run_command(argv):
             debug=opt.debug,
             retries=int(
                 opt.retries))
-    except URLError as e:
+    except URLError:
         print(
             f"Failed to connect to Soap server {opt.host}:{opt.port}\n",
             file=sys.stderr)
@@ -82,7 +82,7 @@ def run_command(argv):
         print("Check, wether the initvm is actually running.", file=sys.stderr)
         print("try `elbe initvm start`", file=sys.stderr)
         sys.exit(10)
-    except socket.error as e:
+    except socket.error:
         print(
             f"Failed to connect to Soap server {opt.host}:{opt.port}\n",
             file=sys.stderr)
@@ -92,7 +92,7 @@ def run_command(argv):
             file=sys.stderr)
         print("try 'elbe initvm attach'", file=sys.stderr)
         sys.exit(10)
-    except BadStatusLine as e:
+    except BadStatusLine:
         print(
             f"Failed to connect to Soap server {opt.host}:{opt.port}\n",
             file=sys.stderr)
diff --git a/elbepack/commands/test.py b/elbepack/commands/test.py
index 2686826e7e..84e249bf8d 100644
--- a/elbepack/commands/test.py
+++ b/elbepack/commands/test.py
@@ -52,7 +52,7 @@ class ElbeTestCase(unittest.TestCase):
         super().__init__(methodName)
 
     def __str__(self):
-        name = super(ElbeTestCase, self).__str__()
+        name = super().__str__()
         if self.param:
             return f"{name} : param={self.param}"
         return name
diff --git a/elbepack/daemons/soap/authentication.py b/elbepack/daemons/soap/authentication.py
index febca6ae21..0802613741 100644
--- a/elbepack/daemons/soap/authentication.py
+++ b/elbepack/daemons/soap/authentication.py
@@ -87,7 +87,6 @@ def authenticated_uid(func):
     if func.__code__.co_argcount == 7:
         @wraps(func)
         def wrapped(self, arg1, arg2, arg3, arg4, arg5):
-            # pylint: disable=too-many-arguments
             s = self.transport.req_env['beaker.session']
             try:
                 uid = s['userid']
@@ -162,7 +161,6 @@ def authenticated_admin(func):
     if func.__code__.co_argcount == 6:
         @wraps(func)
         def wrapped(self, arg1, arg2, arg3, arg4, arg5):
-            # pylint: disable=too-many-arguments
             s = self.transport.req_env['beaker.session']
             try:
                 uid = s['userid']
diff --git a/elbepack/daemons/soap/esoap.py b/elbepack/daemons/soap/esoap.py
index 2cf6fcd2ac..056fb02d1b 100644
--- a/elbepack/daemons/soap/esoap.py
+++ b/elbepack/daemons/soap/esoap.py
@@ -41,7 +41,6 @@ class ESoap (ServiceBase):
     @rpc(_returns=String)
     @soap_faults
     def get_version(self):
-        # pylint: disable=no-self-use
         return elbe_version
 
     @rpc(String, String, _returns=Boolean)
@@ -62,7 +61,6 @@ class ESoap (ServiceBase):
     @soap_faults
     @authenticated_admin
     def install_elbe_version(self, version, pkglist):
-        # pylint: disable=no-self-use
         if is_devel:
             return SoapCmdReply(10,
                                 'Initvm is in devel mode: installing another\n'
@@ -97,8 +95,6 @@ class ESoap (ServiceBase):
     @authenticated_admin
     def add_user(self, name, fullname, password, email, admin):
 
-        # pylint: disable=too-many-arguments
-
         self.app.pm.db.add_user(name, fullname, password, email, admin)
 
     @rpc(_returns=Array(SoapProject))
@@ -127,8 +123,6 @@ class ESoap (ServiceBase):
     @soap_faults
     def upload_file(self, uid, builddir, fname, blob, part):
 
-        # pylint: disable=too-many-arguments
-
         fn = os.path.join(builddir, fname)
         if part == 0:
             if self.app.pm.db.is_busy(builddir):
@@ -214,8 +208,6 @@ class ESoap (ServiceBase):
     @soap_faults
     def build(self, uid, builddir, build_bin, build_src, skip_pbuilder):
 
-        # pylint: disable=too-many-arguments
-
         self.app.pm.open_project(uid, builddir)
         self.app.pm.build_current_project(uid, build_bin, build_src,
                                           skip_pbuilder)
@@ -297,7 +289,6 @@ class ESoap (ServiceBase):
     @rpc(String, Integer, String, Boolean)
     @authenticated_uid
     @soap_faults
-    # pylint: disable=too-many-arguments
     def finish_pdebuild(self, uid, builddir, cpuset, profile, cross):
         self.app.pm.open_project(uid, builddir)
         self.app.pm.build_current_pdebuild(uid, cpuset, profile, cross)
@@ -383,7 +374,6 @@ class ESoap (ServiceBase):
     @authenticated_admin
     @soap_faults
     def shutdown_initvm(self):
-        # pylint: disable=no-self-use
         system("systemctl --no-block poweroff")
 
     @rpc(String)
diff --git a/elbepack/daemons/soap/faults.py b/elbepack/daemons/soap/faults.py
index 88d6ed3c52..267c92c2f1 100644
--- a/elbepack/daemons/soap/faults.py
+++ b/elbepack/daemons/soap/faults.py
@@ -88,7 +88,7 @@ def soap_faults(func):
         def wrapped(self):
             try:
                 return func(self)
-            except InvalidState as e:
+            except InvalidState:
                 raise SoapElbeInvalidState()
             except ProjectManagerError as e:
                 raise SoapElbeProjectError(str(e))
@@ -108,7 +108,7 @@ def soap_faults(func):
         def wrapped(self, arg1):
             try:
                 return func(self, arg1)
-            except InvalidState as e:
+            except InvalidState:
                 raise SoapElbeInvalidState()
             except ProjectManagerError as e:
                 raise SoapElbeProjectError(str(e))
@@ -128,7 +128,7 @@ def soap_faults(func):
         def wrapped(self, arg1, arg2):
             try:
                 return func(self, arg1, arg2)
-            except InvalidState as e:
+            except InvalidState:
                 raise SoapElbeInvalidState()
             except ProjectManagerError as e:
                 raise SoapElbeProjectError(str(e))
@@ -148,7 +148,7 @@ def soap_faults(func):
         def wrapped(self, arg1, arg2, arg3):
             try:
                 return func(self, arg1, arg2, arg3)
-            except InvalidState as e:
+            except InvalidState:
                 raise SoapElbeInvalidState()
             except ProjectManagerError as e:
                 raise SoapElbeProjectError(str(e))
@@ -168,7 +168,7 @@ def soap_faults(func):
         def wrapped(self, arg1, arg2, arg3, arg4):
             try:
                 return func(self, arg1, arg2, arg3, arg4)
-            except InvalidState as e:
+            except InvalidState:
                 raise SoapElbeInvalidState()
             except ProjectManagerError as e:
                 raise SoapElbeProjectError(str(e))
@@ -186,10 +186,9 @@ def soap_faults(func):
     if func.__code__.co_argcount == 6:
         @wraps(func)
         def wrapped(self, arg1, arg2, arg3, arg4, arg5):
-            # pylint: disable=too-many-arguments
             try:
                 return func(self, arg1, arg2, arg3, arg4, arg5)
-            except InvalidState as e:
+            except InvalidState:
                 raise SoapElbeInvalidState()
             except ProjectManagerError as e:
                 raise SoapElbeProjectError(str(e))
@@ -207,10 +206,9 @@ def soap_faults(func):
     if func.__code__.co_argcount == 7:
         @wraps(func)
         def wrapped(self, arg1, arg2, arg3, arg4, arg5, arg6):
-            # pylint: disable=too-many-arguments
             try:
                 return func(self, arg1, arg2, arg3, arg4, arg5, arg6)
-            except InvalidState as e:
+            except InvalidState:
                 raise SoapElbeInvalidState()
             except ProjectManagerError as e:
                 raise SoapElbeProjectError(str(e))
diff --git a/elbepack/db.py b/elbepack/db.py
index 6824554d62..f6482af911 100644
--- a/elbepack/db.py
+++ b/elbepack/db.py
@@ -70,8 +70,6 @@ def get_versioned_filename(name, version, suffix):
 
 def _update_project_file(s, builddir, name, mime_type, description):
 
-    # pylint: disable=too-many-arguments
-
     filename = os.path.join(builddir, name)
     try:
         f = s.query(ProjectFile).\
@@ -195,7 +193,7 @@ class ElbeDB:
                     f"cannot set savesh file while project {builddir} is busy")
 
             p.edit = datetime.utcnow()
-            if p.status == "empty_project" or p.status == "build_failed":
+            if p.status in ("empty_project", "build_failed"):
                 p.status = "needs_build"
             elif p.status == "build_done":
                 p.status = "has_changes"
@@ -228,7 +226,7 @@ class ElbeDB:
                     f"cannot set presh file while project {builddir} is busy")
 
             p.edit = datetime.utcnow()
-            if p.status == "empty_project" or p.status == "build_failed":
+            if p.status in ("empty_project", "build_failed"):
                 p.status = "needs_build"
             elif p.status == "build_done":
                 p.status = "has_changes"
@@ -259,7 +257,7 @@ class ElbeDB:
                     f"cannot set postsh file while project {builddir} is busy")
 
             p.edit = datetime.utcnow()
-            if p.status == "empty_project" or p.status == "build_failed":
+            if p.status in ("empty_project", "build_failed"):
                 p.status = "needs_build"
             elif p.status == "build_done":
                 p.status = "has_changes"
@@ -304,7 +302,7 @@ class ElbeDB:
             p.name = xml.text("project/name")
             p.version = xml.text("project/version")
             p.edit = datetime.utcnow()
-            if p.status == "empty_project" or p.status == "build_failed":
+            if p.status in ("empty_project", "build_failed"):
                 p.status = "needs_build"
             elif p.status == "build_done":
                 p.status = "has_changes"
@@ -574,7 +572,7 @@ class ElbeDB:
                 raise ElbeDBError(
                     f"project {builddir} is not registered in the database")
 
-            if p.status == "empty_project" or p.status == "busy":
+            if p.status in ("empty_project", "busy"):
                 raise ElbeDBError(
                     "project: " +
                     builddir +
@@ -861,8 +859,6 @@ class ElbeDB:
 
     def add_user(self, name, fullname, password, email, admin):
 
-        # pylint: disable=too-many-arguments
-
         pwhash = pbkdf2_sha512.hash(password)
 
         u = User(name=name,
@@ -879,8 +875,6 @@ class ElbeDB:
     def modify_user(self, userid, name, fullname, email, admin,
                     password=None):
 
-        # pylint: disable=too-many-arguments
-
         with session_scope(self.session) as s:
             try:
                 u = s.query(User).filter(User.id == userid).one()
@@ -977,8 +971,6 @@ class ElbeDB:
     @classmethod
     def init_db(cls, name, fullname, password, email, admin):
 
-        # pylint: disable=too-many-arguments
-
         if not os.path.exists(cls.db_path):
             try:
                 os.makedirs(cls.db_path)
diff --git a/elbepack/debpkg.py b/elbepack/debpkg.py
index 4e21865c08..50d0ce46fd 100644
--- a/elbepack/debpkg.py
+++ b/elbepack/debpkg.py
@@ -24,12 +24,13 @@ control_template = string.Template(control_template_string)
 
 
 def gen_controlfile(name, version, arch, description, deps):
-    d = dict(
-        name=name,
-        version=version,
-        arch=arch,
-        description=description,
-        deps=deps)
+    d = {
+        'name': name,
+        'version': version,
+        'arch': arch,
+        'description': description,
+        'deps': deps
+    }
     return control_template.substitute(d)
 
 
@@ -49,8 +50,6 @@ def build_binary_deb(
         deps,
         target_dir):
 
-    # pylint: disable=too-many-arguments
-
     tmpdir = mkdtemp()
     pkgfname = f"{name}_{version}_{arch}"
     pkgdir = os.path.join(tmpdir, pkgfname)
diff --git a/elbepack/directories.py b/elbepack/directories.py
index c088269c13..81f6538f2f 100644
--- a/elbepack/directories.py
+++ b/elbepack/directories.py
@@ -11,8 +11,8 @@ from pkgutil import iter_modules
 
 import elbepack
 
-elbe_exe = None
-elbe_dir = None
+elbe_exe = ""
+elbe_dir = ""
 
 
 def init_directories(elbe_relpath):
diff --git a/elbepack/dump.py b/elbepack/dump.py
index 36db39402b..8df0a742ee 100644
--- a/elbepack/dump.py
+++ b/elbepack/dump.py
@@ -180,7 +180,6 @@ def check_full_pkgs(pkgs, fullpkgs, cache):
 
 def elbe_report(xml, buildenv, cache, targetfs):
 
-    # pylint: disable=too-many-arguments
     # pylint: disable=too-many-locals
     # pylint: disable=too-many-statements
     # pylint: disable=too-many-branches
diff --git a/elbepack/efilesystem.py b/elbepack/efilesystem.py
index 59a86502d9..15386ecaea 100644
--- a/elbepack/efilesystem.py
+++ b/elbepack/efilesystem.py
@@ -205,8 +205,7 @@ class ElbeFilesystem(Filesystem):
                 except IOError as e:
                     logging.exception("Error while processing license file %s",
                                     copyright_fname)
-                    lic_text = u"Error while processing license file %s: '%s'" % (
-                        copyright_file, e.strerror)
+                    lic_text = f"Error while processing license file {copyright_file}: '{e.strerror}'"
             else:
                 logging.warning("License file does not exist, skipping %s",
                                   copyright_fname)
@@ -440,12 +439,12 @@ class TargetFs(ChRootFilesystem):
                 if self.xml.has("target/package/tar/options"):
                     options = self.xml.text("target/package/tar/options")
                 cmd = "tar cfz %(dest)s/%(fname)s -C %(sdir)s %(options)s ."
-                args = dict(
-                    options=options,
-                    dest=targetdir,
-                    fname=targz_name,
-                    sdir=self.fname('')
-                )
+                args = {
+                    'options': options,
+                    'dest': targetdir,
+                    'fname': targz_name,
+                    'sdir': self.fname('')
+                }
                 do(cmd % args)
                 # only append filename if creating tarball was successful
                 self.images.append(targz_name)
diff --git a/elbepack/elbeproject.py b/elbepack/elbeproject.py
index 993eeb04de..4d28739657 100644
--- a/elbepack/elbeproject.py
+++ b/elbepack/elbeproject.py
@@ -88,7 +88,6 @@ def gen_sdk_scripts(triplet,
                     prj_version,
                     builddir,
                     sdkpath):
-    # pylint: disable=too-many-arguments
 
     prj_name = prj_name.replace(" ", "_")
     prj_version = prj_version.replace(" ", "_")
@@ -134,8 +133,6 @@ class ElbeProject:
             postsh_file=None,
             savesh_file=None):
 
-        # pylint: disable=too-many-arguments
-
         self.builddir = os.path.abspath(str(builddir))
         self.chrootpath = os.path.join(self.builddir, "chroot")
         self.targetpath = os.path.join(self.builddir, "target")
@@ -276,7 +273,7 @@ class ElbeProject:
             try:
                 cache.mark_install_devpkgs(set(ignore_pkgs),
                                            set(ignore_dev_pkgs))
-            except SystemError as e:
+            except SystemError:
                 logging.exception("Mark install devpkgs failed")
             try:
                 cache.commit()
@@ -546,7 +543,6 @@ class ElbeProject:
     def build(self, build_bin=False, build_sources=False, cdrom_size=None,
               skip_pkglist=False, skip_pbuild=False):
 
-        # pylint: disable=too-many-arguments
         # pylint: disable=too-many-locals
         # pylint: disable=too-many-statements
         # pylint: disable=too-many-branches
diff --git a/elbepack/elbexml.py b/elbepack/elbexml.py
index bc86ff3ce1..bc2afa843c 100644
--- a/elbepack/elbexml.py
+++ b/elbepack/elbexml.py
@@ -294,9 +294,9 @@ class ElbeXML:
                 try:
                     section = lsplit[3]
                     if line.startswith("deb "):
-                        r["binstr"] = (f"{section}/binary-{arch}/Packages")
+                        r["binstr"] = f"{section}/binary-{arch}/Packages"
                     else:
-                        r["srcstr"] = (f"{section}/source/Sources")
+                        r["srcstr"] = f"{section}/source/Sources"
                 except IndexError:
                     if line.startswith("deb "):
                         r["binstr"] = "Packages"
diff --git a/elbepack/filesystem.py b/elbepack/filesystem.py
index 8a3bb08eb3..3c80572bf6 100644
--- a/elbepack/filesystem.py
+++ b/elbepack/filesystem.py
@@ -320,7 +320,7 @@ class Filesystem:
         False
         """
         try:
-            return os.remove(self.fname(path))
+            os.remove(self.fname(path))
         except BaseException:
             if not noerr:
                 raise
diff --git a/elbepack/finetuning.py b/elbepack/finetuning.py
index e67fe6d3ec..f2bd78892b 100644
--- a/elbepack/finetuning.py
+++ b/elbepack/finetuning.py
@@ -341,8 +341,8 @@ class AddFileAction(FinetuningAction):
 
         try:
             target.mkdir_p(os.path.dirname(dst))
-        except OSError as E:
-            if E.errno is not errno.EEXIST:
+        except OSError as e:
+            if e.errno is not errno.EEXIST:
                 raise
 
         content = AddFileAction.decode(content, encoding)
@@ -731,8 +731,8 @@ class TestSuites(FinetuningAction):
             ts = TestSuite(test_suite, target)
             try:
                 tss.append(ts())
-            except TestException as E:
-                logging.exception(str(E))
+            except TestException as e:
+                logging.exception(str(e))
 
         TestSuite.to_file(output, tss)
 
diff --git a/elbepack/hdimg.py b/elbepack/hdimg.py
index 6ac259e702..f764138040 100644
--- a/elbepack/hdimg.py
+++ b/elbepack/hdimg.py
@@ -308,8 +308,6 @@ def create_partition(
         size_in_sectors,
         current_sector):
 
-    # pylint: disable=too-many-arguments
-
     sector_size = 512
     if part.text("size") == "remain" and disk.type == "gpt":
         sz = size_in_sectors - 35 - current_sector
@@ -348,8 +346,6 @@ def create_partition(
 
 def create_label(disk, part, ppart, fslabel, target, grub):
 
-    # pylint: disable=too-many-arguments
-
     entry = fslabel[part.text("label")]
     entry.set_geometry(ppart, disk)
 
@@ -402,8 +398,6 @@ def create_logical_partitions(disk,
                               target,
                               grub):
 
-    # pylint: disable=too-many-arguments
-
     current_sector = epart.geometry.start
     size_in_sectors = current_sector + epart.geometry.length
 
@@ -429,7 +423,6 @@ def create_logical_partitions(disk,
 
 def do_image_hd(hd, fslabel, target, grub_version, grub_fw_type=None):
 
-    # pylint: disable=too-many-arguments
     # pylint: disable=too-many-locals
     # pylint: disable=too-many-branches
 
@@ -529,7 +522,6 @@ def add_binary_blob(hd, target):
 
 def do_hdimg(xml, target, rfs, grub_version, grub_fw_type=None):
 
-    # pylint: disable=too-many-arguments
     # pylint: disable=too-many-locals
     # pylint: disable=too-many-branches
 
@@ -619,7 +611,7 @@ def do_hdimg(xml, target, rfs, grub_version, grub_fw_type=None):
 
     # dd binary blobs onto images
     for i in xml.tgt.node("images"):
-        if (i.tag == "msdoshd") or (i.tag == "gpthd"):
+        if i.tag in ("msdoshd", "gpthd"):
             add_binary_blob(i, target)
 
     # use set() to remove duplicates, but
diff --git a/elbepack/initvmaction.py b/elbepack/initvmaction.py
index 497385bb89..7875c69b7e 100644
--- a/elbepack/initvmaction.py
+++ b/elbepack/initvmaction.py
@@ -16,8 +16,7 @@ import datetime
 import elbepack
 from elbepack.treeutils import etree
 from elbepack.directories import elbe_exe
-from elbepack.shellhelper import CommandError, system, command_out_stderr, \
-                                 command_out
+from elbepack.shellhelper import CommandError, system, command_out_stderr
 from elbepack.filesystem import TmpdirFilesystem
 from elbepack.elbexml import ElbeXML, ValidationError, ValidationMode
 from elbepack.config import cfg
@@ -96,10 +95,10 @@ class InitVMAction:
                     time.sleep(10)
                     try:
                         self.conn = libvirt.open("qemu:///system")
-                    except libvirt.libvirtError as verr:
-                        if not isinstance(verr.args[0], str):
+                    except libvirt.libvirtError as virterr:
+                        if not isinstance(virterr.args[0], str):
                             raise
-                        if verr.args[0].startswith('Failed to connect socket to'):
+                        if virterr.args[0].startswith('Failed to connect socket to'):
                             pass
 
                     if self.conn:
@@ -696,7 +695,7 @@ class SubmitAction(InitVMAction):
 class SyncAction(InitVMAction):
 
     def __init__(self, node):
-        super(SyncAction, self).__init__(node)
+        super().__init__(node)
 
     def execute(self, _initvmdir, opt, args):
         top_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
diff --git a/elbepack/junit.py b/elbepack/junit.py
index bbaf5a8278..0aacb722c5 100644
--- a/elbepack/junit.py
+++ b/elbepack/junit.py
@@ -15,7 +15,7 @@ class TestSuite:
     test_dict = {}
 
     def __init__(self, node, target):
-        super(TestSuite, self).__init__()
+        super().__init__()
         self.node = node
         self.target = target
 
@@ -56,7 +56,7 @@ class BaseTest:
     tag = None
 
     def __init__(self, node, target):
-        super(BaseTest, self).__init__()
+        super().__init__()
         self.node = node
         self.target = target
 
diff --git a/elbepack/log.py b/elbepack/log.py
index 051737c0e7..9619949ab9 100644
--- a/elbepack/log.py
+++ b/elbepack/log.py
@@ -23,7 +23,7 @@ logging_methods = []
 
 class LoggingQueue(collections.deque):
     def __init__(self):
-        super(LoggingQueue, self).__init__(maxlen=1024)
+        super().__init__(maxlen=1024)
         self.max_level = logging.NOTSET
 
     def note_level(self, level):
@@ -36,7 +36,7 @@ class QHandler(logging.Handler):
     queues = {}
 
     def __init__(self, target, *args, **kwargs):
-        super(QHandler, self).__init__(*args, **kwargs)
+        super().__init__(*args, **kwargs)
         if target not in QHandler.queues:
             QHandler.queues[target] = LoggingQueue()
         self.Q = QHandler.queues[target]
@@ -79,7 +79,7 @@ def reset_level(proj):
 class ThreadFilter(logging.Filter):
 
     def __init__(self, allowed, *args, **kwargs):
-        super(ThreadFilter, self).__init__(*args, **kwargs)
+        super().__init__(*args, **kwargs)
         self.allowed = allowed
         self.thread = threading.current_thread().ident
 
diff --git a/elbepack/pkgarchive.py b/elbepack/pkgarchive.py
index 92babf7194..4187de2ec8 100644
--- a/elbepack/pkgarchive.py
+++ b/elbepack/pkgarchive.py
@@ -15,8 +15,6 @@ from elbepack.repomanager import RepoBase, RepoAttributes
 class ArchiveRepo(RepoBase):
     def __init__(self, xml, pathname, origin, description, components):
 
-        # pylint: disable=too-many-arguments
-
         arch = xml.text("project/arch", key="arch")
         codename = xml.text("project/suite")
 
diff --git a/elbepack/repomanager.py b/elbepack/repomanager.py
index 1718f849cf..1565d962b5 100644
--- a/elbepack/repomanager.py
+++ b/elbepack/repomanager.py
@@ -8,7 +8,6 @@
 # SPDX-License-Identifier: GPL-3.0-or-later
 
 import os
-import shutil
 
 from debian.deb822 import Deb822
 
@@ -59,8 +58,6 @@ class RepoBase:
             description,
             maxsize=None):
 
-        # pylint: disable=too-many-arguments
-
         self.vol_path = path
         self.volume_count = 0
 
@@ -384,8 +381,6 @@ class CdromInitRepo(RepoBase):
     def __init__(self, init_codename, path,
                  mirror='http://ftp.de.debian.org/debian'):
 
-        # pylint: disable=too-many-arguments
-
         init_attrs = RepoAttributes(
             init_codename, "amd64", [
                 "main", "main/debian-installer"], mirror)
@@ -407,8 +402,6 @@ class CdromBinRepo(RepoBase):
             path,
             mirror='http://ftp.debian.org/debian'):
 
-        # pylint: disable=too-many-arguments
-
         repo_attrs = RepoAttributes(codename, arch, ["main", "added"], mirror)
         if init_codename is not None:
             init_attrs = RepoAttributes(
@@ -429,8 +422,6 @@ class CdromSrcRepo(RepoBase):
     def __init__(self, codename, init_codename, path, maxsize,
                  mirror='http://ftp.debian.org/debian'):
 
-        # pylint: disable=too-many-arguments
-
         repo_attrs = RepoAttributes(codename,
                                     "source",
                                     ["main",
diff --git a/elbepack/rfs.py b/elbepack/rfs.py
index 6974e2d69a..bc4adf453b 100644
--- a/elbepack/rfs.py
+++ b/elbepack/rfs.py
@@ -64,8 +64,6 @@ class DebootstrapException (Exception):
 class BuildEnv:
     def __init__(self, xml, path, build_sources=False, clean=False, arch="default", hostsysroot=False):
 
-        # pylint: disable=too-many-arguments
-
         self.xml = xml
         self.path = path
         self.rpcaptcache = None
@@ -305,7 +303,7 @@ class BuildEnv:
         preseed_txt = preseed_to_text(preseed)
         self.rfs.write_file("var/cache/elbe/preseed.txt", 0o644, preseed_txt)
         with self.rfs:
-            cmd = (f'debconf-set-selections < {self.rfs.fname("var/cache/elbe/preseed.txt")}')
+            cmd = f'debconf-set-selections < {self.rfs.fname("var/cache/elbe/preseed.txt")}'
             chroot(self.rfs.path, cmd)
 
 
@@ -317,7 +315,7 @@ class BuildEnv:
         hostname = self.xml.text("target/hostname")
         fqdn = hostname
         if self.xml.has("target/domain"):
-            fqdn = (f"{hostname}.{self.xml.text('target/domain')}")
+            fqdn = f"{hostname}.{self.xml.text('target/domain')}"
 
         chroot(self.rfs.path,
                """/bin/sh -c 'echo "127.0.0.1 localhost" >> /etc/hosts'""")
diff --git a/elbepack/rpcaptcache.py b/elbepack/rpcaptcache.py
index 2177498fc7..6c1f28e441 100644
--- a/elbepack/rpcaptcache.py
+++ b/elbepack/rpcaptcache.py
@@ -56,7 +56,7 @@ class MyMan(BaseManager):
     def start(self):
         """Redirect outputs of the process to an async logging thread"""
         r, w = os.pipe()
-        super(MyMan, self).start(MyMan.redirect_outputs, [r, w])
+        super().start(MyMan.redirect_outputs, [r, w])
         async_logging(r, w, soap, log)
 
 class InChRootObject:
@@ -73,7 +73,6 @@ class RPCAPTCache(InChRootObject):
     def __init__(self, rfs, arch,
                  notifier=None, norecommend=False, noauth=True):
 
-        # pylint: disable=too-many-arguments
         InChRootObject.__init__(self, rfs)
 
         self.notifier = notifier
@@ -351,7 +350,7 @@ class RPCAPTCache(InChRootObject):
         return list(src_set)
 
     @staticmethod
-    def compare_versions(self, ver1, ver2):
+    def compare_versions(ver1, ver2):
         return version_compare(ver1, ver2)
 
     def download_binary(self, pkgname, path, version=None):
@@ -393,6 +392,8 @@ class RPCAPTCache(InChRootObject):
         # Copy from src to dst all files of the source package
         dsc = None
         files = []
+
+        # pylint: disable=not-an-iterable
         for _file in rec.files:
             src = os.path.basename(_file.path)
             dst = os.path.join(dest_dir, src)
@@ -415,6 +416,7 @@ class RPCAPTCache(InChRootObject):
         if dsc is None:
             raise ValueError(f"No source found for {src_name}_{src_version}")
 
+        # pylint: disable=not-an-iterable
         for item in acq.items:
             if item.STAT_DONE != item.status:
                 raise FetchError(
@@ -426,8 +428,6 @@ class RPCAPTCache(InChRootObject):
 def get_rpcaptcache(rfs, arch,
                     notifier=None, norecommend=False, noauth=True):
 
-    # pylint: disable=too-many-arguments
-
     mm = MyMan()
     mm.start()
 
@@ -435,5 +435,4 @@ def get_rpcaptcache(rfs, arch,
     # see the creation of MyMan.RPCAPTCache by
     # MyMan.register()
     #
-    # pylint: disable=no-member
     return mm.RPCAPTCache(rfs, arch, notifier, norecommend, noauth)
diff --git a/elbepack/shellhelper.py b/elbepack/shellhelper.py
index f8ee0b58a6..17b888620e 100644
--- a/elbepack/shellhelper.py
+++ b/elbepack/shellhelper.py
@@ -21,7 +21,7 @@ soap = logging.getLogger("soap")
 class CommandError(Exception):
 
     def __init__(self, cmd, returncode):
-        super(CommandError, self).__init__(cmd, returncode)
+        super().__init__(cmd, returncode)
         self.returncode = returncode
         self.cmd = cmd
 
diff --git a/elbepack/soapclient.py b/elbepack/soapclient.py
index 5203e198f0..2fb9150220 100644
--- a/elbepack/soapclient.py
+++ b/elbepack/soapclient.py
@@ -45,8 +45,6 @@ def set_suds_debug(debug):
 class ElbeSoapClient:
     def __init__(self, host, port, user, passwd, retries=10, debug=False):
 
-        # pylint: disable=too-many-arguments
-
         # Mess with suds logging, for debug, or squelch warnings
         set_suds_debug(debug)
 
@@ -894,7 +892,6 @@ class UploadPackageAction(RepoAction):
     def __init__(self, node):
         RepoAction.__init__(self, node)
 
-    # pylint: disable=arguments-differ
     @staticmethod
     def upload_file(client, f, builddir):
         # Uploads file f into builddir in intivm
diff --git a/elbepack/tests/test_doctest.py b/elbepack/tests/test_doctest.py
index 58c2143260..6a2fa3e2a0 100644
--- a/elbepack/tests/test_doctest.py
+++ b/elbepack/tests/test_doctest.py
@@ -5,8 +5,8 @@
 
 import doctest
 
-import elbepack.shellhelper as shellhelper
-import elbepack.filesystem as filesystem
+from elbepack import shellhelper
+from elbepack import filesystem
 
 from elbepack.commands.test import ElbeTestCase
 
diff --git a/elbepack/updated.py b/elbepack/updated.py
index 3f99168a91..50eb725add 100644
--- a/elbepack/updated.py
+++ b/elbepack/updated.py
@@ -109,7 +109,6 @@ class UpdateService (ServiceBase):
 
     @rpc(_returns=String)
     def list_snapshots(self):
-        # pylint: disable=no-self-use
         # use comma separated string because array of strings triggers a bug in
         # python suds :(
         snapshots = ""
diff --git a/elbepack/updated_monitors.py b/elbepack/updated_monitors.py
index f1d237b44a..90da2480d7 100644
--- a/elbepack/updated_monitors.py
+++ b/elbepack/updated_monitors.py
@@ -27,7 +27,7 @@ class UpdateMonitor:
 
 class USBMonitor (UpdateMonitor):
     def __init__(self, status, recursive=False):
-        super(USBMonitor, self).__init__(status)
+        super().__init__(status)
         self.recursive = recursive
         self.context = pyudev.Context()
         self.monitor = pyudev.Monitor.from_netlink(self.context)
@@ -114,11 +114,10 @@ class FileMonitor (UpdateMonitor):
                     return
 
     def __init__(self, status, update_dir):
-        super(FileMonitor, self).__init__(status)
+        super().__init__(status)
         self.wm = pyinotify.WatchManager()
         self.notifier = pyinotify.Notifier(self.wm)
 
-        # pylint: disable=no-member
         self.wm.add_watch(update_dir, pyinotify.IN_CLOSE_WRITE,
                           proc_fun=FileMonitor.EventHandler(self.status))
         self.observer = FileMonitor.ObserverThread(self.status, self)
diff --git a/elbepack/updatepkg.py b/elbepack/updatepkg.py
index 1cb9cfaab0..00c9085067 100644
--- a/elbepack/updatepkg.py
+++ b/elbepack/updatepkg.py
@@ -35,7 +35,6 @@ def gen_update_pkg(project, xml_filename, upd_filename,
                    override_buildtype=None, skip_validate=False, debug=False,
                    cmd_dir=None, cfg_dir=None):
 
-    # pylint: disable=too-many-arguments
     # pylint: disable=too-many-locals
     # pylint: disable=too-many-statements
     # pylint: disable=too-many-branches
diff --git a/elbepack/validate.py b/elbepack/validate.py
index 93f4ea2fb8..1f0f26a418 100644
--- a/elbepack/validate.py
+++ b/elbepack/validate.py
@@ -72,7 +72,7 @@ def validate_xml_content(xml):
 
         # Check if primary mirror is using https
         primary_proto = xml.findtext("/project/mirror/primary_proto", "")
-        is_primary_proto_https = (primary_proto.lower() == "https")
+        is_primary_proto_https = primary_proto.lower() == "https"
 
         # Check if any additional mirror is using https
         has_https_urls = False
diff --git a/elbepack/virtapt.py b/elbepack/virtapt.py
index 9703493186..09b5ff29c0 100644
--- a/elbepack/virtapt.py
+++ b/elbepack/virtapt.py
@@ -60,7 +60,6 @@ def lookup_uri(v, d, target_pkg):
     if not x.is_trusted:
         return target_pkg, uri, ""
 
-    # pylint: disable=no-member
     hashval = str(r.hashes.find('SHA256')).split(':')[1]
 
     return target_pkg, uri, hashval
@@ -168,8 +167,7 @@ class VirtApt:
     def stop(self):
         pass
 
-    @staticmethod
-    def pulse(_obj):
+    def pulse(self, owner):
         return True
 
     def initialize_dirs(self):
@@ -218,7 +216,6 @@ class VirtApt:
 
         x = self.source.find_index(c.file_list[0][0])
         uri = x.archive_uri(r.filename)
-        # pylint: disable=no-member
         hashval = str(r.hashes.find('SHA256'))
 
         acq = apt_pkg.AcquireFile(self.acquire,
@@ -269,7 +266,7 @@ class VirtApt:
                 pkg = None
                 c = None
             if not c:
-                # pylint: disable=E1133
+                # pylint: disable=not-an-iterable
                 for p in self.cache.packages:
                     for x in p.provides_list:
                         if pp == x[0]:
diff --git a/test/updated.py b/test/updated.py
index eb244ab949..c41a88c7e9 100755
--- a/test/updated.py
+++ b/test/updated.py
@@ -33,7 +33,7 @@ class MonitorThread (threading.Thread):
         self.server = None
 
     def run(self):
-        print("monitor ready :%s" % (self.port))
+        print(f"monitor ready :{self.port}")
         application = Application([MonitorService], 'monitor',
                                   in_protocol=Soap11(validator='lxml'),
                                   out_protocol=Soap11())
-- 
2.39.2



More information about the elbe-devel mailing list