Preserve defaults for positional-only parameters - #700
Open
Shubham-Padkonde wants to merge 1 commit into
Open
Shubham-Padkonde wants to merge 1 commit into
Shubham-Padkonde wants to merge 1 commit into
Conversation
Collect default values for both positional-only and positional-or-keyword parameters. Add six regression tests covering built-ins, bound methods, mixed signatures, omitted defaults, overrides, and required arguments. Prepared with Codex assistance. Local validation on Python 3.12.14: 279 tests passed; pylint on changed modules passed with 10.00/10.
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
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.
Python Fire drops default values for positional-only parameters, incorrectly treating optional arguments as required.
Reproducer:
Before this fix, Fire reports that fillchar is required. Expected: ' hi'. dict.get and user-defined positional-only defaults are also affected.
The fix collects defaults for both positional parameter kinds in signature order. Six regression tests cover bound and unbound built-ins, mixed signatures, omitted defaults, explicit overrides, and required arguments. The mixed-signature test remains parseable on Python 3.7.
Validation on Python 3.12.14: 279 tests passed; pylint on changed modules: 10.00/10; git diff --check passed. Four of the six new tests failed before the implementation change. Other Python versions and upstream CI have not yet run.
Prepared and validated with Codex assistance. The integration rejected the standalone issue submission requested by CONTRIBUTING.md with HTTP 403, so the reproducer is included here.