joinedload(MoleculeDesignPool.stock_samples)) dup_cnt = 1 # Go through all stock sample sets and remove duplicates. print 'Loading stock sample molecule design sets.' for cnt, stock_spl_set in enumerate(sss_query.all()): sys.stdout.write('Processing %d of %d.' % (cnt + 1, total_cnt)) if not stock_spl_set.member_hash in hash_map: hash_map[stock_spl_set.member_hash] = stock_spl_set else: sys.stdout.write(' Duplicate %d.' % dup_cnt) dup_cnt += 1 ref_stock_spl_set = hash_map[stock_spl_set.member_hash] for stock_spl in stock_spl_set.stock_samples: stock_spl.molecule_design_set = ref_stock_spl_set sess.delete(stock_spl_set) sys.stdout.write(os.linesep) print 'Done processing.' if COMMIT and len(WARNINGS) == 0: print 'Committing transaction.' sess.commit() else: if WARNINGS: print 'Warnings occurred - rolling back transaction.' print 'Warning messages:' print '\n'.join(WARNINGS) print 'Rolling back transaction.' sess.rollback()
sss_query = sss_query.options(joinedload(MoleculeDesignPool.stock_samples)) dup_cnt = 1 # Go through all stock sample sets and remove duplicates. print 'Loading stock sample molecule design sets.' for cnt, stock_spl_set in enumerate(sss_query.all()): sys.stdout.write('Processing %d of %d.' % (cnt + 1, total_cnt)) if not stock_spl_set.member_hash in hash_map: hash_map[stock_spl_set.member_hash] = stock_spl_set else: sys.stdout.write(' Duplicate %d.' % dup_cnt) dup_cnt += 1 ref_stock_spl_set = hash_map[stock_spl_set.member_hash] for stock_spl in stock_spl_set.stock_samples: stock_spl.molecule_design_set = ref_stock_spl_set sess.delete(stock_spl_set) sys.stdout.write(os.linesep) print 'Done processing.' if COMMIT and len(WARNINGS) == 0: print 'Committing transaction.' sess.commit() else: if WARNINGS: print 'Warnings occurred - rolling back transaction.' print 'Warning messages:' print '\n'.join(WARNINGS) print 'Rolling back transaction.' sess.rollback()