From 56f1e97732e6a5aa4795aad6ffe6d00fb62920e0 Mon Sep 17 00:00:00 2001 From: Kamil Páral Date: Dec 06 2019 15:12:03 +0000 Subject: drop legacy code This removes Python2-related code, yum-related code and old Bodhi imports. None of that is required anymore on currently supported systems. --- diff --git a/fedora-easy-karma.py b/fedora-easy-karma.py index d513bd2..3f06dbb 100755 --- a/fedora-easy-karma.py +++ b/fedora-easy-karma.py @@ -16,8 +16,6 @@ # You should have received a copy of the GNU General Public License # along with fedora-easy-karma. If not, see . -from __future__ import print_function - # default python modules import pickle import datetime @@ -33,10 +31,11 @@ from optparse import OptionParser from textwrap import wrap # extra python modules +from bodhi.client.bindings import BodhiClient +import dnf # Used to catch fedora.client.AuthError and fedora.client.ServerError # exceptions import fedora - # fedora_cert is optional. It is only used to get the real fas_username, which # is also supplied as a command line option and eventually in a config file. try: @@ -44,37 +43,9 @@ try: except ImportError: pass -try: - import dnf -except ImportError: - dnf = None - import yum - -# Use newer Bodhi bindings when available -# As of 2017-08-29 they are in Fedora 26+ and EPEL7+ -# FIXME: Only use the newer bindings when EPEL6 and Fedora 25 are EOL -try: - from bodhi.client.bindings import BodhiClient -except ImportError: - from fedora.client.bodhi import BodhiClient - PROMPT = "Comment? -1/0/1 -> karma, 'i' -> ignore, other -> skip> " -# Use Python 2 names of things -try: - basestring -except NameError: - # Python 3 -- unicode strings only - basestring = str - -try: - raw_input -except NameError: - # Python 3 -- raw_input() was renamed to input() - raw_input = input - - class FEK_helper(object): @staticmethod def bodhi_update_str( @@ -242,7 +213,7 @@ class FEK_helper(object): @staticmethod def wrap_paragraphs_prefix(paragraphs, first_prefix, width=80, extra_newline=False): - if isinstance(paragraphs, basestring): + if isinstance(paragraphs, str): paragraphs = paragraphs.split("\n") if first_prefix: @@ -304,37 +275,16 @@ https://pagure.io/fedora-easy-karma class PkgHelper(object): def __init__(self): - if dnf is not None: - self.my = dnf.Base() - # if not dnf.util.am_i_root(): - # cachedir = dnf.yum.misc.getCacheDir() - # my.conf.cachedir = cachedir - self.my.fill_sack() - self.releasever = dnf.rpm.detect_releasever("/") - self.package_manager = 'dnf' - # make pkg objects subscriptable, i.e. pkg["name"] work - dnf.package.Package.__getitem__ = lambda self, key: \ - getattr(self, key) - else: - self.my = yum.YumBase() - self.my.preconf.debuglevel = 0 - - self.releasever = self.my.conf.yumvar["releasever"] - if not self.releasever.isdigit(): - self.releasever = re.match('^(\d+)', - self.releasever).groups(1)[0] - self.package_manager = 'yum' - - # make pkg objects subscriptable, i.e. pkg["name"] work - yum.rpmsack.RPMInstalledPackage.__getitem__ = lambda self, key: \ - getattr(self, key) + self.my = dnf.Base() + self.my.fill_sack() + self.releasever = dnf.rpm.detect_releasever("/") + # make pkg objects subscriptable, i.e. pkg["name"] work + dnf.package.Package.__getitem__ = lambda self, key: \ + getattr(self, key) @property def installed_packages(self): - if dnf is not None: - return self.my.sack.query().installed() - else: - return self.my.rpmdb.returnPackages() + return self.my.sack.query().installed() class FedoraEasyKarma(object): @@ -457,7 +407,7 @@ class FedoraEasyKarma(object): "--releasever", dest="releasever", help="releasever to query Bodhi for, " - "default: releasever from dnf or yum", + "default: releasever from dnf", default=None) parser.add_option("", "--retries", @@ -551,7 +501,7 @@ class FedoraEasyKarma(object): self.options.installed_min_days) self.info("Getting list of installed packages...") - self.debug("starting %s query" % pkghelper.package_manager) + self.debug("starting dnf query") for pkg in pkghelper.installed_packages: installed = datetime.datetime.fromtimestamp(pkg.installtime) installed_timedelta = now - installed @@ -637,8 +587,7 @@ class FedoraEasyKarma(object): if not builds: print("No testing packages found, install some with: "\ - "'%s update --enablerepo=\"*-testing\"'" % \ - pkghelper.package_manager) + "'dnf update --enablerepo=\"*-testing\"'") for build in builds: update = testing_builds[build] @@ -698,11 +647,11 @@ class FedoraEasyKarma(object): self.options.fas_username): print("!!! already commented by you !!!") try: - karma = self.raw_input( + karma = self.input( PROMPT, default=self.options.default_karma, add_to_history=False) if karma in ["-1", "0", "1"]: - comment = self.raw_input( + comment = self.input( "Comment> ", default=self.options.default_comment) if comment or not self.options.skip_empty_comment: @@ -808,14 +757,14 @@ class FedoraEasyKarma(object): def warning(self, message): sys.stderr.write("Warning: %s\n" % message) - def raw_input(self, prompt, default="", add_to_history=True): + def input(self, prompt, default="", add_to_history=True): def pre_input_hook(): readline.insert_text(default) readline.redisplay() readline.set_pre_input_hook(pre_input_hook) try: - return raw_input(prompt) + return input(prompt) finally: readline.set_pre_input_hook(None) if not add_to_history: