diff options
author | Sean Finney <seanius@debian.org> | 2008-06-10 07:57:06 +0200 |
---|---|---|
committer | Sean Finney <seanius@debian.org> | 2008-06-10 07:57:06 +0200 |
commit | 23535ad4675885ca7358e2eed42a1481651daaac (patch) | |
tree | 6b7266a2434bee775156ac5445123fc3a154ded5 /patchtracker/SourceArchive.py | |
parent | d868ebec5683625e86c018ecbec47890adaaeeb8 (diff) | |
download | patch-tracker-23535ad4675885ca7358e2eed42a1481651daaac.tar.gz |
add key-based sorting on package listings
Diffstat (limited to 'patchtracker/SourceArchive.py')
-rwxr-xr-x | patchtracker/SourceArchive.py | 8 |
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) |