`Y011` doesn't account for module-qualified values
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 83
- Forks
- 22
- PR merge metrics
- No merged PRs in 30d
Description
Y011 appears to behave inconsistently when assigning a default value using = some_value or = module.some_value. In the first case it raises an error, while in the second it does not.
For example, this can be reproduced when trying to set a default value for email.parser.Parser.__init__ in typeshed (that's how I encountered it):
# error appears:
from email._policybase import compat32
def __init__(..., policy = compat32) ...
# error doesn't appear:
from email import _policybase
def __init__(..., policy = _policybase.compat32) ...
As far as I know, the documentation does not mention that these two cases should be treated differently, so I wanted to report it in case this behavior is unintended.
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 with the Y011 entry in ERRORCODES.md and trace the rule's handling of default values, using the two examples in the issue as reproductions. Check the typeshed email/parser.pyi context linked in the report. Done means equivalent unqualified and module-qualified defaults are handled consistently, with regression coverage for both forms.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100