PR#964: few sort speedups

Merges #964
https://pagure.io/koji/pull-request/964

Fixes: #963
https://pagure.io/koji/issue/963
Speedup sorts
This commit is contained in:
Mike McLean 2018-12-04 00:05:32 -05:00
commit f71804d039
5 changed files with 7 additions and 10 deletions

View file

@ -2243,7 +2243,7 @@ def get_task_descendents(task, childMap=None, request=False):
if childMap == None:
childMap = {}
children = task.getChildren(request=request)
children.sort(lambda a, b: cmp(a['id'], b['id']))
children.sort(key=lambda x: x['id'])
# xmlrpclib requires dict keys to be strings
childMap[str(task.id)] = children
for child in children:
@ -8087,9 +8087,7 @@ def _applyQueryOpts(results, queryOpts):
if order.startswith('-'):
order = order[1:]
reverse = True
results.sort(key=lambda o: o[order])
if reverse:
results.reverse()
results.sort(key=lambda o: o[order], reverse=reverse)
if queryOpts.get('offset'):
results = results[queryOpts['offset']:]
if queryOpts.get('limit'):

View file

@ -50,8 +50,7 @@ def scan_mounts(topdir):
mplist.append(path)
fo.close()
#reverse sort so deeper dirs come first
mplist.sort()
mplist.reverse()
mplist.sort(reverse=True)
return mplist
def umount_all(topdir):

View file

@ -283,7 +283,8 @@ def send_queued_msgs(cbtype, *args, **kws):
for msg in msgs:
log.debug('test mode: skipped msg: %r', msg)
return
for url in sorted(urls, key=lambda k: random.random()):
random.shuffle(urls)
for url in urls:
container = Container(TimeoutHandler(url, msgs, CONFIG))
container.run()
if msgs:

View file

@ -1154,8 +1154,7 @@ class BuildTracker(object):
problem_counts[nvr] += 1
order = [(c, nvr) for (nvr, c) in six.iteritems(problem_counts)]
if order:
order.sort()
order.reverse()
order.sort(reverse=True)
#print top 5 problems
log("-- top problems --")
for (c, nvr) in order[:5]:

View file

@ -688,7 +688,7 @@ def taskinfo(environ, taskID):
paths = [] # (volume, relpath) tuples
for relname, volumes in six.iteritems(server.listTaskOutput(task['id'], all_volumes=True)):
paths += [(volume, relname) for volume in volumes]
values['output'] = sorted(paths, key = _sortByExtAndName)
values['output'] = sorted(paths, key=_sortByExtAndName)
if environ['koji.currentUser']:
values['perms'] = server.getUserPerms(environ['koji.currentUser']['id'])
else: