to_be_discarded = [] discard_st = kb.get_study(args.discard_study) if discard_st is None: logger.critical('Study with label %s not found!' % args.discard_study) sys.exit(2) for c in codes: try: src_st_lookup[c].study = discard_st to_be_discarded.append(src_st_lookup[c]) except KeyError: logger.warning('Enrollment %s not found in study %s' % (c, args.source_study)) logger.info('%d enrollments will be discarded' % len(to_be_discarded)) for disc in to_be_discarded: try: kb.save(disc) except KBError: logger.error('Can\'t save enrollment %s in study %s' % (disc.studyCode, disct.study.label)) continue disc_well = mark_invalid_well(disc, kb) if disc_well: kb.save(disc_well) pass if __name__ == '__main__': main(sys.argv[1:])