[elbe-devel] [PATCH v3] repomanager: Fix Pylint
Torben Hohn
torben.hohn at linutronix.de
Mon Jun 15 13:32:22 CEST 2020
On Wed, Jun 10, 2020 at 11:33:35AM -0400, Olivier Dion wrote:
> 23:0: R0205: (useless-object-inheritance)
> 53:0: R0205: (useless-object-inheritance)
> 227:33: W0613: (unused-argument)
> 236:40: E0602: (undefined-variable)
> 235:30: W0613: (unused-argument)
> 241:40: E0602: (undefined-variable)
> 240:38: W0613: (unused-argument)
> 12:0: W0611: (unused-import)
>
> Renamed component to components for RepoBase. Multiple components can
> be passed in a list. By default the value is 'None' and this apply to
> all components in the repo.
>
> For compatiblity with old callers, passing a string is the same as
> passing a list with a single value in it.
>
> Signed-off-by: Olivier Dion <dion at linutronix.de>
Reviewed-by: Torben Hohn <torben.hohn at linutronix.de>
> ---
> elbepack/cdroms.py | 2 +-
> elbepack/repomanager.py | 161 ++++++++++++++++++++++++++++------------
> 2 files changed, 114 insertions(+), 49 deletions(-)
>
> diff --git a/elbepack/cdroms.py b/elbepack/cdroms.py
> index b2d91694..a13a0fba 100644
> --- a/elbepack/cdroms.py
> +++ b/elbepack/cdroms.py
> @@ -34,7 +34,7 @@ def add_source_pkg(repo, component, cache, pkg, version, forbid):
> dsc = cache.download_source(pkg,
> '/var/cache/elbe/sources',
> version=version)
> - repo.includedsc(dsc, component=component, force=True)
> + repo.includedsc(dsc, components=component, force=True)
> except ValueError:
> logging.error("No sources for package '%s'", pkg_id)
> except FetchError:
> diff --git a/elbepack/repomanager.py b/elbepack/repomanager.py
> index 909d13ea..53fb89e8 100644
> --- a/elbepack/repomanager.py
> +++ b/elbepack/repomanager.py
> @@ -9,7 +9,6 @@
>
> import os
> import shutil
> -import logging
>
> from debian.deb822 import Deb822
>
> @@ -19,7 +18,8 @@ from elbepack.pkgutils import get_dsc_size
> from elbepack.egpg import generate_elbe_internal_key, export_key, unlock_key
> from elbepack.shellhelper import CommandError, do
>
> -
> +# TODO:py3 Remove object inheritance
> +# pylint: disable=useless-object-inheritance
> class RepoAttributes(object):
> def __init__(self, codename, arch, components,
> mirror='http://ftp.de.debian.org/debian'):
> @@ -49,7 +49,8 @@ class RepoAttributes(object):
>
> return [RepoAttributes(self.codename, ret_arch, ret_comp, self.mirror)]
>
> -
> +# TODO:py3 Remove object inheritance
> +# pylint: disable=useless-object-inheritance
> class RepoBase(object):
>
> # pylint: disable=too-many-instance-attributes
> @@ -183,20 +184,31 @@ class RepoBase(object):
> att.codename)
> do(cmd, env_add={'GNUPGHOME': '/var/cache/elbe/gnupg'})
>
> - def _includedeb(self, path, codename, component):
> + def _includedeb(self, path, codename, components=None):
> if self.maxsize:
> new_size = self.fs.disk_usage("") + os.path.getsize(path)
> if new_size > self.maxsize:
> self.new_repo_volume()
>
> - cmd = ('reprepro --keepunreferencedfiles --export=never '
> - '--basedir "%s" -C %s includedeb %s %s')
> - do(cmd % (self.fs.path, component, codename, path))
> + cmd = 'reprepro %s includedeb %s %s'
> + global_opt = ["--keepunreferencedfiles",
> + "--export=never",
> + '--basedir "%s"' % self.fs.path]
> +
> + if components is not None:
> + # Compatibility with old callers
> + if isinstance(components, str):
> + components = [components]
> + global_opt.append('--component "%s"' % '|'.join(components))
> +
> + global_opt = ' '.join(global_opt)
> +
> + do(cmd % (global_opt, codename, path))
>
> - def includedeb(self, path, component="main", pkgname=None, force=False):
> + def includedeb(self, path, components=None, pkgname=None, force=False):
> # pkgname needs only to be specified if force is enabled
> try:
> - self._includedeb(path, self.repo_attr.codename, component)
> + self._includedeb(path, self.repo_attr.codename, components)
> except CommandError as ce:
> if force and pkgname is not None:
> # Including deb did not work.
> @@ -204,51 +216,91 @@ class RepoBase(object):
> # different md5 already.
> #
> # Try remove, and add again.
> - self.removedeb(pkgname, component)
> - self._includedeb(path, self.repo_attr.codename, component)
> + self.removedeb(pkgname, components)
> + self._includedeb(path, self.repo_attr.codename, components)
> else:
> raise ce
>
> - def include_init_deb(self, path, component="main"):
> - self._includedeb(path, self.init_attr.codename, component)
> + def include_init_deb(self, path, components=None):
> + self._includedeb(path, self.init_attr.codename, components)
> +
> + def _include(self, path, codename, components=None):
> +
> + cmd = 'reprepro %s include %s %s'
> + global_opt = ["--ignore=wrongdistribution",
> + "--ignore=surprisingbinary",
> + "--keepunreferencedfiles",
> + "--export=never",
> + '--basedir "%s"' % self.fs.path,
> + "--priority normal",
> + "--section misc"]
> +
> + if components is not None:
> + # Compatibility with old callers
> + if isinstance(components, str):
> + components = [components]
> + global_opt.append('--component "%s"' % '|'.join(components))
> +
> + global_opt = ' '.join(global_opt)
> +
> + do(cmd % (global_opt, codename, path))
>
> - def _include(self, path, codename, component):
> - cmd = ('reprepro --ignore=wrongdistribution '
> - '--ignore=surprisingbinary --keepunreferencedfiles '
> - '--export=never --basedir "%s" -C %s -P normal '
> - '-S misc include %s %s')
> - do(cmd % (self.fs.path, component, codename, path))
> + def _removedeb(self, pkgname, codename, components=None):
>
> - def _removedeb(self, pkgname, codename):
> - cmd = 'reprepro --basedir %s remove %s %s'
> - do(cmd % (self.fs.path, codename, pkgname),
> + cmd = 'reprepro %s remove %s %s'
> + global_opt = ['--basedir "%s"' % self.fs.path]
> +
> + if components is not None:
> + # Compatibility with old callers
> + if isinstance(components, str):
> + components = [components]
> + global_opt.append('--component "%s"' % '|'.join(components))
> +
> + global_opt = ' '.join(global_opt)
> +
> + do(cmd % (global_opt, codename, pkgname),
> env_add={'GNUPGHOME': '/var/cache/elbe/gnupg'})
>
> - def removedeb(self, pkgname, component="main"):
> - self._removedeb(pkgname, self.repo_attr.codename)
> + def removedeb(self, pkgname, components=None):
> + self._removedeb(pkgname, self.repo_attr.codename, components)
> +
> + def _removesrc(self, srcname, codename, components=None):
> +
> + cmd = 'reprepro %s removesrc %s %s'
> + global_opt = ["--basedir %s" % self.fs.path]
>
> - def _removesrc(self, srcname, codename):
> - cmd = 'reprepro --basedir %s removesrc %s %s'
> - do(cmd % (self.fs.path, codename, srcname),
> + if components is not None:
> + # Compatibility with old callers
> + if isinstance(components, str):
> + components = [components]
> + global_opt.append('--component "%s"' % '|'.join(components))
> +
> + global_opt = ' '.join(global_opt)
> +
> + do(cmd % (global_opt, codename, srcname),
> env_add={'GNUPGHOME': '/var/cache/elbe/gnupg'})
>
> - def removesrc(self, path, component="main"):
> + def removesrc(self, path, components=None):
> + # pylint: disable=undefined-variable
> for p in Deb822.iter_paragraphs(file(path)):
> if 'Source' in p:
> - self._removesrc(p['Source'], self.repo_attr.codename)
> + self._removesrc(p['Source'],
> + self.repo_attr.codename,
> + components)
>
> - def _remove(self, path, codename, component):
> + def _remove(self, path, codename, components=None):
> + # pylint: disable=undefined-variable
> for p in Deb822.iter_paragraphs(file(path)):
> if 'Source' in p:
> - self._removesrc(p['Source'], codename)
> + self._removesrc(p['Source'], codename, components)
> elif 'Package' in p:
> - self._removedeb(p['Package'], codename)
> + self._removedeb(p['Package'], codename, components)
> elif 'Binary' in p:
> for pp in p['Binary'].split():
> - self._removedeb(pp, codename)
> + self._removedeb(pp, codename, components)
>
>
> - def _includedsc(self, path, codename, component):
> + def _includedsc(self, path, codename, components=None):
> if self.maxsize:
> new_size = self.fs.disk_usage("") + get_dsc_size(path)
> if new_size > self.maxsize:
> @@ -257,13 +309,26 @@ class RepoBase(object):
> if self.maxsize and (self.fs.disk_usage("") > self.maxsize):
> self.new_repo_volume()
>
> - cmd = ('reprepro --keepunreferencedfiles --export=never '
> - '--basedir "%s" -C %s -P normal -S misc includedsc %s %s')
> - do(cmd % (self.fs.path, component, codename, path))
> + cmd = 'reprepro %s includedsc %s %s'
> + global_opt = ["--keepunreferencedfiles",
> + "--export=never",
> + '--basedir "%s"' % self.fs.path,
> + "--priority normal",
> + "--section misc"]
> +
> + if components is not None:
> + # Compatibility with old callers
> + if isinstance(components, str):
> + components = [components]
> + global_opt.append('--component "%s"' % '|'.join(components))
> +
> + global_opt = ' '.join(global_opt)
> +
> + do(cmd % (global_opt, codename, path))
>
> - def includedsc(self, path, component="main", force=False):
> + def includedsc(self, path, components=None, force=False):
> try:
> - self._includedsc(path, self.repo_attr.codename, component)
> + self._includedsc(path, self.repo_attr.codename, components)
> except CommandError as ce:
> if force:
> # Including dsc did not work.
> @@ -271,21 +336,21 @@ class RepoBase(object):
> # different md5 already.
> #
> # Try remove, and add again.
> - self.removesrc(path, component)
> - self._includedsc(path, self.repo_attr.codename, component)
> + self.removesrc(path, components)
> + self._includedsc(path, self.repo_attr.codename, components)
> else:
> raise ce
>
> - def include(self, path, component="main", force=False):
> + def include(self, path, components=None, force=False):
> if force:
> - self._remove(path, self.repo_attr.codename, component)
> - self._include(path, self.repo_attr.codename, component)
> + self._remove(path, self.repo_attr.codename, components)
> + self._include(path, self.repo_attr.codename, components)
>
> - def remove(self, path, component="main"):
> - self._remove(path, self.repo_attr.codename, component)
> + def remove(self, path, components=None):
> + self._remove(path, self.repo_attr.codename, components)
>
> - def include_init_dsc(self, path, component="main"):
> - self._includedsc(path, self.init_attr.codename, component)
> + def include_init_dsc(self, path, components=None):
> + self._includedsc(path, self.init_attr.codename, components)
>
> def buildiso(self, fname, options=""):
> files = []
> --
> 2.27.0
>
>
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel
--
Torben Hohn
Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-Mühlhofen
Phone: +49 7556 25 999 18; Fax.: +49 7556 25 999 99
Hinweise zum Datenschutz finden Sie hier (Informations on data privacy
can be found here): https://linutronix.de/kontakt/Datenschutz.php
Linutronix GmbH | Firmensitz (Registered Office): Uhldingen-Mühlhofen |
Registergericht (Registration Court): Amtsgericht Freiburg i.Br., HRB700
806 | Geschäftsführer (Managing Directors): Heinz Egger, Thomas Gleixner
More information about the elbe-devel
mailing list