summaryrefslogtreecommitdiff
path: root/patchtracker
diff options
context:
space:
mode:
Diffstat (limited to 'patchtracker')
-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)