feat: support xor/and groups for positional arguments#604
Open
toller892 wants to merge 1 commit into
Open
Conversation
Owner
|
Please add tests. |
Fixes alecthomas#255 Extend checkMissingFlags, checkXorDuplicates, checkAndMissing, and checkOverlappingXorAnd to include positional arguments in xor/and group validation. Error messages now use ShortSummary() to correctly display both flag (--flag) and positional arg names.
18bfd45 to
5d03973
Compare
Author
|
Tests added! I've added 3 new test cases covering xor/and with positional arguments:
The implementation was also improved: the xor/and validation now groups paths by command scope (root vs child commands) to correctly handle both flat structs and subcommands. All 2700+ existing tests pass. |
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.
Fixes #255
Problem
xorandandgroup validation only worked for flags, not positional arguments. Providing both a flag and a positional arg in the same xor group did not produce an error.Changes
checkMissingFlags,checkXorDuplicates, andcheckAndMissingto include positional arguments in xor/and group validationcheckOverlappingXorAndto also scan positional arguments for xor/and group membershipShortSummary()instead of hardcoded--%sformat, so they correctly display both flag names (--flag) and positional arg namesExample
Before:
run --defaults foo bar→ no errorAfter:
run --defaults foo bar→ error: "--defaults and args can't be used together"Tests
All existing tests pass. The fix is backward-compatible since positional args without xor/and tags are unaffected.