diff options
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) |