X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fcruft.py;fp=daklib%2Fcruft.py;h=0fc40f379d801bcdb849df84edead92e943bcf15;hb=1c4e1b1a2a3be107a6111b65d0d226ed80e91d76;hp=0000000000000000000000000000000000000000;hpb=af4d6b256683e0e102b91a05649f97a81988f5b3;p=dak.git diff --git a/daklib/cruft.py b/daklib/cruft.py new file mode 100644 index 00000000..0fc40f37 --- /dev/null +++ b/daklib/cruft.py @@ -0,0 +1,27 @@ +from daklib.dbconn import * + +from sqlalchemy import func + +def newer_version(lowersuite_name, highersuite_name, session): + ''' + Finds newer versions in lowersuite_name than in highersuite_name. Returns a + list of tuples (source, higherversion, lowerversion) where higherversion is + the newest version from highersuite_name and lowerversion is the newest + version from lowersuite_name. + ''' + + lowersuite = get_suite(lowersuite_name, session) + highersuite = get_suite(highersuite_name, session) + + query = session.query(DBSource.source, func.max(DBSource.version)). \ + with_parent(highersuite).group_by(DBSource.source) + + list = [] + for (source, higherversion) in query: + lowerversion = session.query(func.max(DBSource.version)). \ + filter_by(source = source).filter(DBSource.version > higherversion). \ + with_parent(lowersuite).group_by(DBSource.source).scalar() + if lowerversion is not None: + list.append((source, higherversion, lowerversion)) + return list +