Skip to content

Commit 0a4dd5b

Browse files
committed
handle values of None or tuples
1 parent 9d0b20a commit 0a4dd5b

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

Lib/enum.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -550,12 +550,23 @@ def __new__(metacls, cls, bases, classdict, *, boundary=None, _simple=False, **k
550550
inverted = []
551551
for n in member_names:
552552
p = classdict[n]
553-
if p.value < 0:
554-
inverted.append(p)
555-
else:
556-
bits |= p.value
553+
if isinstance(p.value, int):
554+
if p.value < 0:
555+
inverted.append(p)
556+
else:
557+
bits |= p.value
558+
elif p.value is None:
559+
pass
560+
elif isinstance(p.value, tuple) and p.value and isinstance(p.value[0], int):
561+
if p.value[0] < 0:
562+
inverted.append(p)
563+
else:
564+
bits |= p.value[0]
557565
for p in inverted:
558-
p.value = bits & p.value
566+
if isinstance(p.value, int):
567+
p.value = bits & p.value
568+
else:
569+
p.value = (bits & p.value[0], ) + p.value[1:]
559570
try:
560571
classdict['_%s__in_progress' % cls] = True
561572
enum_class = super().__new__(metacls, cls, bases, classdict, **kwds)

0 commit comments

Comments
 (0)