We now support the following ArgumentParser()
methods:
format_help()
format_usage()
parse_intermixed_args()
(#45)parse_known_intermixed_args()
(#45)set_defaults()
(#43). Suggestion of @oliverbothe.When an error is thrown by
ArgumentParser()$parse_args()
and
interactive()
is FALSE
and
getOption("error")
is NULL
then we now use a
quieter default error handler that doesn’t output a trailing “Execution
halted”.
add_argument()
now allows “numeric” as an alias for
“double” for the type
argument (#42). Suggestion of @dariober.
ArgumentParser()
now handles
description
arguments with newlines in them (#44). Thanks
Arthur Gilly (@agilly)
for bug report.
The errors raised by ArgumentParser()$parse_args()
are now of class “argparse_parse_error”.
They are now less verbose when interactive()
is
FALSE
(#40).
There may still be a trailing “Execution halted” line output by R’s
default error handler (when interactive()
is
FALSE
). This can be silenced by setting a new error handler
near the top of your Rscript e.g.
if (!interactive())
options(error=function(e) quit('no', status = 1, runLast = FALSE))
add_argument
now uses as.logical()
logic to cast variables to logical values if
type = "logical"
and action = "store"
or
action = "append"
instead of using Python’s
bool()
logic (#39).
type = "logical"
and action = "store"
suggesting users instead use action = "store_true"
or
action = "store_false"
.action == "append"
and a non-NULL
default
value (#35). Thanks @miker985 for bug report.parse_known_args()
(#34).
Suggestion of David Lacalle Castillo (@WaterKnight1998).formatter_class
argument (as a
string) to a subparsers$add_parser()
method. Thanks Regina
(@oyxf) for bug
report.ArgumentParser()
.ArgumentParser()
when using Python 3.9. Thanks Kurt Hornik
for bug report.add_help
argument in
ArgumentParser
. Thanks George Chlipala for bug report.getopt
as a dependency.R6
classes instead of proto
classes (#25).argparse
code
but I did make private the previously public python_code
element of the object returned by ArgumentParser()
.add_subparsers
(#14). Suggestion of
Zebulun Arendsee.add_argument_group
(#26).add_mutually_exclusive_group
(#23).proto
dependency.type='integer'
in
add_argument
. Thanks Dominik Mueller for bug report and
suggested solution.proto
has been moved from
Depends
to Imports
in
DESCRIPTION
. We now use jsonlite
package
instead of rjson
to parse JSON
.ArgumentParser()
Suggestion of Alex
Reinhart.action='version'
. Suggestion of Dario Beraldi.required=FALSE
in
add_argument
. Thanks Claire D. McWhite for bug report.metavar
argument of add_argument
. Thanks Paul Newell for bug report
and a patch.add_argument
now throws a warning recommending using
action “store_true” or “store_false” if type set to “logical” and action
set to “store”.NULL
default in
add_argument
.NULL
default by
not setting any default at all. Suggestion of Hyunsoo Kim.choices
argument in
parser$add_argument
. Thanks Christopher Small for
report/request.formatter_class
argument in
ArgumentParser
. Thanks Costas Bouyioukos for
report/request.findpython::find_python_cmd
which is a little bit more
robust than the previous argparse::find_python_cmd
.interactive() == TRUE
then parse_args
will no longer quit(status=1)
after printing a help message
but will instead throw an error. argparse
will continue to
quit(status=1)
after printing a help message for
non-interactive Rscripts.parser$add_argument
for case when we specify
a default vector instead of scalar. Thanks Martin Diehl for bug
report.find_python_cmd
will now also look for a
python2.7
binary.