import argparse def str2bool(v): if v is None: return None exclusive = ['accurate', 'query', 'document'] if v in exclusive: return v if isinstance(v, bool): return v if v.lower() in ('yes', 'true', 't', 'y', '1'): return True elif v.lower() in ('no', 'false', 'f', 'n', '0'): return False else: raise argparse.ArgumentTypeError('Boolean value expected.')