Extend UnknownFlags to UnknownFlagsHandling and introduce UnknownFlagsHandlingPassUnknownToArgs (#337)#440
Open
ikedam wants to merge 1 commit intospf13:masterfrom
Open
Conversation
…nFlagsHandlingPassUnknownToArgs` (spf13#337)
ikedam
commented
Aug 9, 2025
| if f.Parsed() { | ||
| t.Fatal("f.Parse() = true before Parse") | ||
| } | ||
| f.ParseErrorsAllowlist.UnknownFlagsHandling = UnknownFlagsHandlingPassUnknownToArgs |
Author
There was a problem hiding this comment.
This test code is same to https://github.com/spf13/pflag/pull/338/files#diff-7a7385a10188cdaa9ac18effc375607e65672f55084b8049b6d3f44a6ab70c51 except this line.
ikedam
commented
Aug 9, 2025
Comment on lines
+144
to
+152
| // UnknownFlagsHandlingErrorOnUnknown will return an error if an unknown flag is found | ||
| UnknownFlagsHandlingErrorOnUnknown UnknownFlagsHandling = iota | ||
| // UnknownFlagsHandlingIgnoreUnknown will ignore unknown flags and continue parsing rest of the flags | ||
| UnknownFlagsHandlingIgnoreUnknown | ||
| // UnknownFlagsHandlingPassUnknownToArgs will treat unknown flags as non-flag arguments. | ||
| // Combined shorthand flags mixed with known ones and unknown ones results | ||
| // combined flags only with unknown ones. | ||
| // E.g. -fghi results -gh if only `f` and `i` are known. | ||
| UnknownFlagsHandlingPassUnknownToArgs |
Author
There was a problem hiding this comment.
Reeeally long names...
I worry names like ErrorOnUnknown would cause name conflict.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Close #337
Alternative to #338.
FlagSet.ParseErrorsAllowlist.UnknownFlagsHandling=UnknownFlagsHandlingPassUnknownToArgsbehaves like this:--unknown-flagare unknownThis request deprecates
FlagSet.ParseErrorsAllowlist.UnknownFlagsand extends it toFlagSet.ParseErrorsAllowlist.UnknownFlagsHandling.FlagSet.ParseErrorsAllowlist.UnknownFlagsHandling = UnknownFlagsHandlingErrorOnUnknown(Default)FlagSet.ParseErrorsAllowlist.UnknownFlags = falseFlagSet.ParseErrorsAllowlist.UnknownFlagsHandling = UnknownFlagsHandlingIgnoreUnknownFlagSet.ParseErrorsAllowlist.UnknownFlags = trueFlagSet.ParseErrorsAllowlist.UnknownFlagsHandling=UnknownFlagsHandlingPassUnknownToArgs:Args()(described above)Backward compatibilities:
FlagSet.ParseErrorsAllowlist.UnknownFlagsHandlingis not set (UnknownFlagsHandlingErrorOnUnknown) andFlagSet.ParseErrorsAllowlist.UnknownFlags = true:FlagSet.ParseErrorsAllowlist.UnknownFlagsHandling = UnknownFlagsHandlingIgnoreUnknown