Miki Tebeka <miki.teb...@gmail.com> writes: > I'd like to have an --edit option in my program. That if not specified > will not open editor. If specified without value will open default > editor ($EDITOR) and if specified with value, assume this value is the > editor program to run.
So, two rather separate tasks: handle the command-line option, and start the editor. > The way I'm doing it currently is: > ... > no_edit = 'no-edit' > parser.add_argument('-e', '--edit', help='open editor on log', nargs='?', > default=no_edit) There is a built-in “no value specified” value in Python: the None singleton. The ‘argparse’ library uses this for the argument default already, so you don't need to fuss with your own special handling <URL:http://docs.python.org/library/argparse.html#default>. So the above becomes:: parser.add_argument('-e', '--edit', help='open editor on log', nargs='?') > ... > if args.edit != no_edit: and this test becomes the familiar test against None:: if args.edit is not None: > editor = args.edit or environ.get('EDITOR', 'vim') This will work fine, AFAICT. -- \ “But it is permissible to make a judgment after you have | `\ examined the evidence. In some circles it is even encouraged.” | _o__) —Carl Sagan, _The Burden of Skepticism_, 1987 | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list