blob: 706301e8a410baa57edfacf7bbebe60dc7e6391b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import models
class PackageIndex:
def __init__( self, index ):
self.dists = [d.name for d in models.RepositorySuite.objects.all()]
self.index = {}
self.packages = []
packageMappings = models.SourcePackageMapping.objects.order_by('package__name').filter( package__name=index )
if not packageMappings:
packageMappings = models.SourcePackageMapping.objects.order_by('package__name').filter( package__name__startswith=index )
for mapping in packageMappings:
self._addPackageMapping(mapping.package, mapping.suite)
def _addPackageMapping( self, package, suite ):
if package.name not in self.index:
self.index[package.name] = [None] * len(self.dists)
self.packages.append(package)
self.index[package.name][self.dists.index(suite.name)] = package
def __iter__( self ):
for pkg in self.packages:
yield { 'package':pkg, 'entries':self.index[pkg.name] }
|