Allow unrecognized options to be ignored #114
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a new member/argument
ignore_unrecognized_opts
toArgParseSettings
. When this is set to true (default is false, which keeps the existing behaviour), instead of throwing an error for unrecognized options, just skip them.The use case I have that motivated this is that I want to have separate
ArgParse
instances in different places in my code (one for all the time, another just for tests), which should ignore each others options.ignore_unrecognized_options = true
is not compatible with positional arguments, because there might be an ambiguity about whether arguments following the unrecognized option should belong to the option or the positional argument. It's possibly some cases could be handled (I haven't thought hard about it), but it seemed simplest to just error if there are any positional arguements - someone who wants a particular case to be handled more intelligently can implement the logic!The first commit adds some tests that errors are actually produced when an unrecognized option is passed - it might be worth cherry-picking that even if this feature is not wanted for some reason.