e9981477c009f9e56a4605269f30e13e5a752502 wong Tue Oct 18 14:37:24 2011 -0700 fixed a logic error for reporting diff --git python/programs/qaUpdateMetadata/qaUpdateMetadata python/programs/qaUpdateMetadata/qaUpdateMetadata index 02ddb99..a2cee40 100755 --- python/programs/qaUpdateMetadata/qaUpdateMetadata +++ python/programs/qaUpdateMetadata/qaUpdateMetadata @@ -1,81 +1,82 @@ #!/hive/groups/encode/dcc/bin/python import sys, os, re, argparse, subprocess, math from ucscgenomics import ra, track def addChange(changelist, obj, change): if obj not in changelist: changelist[obj] = list() changelist[obj].append(change) return changelist def main(): parser = argparse.ArgumentParser( prog='qaUpdateMetadata', description='Update a metaDb fix', epilog='example: qaUpdateMetadata hg19 wgEncodeUwDnaseSeq --list "md5sum objType cell treatment"' ) parser.add_argument('-t', '--trackPath', help='Overrides the default track path ~/kent/src/hg/makeDb/trackDb/') parser.add_argument('database', help='The database, typically hg19 or mm9') parser.add_argument('composite', help='The composite name, wgEncodeCshlLongRnaSeq for instance') parser.add_argument('vars', metavar='VARS', type=str, nargs='+', help='The list of metadata variables to update from alpha to beta') args = parser.parse_args(sys.argv[1:]) vars = args.vars c = track.CompositeTrack(args.database, args.composite) newMdb = c.alphaMetaDb oldMdb = c.betaMetaDb commonStanzas = set(newMdb.filter(lambda s: 1, lambda s: s['metaObject'])) & set(oldMdb.filter(lambda s: 1, lambda s: s['metaObject'])) changelist = dict() for i in sorted(commonStanzas): #print oldMdb[i] for j in vars: if j not in newMdb[i]: if j in oldMdb[i]: - del oldMdb[i][j] changelist = addChange(changelist, i, "deleted %s" % j) + del oldMdb[i][j] continue else: continue if j not in oldMdb[i]: - oldMdb[i][j] = newMdb[i][j] changelist = addChange(changelist, i, "added %s = %s" % (j, newMdb[i][j])) + oldMdb[i][j] = newMdb[i][j] continue elif oldMdb[i][j] != newMdb[i][j]: - oldMdb[i][j] = newMdb[i][j] changelist = addChange(changelist, i, "changed %s from %s to %s" % (j, oldMdb[i][j], newMdb[i][j])) + oldMdb[i][j] = newMdb[i][j] + for i in sorted(changelist): print i for j in changelist[i]: + pass print j print "" f = open(c._betaMdbPath, 'w') - print f magic = "" for i in sorted(oldMdb): if re.search('MAGIC', i): magic = i continue f.write("metaObject " + str(oldMdb[i]['metaObject'] + "\n")) del oldMdb[i]['metaObject'] f.write("objType " + str(oldMdb[i]['objType'] + "\n")) del oldMdb[i]['objType'] for j in sorted(oldMdb[i]): f.write(("%s %s" % (j, oldMdb[i][j])) + "\n") f.write("\n") magic = magic + "\n" f.write(magic) f.close if __name__ == '__main__': main()