Support enum square bracket notation
Open
Nobody has claimed this yet.
feature
priority-2-low
topic-enum
- Dominant language
- Python
- Stars
- 20.6k
- Forks
- 3.3k
- PR merge metrics
- PR metrics pending
Description
Enums can not always be accessed with .-notation, like in the example below.
import enum
import operator
OperatorEnum = enum.Enum(
"OperatorEnum",
{"==": operator.eq, ">=": operator.ge, "<=": operator.le, ">": operator.gt, "<": operator.lt},
)
OperatorEnum["foo"] # pass, but should throw an error?
OperatorEnum.foo # Fails
It would be great if OperatorEnum["foo"] is caught by mypy.
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 reported enum example with mypy and inspect the checker entry point for enum member access and subscription expressions. Done means mypy reports an error for OperatorEnum["foo"] while preserving valid enum access behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100