-
Notifications
You must be signed in to change notification settings - Fork 243
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added draft chapter to typing spec for enumerations. #1591
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added some corrections and suggestions.
Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
docs/spec/enums.rst
Outdated
consistency. That is, if the type is assigned to a variable, the name of | ||
the variable must match the name of the enum class:: | ||
|
||
WrongName = Enum('Color', 'RED GREEN BLUE') # Type checker error |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure this should be an error, commented on Discuss
…or enums declared with functional syntax.
… an attribute is a member.
@JelleZijlstra, did mypy 1.9 fix the issue in stubtest that was blocking us from making the necessary changes in typeshed for enums? If not, is that something that could be prioritized for mypy 1.10? |
…'t apply to enum classes that derive from `enum.Flags` because these classes support enum members with values of zero and all combinations of the defined flags.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very well written, thank you!
Co-authored-by: Hashem <Hnasar@users.noreply.github.com>
…ther an attribute is an enum member. Attributes with private (mangled) names are exempt.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for writing this, I've never actually known enum behavior as well as I should and learned quite a few things from reading.
reveal_type(Color["RED"]) # Revealed type is 'Literal[Color.RED]' (or 'Color') | ||
reveal_type(Color(3)) # Revealed type is 'Literal[Color.BLUE]' (or 'Color') | ||
|
||
Unlike most Python classes, Calling an enum class does not invoke its constructor. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unlike most Python classes, Calling an enum class does not invoke its constructor. | |
Unlike most Python classes, calling an enum class does not invoke its constructor. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, thanks for writing this.
This is the same set of changes as PR python#1591. The CI script that enforces CLA signing was confused, so it didn't permit merging the original PR.
I'm not sure how to fix the CLA Signing issue with this PR, so I'm going to close it and submit a fresh PR. See #1759. |
This is the same set of changes as PR #1591. The CI script that enforces CLA signing was confused, so it didn't permit merging the original PR.
No description provided.