stubtest: problem with redefined attributes
Open
Nobody has claimed this yet.
bug
topic-stubtest
- Dominant language
- Python
- Stars
- 20.6k
- Forks
- 3.3k
- PR merge metrics
- PR metrics pending
Description
Bug Report
See python/typeshed#5545 and this example CI run for reference. It seems that mypy internally renames redefined attributes. For example:
# a.pyi
def foo() -> str: ...
# b.pyi
from a import *
def foo() -> int: ... # type: ignore
It seems that internally b.foo gets renamed to b.foo-redefined and a.foo keeps the name b.foo while checking b.pyi. This leads to stubtest issuing two errors:
b.foo-redefinition is not present at runtimeb.foo is inconsistent
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 reproducing the issue with the a.pyi and b.pyi examples, then compare the two stubtest errors with the referenced CI run. Trace how stubtest handles the redefined names; done means it no longer reports both the renamed redefinition and the inconsistent original as separate errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devtools, testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100