#!/usr/bin/env python2.7 import sys, re, argparse from ucscGb.gbData.ra.raFile import RaFile def addChange(changelist, obj, change): if obj not in changelist: changelist[obj] = list() changelist[obj].append(change) return changelist def main(): parser = argparse.ArgumentParser( description='Describes the differences between the two .ra files', epilog='example: raDiff alpha/wgEncodeUwTfbs.ra beta/wgEncodeUwTfbs.ra' ) parser.add_argument('RaFileOne', help='The .ra file') parser.add_argument('RaFileTwo', help='The .ra file to compare to') parser.add_argument('-r', '--reverse', action="store_true", default=0, help="Reverses the comparison") #if len(sys.argv) == 1: # parser.print_help() # return args = parser.parse_args() ra1 = RaFile(args.RaFileOne) ra2 = RaFile(args.RaFileTwo) if args.reverse: ra3 = ra1 ra1 = ra2 ra2 = ra3 changelist, newStanzas, droppedStanzas = ra2.changeSummary(ra1) print "Dropped Stanzas (%s):" % len(droppedStanzas) for i in sorted(droppedStanzas, key=str.lower): print i print "" print "New Stanzas (%s):" % len(newStanzas) for i in sorted(newStanzas, key=str.lower): print i print "" print "Changed Stanzas (%s):" % len(changelist.keys()) for i in sorted(changelist, key=str.lower): print "%s:" % i for j in changelist[i]: print "\t%s" % j print "" if __name__ == "__main__": main()