add_option() (and make_option()) now
support the following new actions (#22):
action = "append" which appends each occurrence’s value
to default.action = "append_const" which appends
const to default each time the flag is
seen.action = "count", which counts the number of times a
flag is seen and adds it to default (treated as
0L if not supplied). Returns NULL if the flag
is never seen and no default was supplied.action = "store_const" which stores const
when the flag is seen.add_option() (and make_option()) now
support a const parameter (intended for new actions
"append_const" and "store_const").
Several new classed errors are now thrown, mirroring Python’s
optparse exception hierarchy:
optparse_option_error: invalid option definition in
make_option() or add_option().
optparse_option_conflict_error: duplicate flag in
OptionParser() or add_option().optparse_parse_error: existing base class for all
parse-time errors from parse_args().
optparse_bad_option_error: unrecognized, misused, or
argument-requiring option.
optparse_ambiguous_option_error: ambiguous abbreviated
long flag.optparse_bad_positional_arguments_error: wrong number
of positional arguments supplied.optparse_missing_required_error: a required option was
not supplied.add_option() (and make_option()) now
allow non-letter characters in short flags (e.g., -1) and
at the beginning of long flags (e.g., --1flag), following
Python’s optparse convention. However long and short flags
may not contain = or whitespace (or begin with
hyphens).
add_option() (and make_option()) now
support a required argument. If TRUE,
parse_args() will throw an error if the option is not
provided on the command line (#17).
parse_args() (and parse_args2()) now
correctly handle a bare -- separator: all arguments after
-- are treated as positional arguments rather than
options.parse_args() (and parse_args2()) now
support abbreviated long flags (e.g. --verb matching
--verbose) when positional_arguments is not
FALSE. Previously abbreviations were only supported when
positional_arguments = FALSE.make_option() now throws a classed
optparse_option_error for invalid action or
type arguments instead of a confusing error later at parse
time.OptionParser() now also checks the
LITTLER_SCRIPT_PATH environment variable for the script
name when performing %prog on the usage
argument so it works when called from littler.default to
match that of its type argument when
action = "callback". Thanks husheng (@hs3434) for bug report (#47).DESCRIPTION to suppress new CRAN check NOTE (#43).The errors raised by parse_args() (and
parse_args2()) are now of class “optparse_parse_error”.
When interactive() is FALSE we now print
out a usage string followed by a (less verbose) error message.
Throws a more informative error message for unknown short flags
when positional_arguments=TRUE. Thanks Greg Minshall for
bug report (#42).
formatter argument to OptionParser()
for a function to format the usage message (#30). By default uses the
new function IndentedHelpFormatter().
{optparse} also provides the new function
TitledHelpFormatter(). Thanks Ni Huang for suggestion.positional_arguments=TRUE. Thanks Greg Minshall for bug
report (#34).callback parameter of add_option /
make_option is not NULL then the default of
action is now "callback". Thanks Greg Minshall
for suggestion (#35).action=="callback" in the man
page for add_option and make_option. Thanks
Greg Minshall for bug report (#35).action=="callback" when
metavar==NULL (#29). Thanks Ni Huang for bug report.action=="callback" and
positional_argument==TRUE (#28). Thanks Ni Huang for bug
report.interactive() == FALSE and
print_help_and_exit == TRUE then optparse will
now call quit(status=0) instead of
quit(status=1) after printing the help message (this
matches behaviour of the python package).add_help_option=FALSE when defining an -h or
--help flag. Thanks Jeff P. Bruce for bug report.getopt requirement so that empty strings are
parsed correctly. Thanks Matthew Flickinger for bug report.add_help_option in
OptionParser set to FALSE. Thanks to Jeff
Bruce for bug report.parse_args now supports
convert_hyphens_to_underscores argument which converts any
hyphens to underscores when returning the list of optionsparse_args2 which
wraps parse_args with positional_arguments set
to TRUE and convert_hyphens_to_underscores set
to TRUE.optparse should no longer give any warnings when
options(warnPartialMatchArgs=TRUE). Thanks Rich FitzJohn
for patch.print_help no longer throws an error if we have a
default argument of length zero. Thanks Benjamin Tyner for bug
report.OptionParser and OptionParserOption S4
classes are now exported. Thanks Peter Humburg for patch.positional_arguments of function
parse_args now accepts one or two numeric values that
denote the minimum and maximum number of supported positional arguments.
Thanks Kirill Müller for patch.interactive() == TRUE then parse_args
will no longer quit(status=1) after printing a help message
but will instead throw an error. optparse will continue to
quit(status=1) after printing a help message for
non-interactive Rscripts unless
print_help_and_exit == FALSE.make_option argument type="numeric"
automatically cast to double. Previously users might have
received an error passing negative numbers if they accidentally
specified “numeric” instead of “double”.parse_args when we have options with no
short flag and positional_arguments=TRUE. Thanks Miroslav Posta for bug
report.description and epilogue arguments
to OptionParser to allow users to add more information to
generated help messages