Validating positional arguments in optparse
Jean-Michel Pichavant
jeanmichel at sequans.com
Fri Oct 23 06:24:25 EDT 2009
Filip Gruszczyński wrote:
> optparse module is quite smart, when it comes to validating options,
> like assuring, that certain option must be an integer. However, I
> can't find any information about validating, that positional arguments
> were provided and I can't find methods, that would allow defining
> positional argument in OptionParser. Is it possible to do this, or was
> it intentionaly left this way?
>
>
You can't, unlike argparse.
"
* *The argparse module can handle positional and optional arguments,
while optparse can handle only optional arguments*. (See
add_argument()
<http://argparse.googlecode.com/svn/tags/r101/doc/add_argument.html#add_argument>.)
* The argparse module isn’t dogmatic about what your command line
interface should look like - options like -file or /file are
supported, as are required options. Optparse refuses to support
these features, preferring purity over practicality.
* The argparse module produces more informative usage messages,
including command-line usage determined from your arguments, and
help messages for both positional and optional arguments. The
optparse module requires you to write your own usage string, and
has no way to display help for positional arguments.
* The argparse module supports action that consume a variable number
of command-line args, while optparse requires that the exact
number of arguments (e.g. 1, 2, or 3) be known in advance. (See
add_argument()
<http://argparse.googlecode.com/svn/tags/r101/doc/add_argument.html#add_argument>.)
* The argparse module supports parsers that dispatch to
sub-commands, while optparse requires setting
allow_interspersed_args and doing the parser dispatch manually.
(See add_subparsers()
<http://argparse.googlecode.com/svn/tags/r101/doc/other-methods.html#add_subparsers>.)
* The argparse module allows the type and action parameters to
add_argument()
<http://argparse.googlecode.com/svn/tags/r101/doc/add_argument.html#add_argument>
to be specified with simple callables, while optparse requires
hacking class attributes like STORE_ACTIONS or CHECK_METHODS to
get proper argument checking. (See add_argument()
<http://argparse.googlecode.com/svn/tags/r101/doc/add_argument.html#add_argument>).
* "
That being said, I still stick with optparse. I prefer the dogmatic
interface that makes all my exe use the exact same (POSIX) convention. I
really don't care about writing /file instead of --file
JM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20091023/d78fa019/attachment-0001.html>
More information about the Python-list
mailing list