Skip to content

Latest commit

 

History

History
170 lines (127 loc) · 8.1 KB

File metadata and controls

170 lines (127 loc) · 8.1 KB

optparse 1.8.2

New features

  • 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).

Bug fixes and minor improvements

  • 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.

optparse 1.7.5

  • We no longer coerce the type of an option default to match that of its type argument when action = "callback". Thanks husheng (@hs3434) for bug report (#47).

optparse 1.7.4

  • Revises vignette engine specification in the DESCRIPTION to suppress new CRAN check NOTE (#43).

optparse 1.7.3

  • 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).

optparse 1.7.1

  • Add a 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.

optparse 1.6.6

  • Throws an error for unknown short flags and long flags when positional_arguments=TRUE. Thanks Greg Minshall for bug report (#34).
  • If the callback parameter of add_option / make_option is not NULL then the default of action is now "callback". Thanks Greg Minshall for suggestion (#35).
  • Better documentation of action=="callback" in the man page for add_option and make_option. Thanks Greg Minshall for bug report (#35).

optparse 1.6.4

  • Fixes bug in printing help for action=="callback" when metavar==NULL (#29). Thanks Ni Huang for bug report.
  • Throws an error when passed short flags more than one letter long (#32). Thanks Gautier Richard for bug report.

optparse 1.6.2

  • Fixs a parsing bug when action=="callback" and positional_argument==TRUE (#28). Thanks Ni Huang for bug report.

optparse 1.6.1

  • Improves accuracy of README (#27). Thanks Alex Penson for bug report.

optparse 1.6.0

  • Supports callback actions (#26). Thanks Gyu Jin Choi for patch.
  • If 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).
  • Better error message when forgetting to set add_help_option=FALSE when defining an -h or --help flag. Thanks Jeff P. Bruce for bug report.
  • Increment getopt requirement so that empty strings are parsed correctly. Thanks Matthew Flickinger for bug report.

optparse 1.4.4

  • Minor documentation fixes. Thanks J. J. Ramsey and Daeyoung Kim for bug reports.
  • Fix bug when 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 options
  • Now includes the convenience function parse_args2 which wraps parse_args with positional_arguments set to TRUE and convert_hyphens_to_underscores set to TRUE.

optparse 1.3.2

  • 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.

optparse 1.3.0

  • OptionParser and OptionParserOption S4 classes are now exported. Thanks Peter Humburg for patch.

optparse 1.2.0

  • Parameter 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.
  • If 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.
  • In 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".
  • Bug fixed in printing usage message for options with default value of NA and a help string including "%default". Thanks Stefan Seemayer for bug report and patch.

optparse 1.0.2

  • Project website moved to https://github.com/trevorld/optparse
  • We now replace all occurrences of %prog in usage message (including description and epilogue). Previously we would only replace one occurrence and didn't make replacements in description and epilogue.
  • Fix bug in parse_args when we have options with no short flag and positional_arguments=TRUE. Thanks Miroslav Posta for bug report.

optparse 1.0.0

  • Added description and epilogue arguments to OptionParser to allow users to add more information to generated help messages
  • Slightly alters the generated usage string to match more closely what the Python module does
  • No longer exports S4 classes that represent OptionParser and OptionParserOption
  • Now requires package getopt (>= 1.19) which has also been moved to Imports field from Depends field in DESCRIPTION
  • Now also Suggests stringr package in DESCRIPTION