Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bpo-42901: [Enum] move member creation to
__set_name__
(pythonGH-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.
- Loading branch information