Skip to content

Commit c314e60

Browse files
authored
bpo-42901: [Enum] move member creation to __set_name__ (GH-24196)
`type.__new__` calls `__set_name__` and `__init_subclass__`, which means that any work metaclasses do after calling `super().__new__()` will not be available to those two methods. In particular, `Enum` classes that want to make use of `__init_subclass__` will not see any members. Almost all customization is therefore moved to before the `type.__new__()` call, including changing all members to a proto member descriptor with a `__set_name__` that will do the final conversion of a member to be an instance of the `Enum` class.
1 parent c47c78b commit c314e60

File tree

4 files changed

+207
-110
lines changed

4 files changed

+207
-110
lines changed

0 commit comments

Comments
 (0)