Skip to content

Conversation

@johnomotani
Copy link

Adds a new member/argument ignore_unrecognized_opts to ArgParseSettings. 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.

Only works when there are no positional arguments. Positional arguments
would lead to possible ambiguity over what to do with arguments after
ignored option.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant