workaround unnecessary list conversions

This commit is contained in:
Tomas Kopecek 2018-05-16 12:41:28 +02:00 committed by Mike McLean
parent 56095e8018
commit caae1a0a8b
18 changed files with 126 additions and 95 deletions

View file

@ -13,7 +13,7 @@ try:
except ImportError: # pragma: no cover
krbV = None
import koji
from koji.util import LazyDict, LazyValue
from koji.util import LazyDict, LazyValue, to_list
import koji.policy
import six.moves.configparser
from email.MIMEText import MIMEText
@ -537,7 +537,7 @@ def handle_trash():
by_owner = {}
for binfo in to_trash:
by_owner.setdefault(binfo['owner_name'], []).append(binfo)
owners = list(by_owner.keys())
owners = to_list(by_owner.keys())
owners.sort()
for owner_name in owners:
builds = [(b['nvr'], b) for b in by_owner[owner_name]]
@ -772,7 +772,7 @@ def get_build_sigs(build, cache=False):
for sig in sigs:
if sig['sigkey']:
keys.setdefault(sig['sigkey'], 1)
ret = build_sig_cache[build] = list(keys.keys())
ret = build_sig_cache[build] = to_list(keys.keys())
return ret
def handle_prune():
@ -832,7 +832,7 @@ def handle_prune():
pkghist.setdefault(h['name'] + '-' + h['version'], []).append(h)
else:
pkghist.setdefault(h['name'], []).append(h)
pkgs = list(pkghist.keys())
pkgs = to_list(pkghist.keys())
pkgs.sort()
for pkg in pkgs:
if not check_package(pkg):

View file

@ -30,6 +30,7 @@ try:
except ImportError: # pragma: no cover
krbV = None
import koji
from koji.util import import to_list
import six.moves.configparser
import fnmatch
import optparse
@ -498,7 +499,7 @@ class TrackedBuild(object):
log("Warning: some rpms for %s lacked buildroots:" % self.nvr)
for rinfo in bad:
log(" %(name)s-%(version)s-%(release)s.%(arch)s" % rinfo)
return list(brs.keys())
return to_list(brs.keys())
def getDeps(self):
buildroots = self.getBuildroots()
@ -557,12 +558,12 @@ class TrackedBuild(object):
#each buildroot had this as a base package
base.append(name)
if len(tags) > 1:
log("Warning: found multiple buildroot tags for %s: %s" % (self.nvr, list(tags.keys())))
log("Warning: found multiple buildroot tags for %s: %s" % (self.nvr, to_list(tags.keys())))
counts = [(n, tag) for tag, n in six.iteritems(tags)]
sort(counts)
tag = counts[-1][1]
else:
tag = list(tags.keys())[0]
tag = to_list(tags.keys())[0]
# due bugs in used tools mainline koji instance could store empty buildroot infos for builds
if len(builds) == 0:
self.setState("noroot")
@ -1122,7 +1123,7 @@ class BuildTracker(object):
log("-- %s --" % time.asctime())
self.report_brief()
for state in ('broken', 'noroot', 'blocked'):
builds = list(self.state_idx[state].values())
builds = to_list(self.state_idx[state].values())
not_replaced = [b for b in builds if not b.substitute]
n_replaced = len(builds) - len(not_replaced)
log("%s: %i (+%i replaced)" % (state, len(not_replaced), n_replaced))
@ -1163,8 +1164,7 @@ class BuildTracker(object):
def report_brief(self):
N = len(self.builds)
states = list(self.state_idx.keys())
states.sort()
states = sorted(self.state_idx.keys())
parts = ["%s: %i" % (s, len(self.state_idx[s])) for s in states]
parts.append("total: %i" % N)
log (' '.join(parts))

View file

@ -25,7 +25,7 @@ from __future__ import division
import sys
import os
import koji
from koji.util import rmtree, parseStatus
from koji.util import rmtree, parseStatus, to_list
from optparse import OptionParser
from six.moves.configparser import ConfigParser
import errno
@ -86,7 +86,7 @@ class ManagedRepo(object):
tags = {self.tag_id : 1}
for x in order:
tags[x['parent_id']] = 1
self.taglist = list(tags.keys())
self.taglist = to_list(tags.keys())
@property
def dist(self):
@ -315,7 +315,7 @@ class RepoManager(object):
def checkCurrentRepos(self):
"""Determine which repos are current"""
to_check = []
repo_ids = list(self.repos.keys())
repo_ids = to_list(self.repos.keys())
for repo_id in repo_ids:
repo = self.repos.get(repo_id)
if repo is None:
@ -661,8 +661,7 @@ class RepoManager(object):
debuginfo_pat = self.options.debuginfo_tags.split()
src_pat = self.options.source_tags.split()
order = list(self.needed_tags.values())
order.sort(key=lambda t:t['score'])
order = sorted(self.needed_tags.values(), key=lambda t: t['score'])
for tag in order:
if running_tasks >= self.options.max_repo_tasks:
self.logger.info("Maximum number of repo tasks reached")