Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow unrecognized options to be ignored #114

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

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