stubgen generates bad signatures when mixing historical positional-only names and keyword-only parameters
Open
Nobody has claimed this yet.
bug
topic-stubgen
- Dominant language
- Python
- Stars
- 20.6k
- Forks
- 3.3k
- PR merge metrics
- PR metrics pending
Description
Bug Report
Given:
def f1(*, __kw): pass
def f2(x, /, *, __kw): pass
stubgen generates:
def f1(*, /, __kw) -> None: ... # invalid syntax
def f2(x, *, /, __kw) -> None: ... # invalid syntax
This sort of signature seems to be permitted by the typing spec based on this conformance test.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running stubgen against the two function definitions in the report and compare the generated signatures with valid Python syntax. Review the historical positional-only conformance case linked in the issue, then add regression coverage showing that both examples produce valid stubs without the misplaced slash.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100