mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
gh-101541: [Enum] create flag psuedo-member without calling original __new__ (GH-101590)
(cherry picked from commit ef7c2bfcf1
)
Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
This commit is contained in:
parent
6ae80323df
commit
cf8973c638
3 changed files with 43 additions and 3 deletions
|
@ -1430,12 +1430,11 @@ class Flag(Enum, boundary=CONFORM):
|
|||
% (cls.__name__, value, unknown, bin(unknown))
|
||||
)
|
||||
# normal Flag?
|
||||
__new__ = getattr(cls, '__new_member__', None)
|
||||
if cls._member_type_ is object and not __new__:
|
||||
if cls._member_type_ is object:
|
||||
# construct a singleton enum pseudo-member
|
||||
pseudo_member = object.__new__(cls)
|
||||
else:
|
||||
pseudo_member = (__new__ or cls._member_type_.__new__)(cls, value)
|
||||
pseudo_member = cls._member_type_.__new__(cls, value)
|
||||
if not hasattr(pseudo_member, '_value_'):
|
||||
pseudo_member._value_ = value
|
||||
if member_value:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue