KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm writing a server querying tool, and I have a little bit of code to parse arguments at the very top: # Parse arguments p = argparse.ArgumentParser() g = p.add_mutually_exclusive_group(required=True) g.add_argument('--odam', dest='query_type', action='store_const', const='odam', help="Odamex Master query.") g.add_argument('--odas', dest='query_type', action='store_const', const='odas', help="Odamex Server query.") p.add_argument('address', nargs='*') args = p.parse_args() # Default master server arguments. if args.query_type == 'odam' and not args.address: args.address = [ 'master1.odamex.net:15000', 'master2.odamex.net:15000', ] # If we don't have any addresses by now, we can't go on. if not args.address: print "If you are making a server query, you must pass an address." sys.exit(1) Is there a nicer way to do this, preferably all within the parser? That last error looks a little out of place, and it would be nice if I could make nargs for address depend on if --odam or ---odas is passed. I could create a subparser, but that would make help look a little odd since it would leave off the addresses part of the command.
Tags (comma-separated)
Save Edits
Cancel