+ elif format == "python":
+ c_architectures = daksql.string_agg(t.c.architecture, ',', order_by=[t.c.architecture_is_source.desc(), t.c.architecture])
+ query = sql.select([t.c.package,
+ t.c.version,
+ t.c.display_suite,
+ c_architectures,
+ t.c.source,
+ t.c.source_version,
+ t.c.component]) \
+ .where(where) \
+ .group_by(t.c.package,
+ t.c.version,
+ t.c.display_suite,
+ t.c.source,
+ t.c.component,
+ t.c.source_version)
+ result = session.execute(query).fetchall()
+
+ if len(result) == 0:
+ raise StopIteration
+
+ val = lambda: defaultdict(val)
+ ret = val()
+ for row in result:
+ ret[row[t.c.package]] \
+ [row[t.c.display_suite]] \
+ [row[t.c.version]]={'component': row[t.c.component],
+ 'architectures': row[c_architectures].split(','),
+ 'source': row[t.c.source],
+ 'source_version': row[t.c.source_version]
+ }
+
+ yield ret
+ return