summaryrefslogtreecommitdiff
path: root/patchtracker/SourceArchive.py
diff options
context:
space:
mode:
authorSean Finney <seanius@debian.org>2008-06-10 07:57:06 +0200
committerSean Finney <seanius@debian.org>2008-06-10 07:57:06 +0200
commit23535ad4675885ca7358e2eed42a1481651daaac (patch)
tree6b7266a2434bee775156ac5445123fc3a154ded5 /patchtracker/SourceArchive.py
parentd868ebec5683625e86c018ecbec47890adaaeeb8 (diff)
downloadpatch-tracker-23535ad4675885ca7358e2eed42a1481651daaac.tar.gz
add key-based sorting on package listings
Diffstat (limited to 'patchtracker/SourceArchive.py')
-rwxr-xr-xpatchtracker/SourceArchive.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/patchtracker/SourceArchive.py b/patchtracker/SourceArchive.py
index 5afcd10..ba3ae42 100755
--- a/patchtracker/SourceArchive.py
+++ b/patchtracker/SourceArchive.py
@@ -3,6 +3,7 @@ import errno
from fnmatch import fnmatch
from gzip import GzipFile
from debian_bundle import deb822
+from operator import itemgetter
import patchtracker.Conf as Conf
from DiffGzHandler import DiffGzHandler
@@ -34,7 +35,8 @@ class Archive:
def sourcepackages(self, suite, component, filter=None):
sfile=os.sep.join([self.distsdir,suite,component,"/source/Sources.gz"])
- for ent in deb822.Sources.iter_paragraphs(GzipFile(sfile)):
+ k = itemgetter('Package')
+ for ent in sorted(deb822.Sources.iter_paragraphs(GzipFile(sfile)), key=k):
if not filter:
yield SourcePackage(ent)
else:
@@ -79,7 +81,8 @@ class SourcePackage:
return self.name
class SourcePackageIndex:
- pkgs = {}
+ def __init__(self):
+ self.pkgs = {}
def ins(self, srcpkg, rel):
idx = srcpkg.idx()
@@ -91,5 +94,6 @@ class SourcePackageIndex:
self.pkgs[idx][srcpkg.name][rel] = srcpkg
def indices(self):
+ self.pkgs.sort()
for k,v in self.pkgs.iteritems():
yield (k,v)