Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Improve Fix and add test case as requested
  • Loading branch information
oscar-LT authored and ethanfurman committed Jun 22, 2022
commit 61ac2237263ce7141fc6c8bfe656aa8723bd19ba
3 changes: 2 additions & 1 deletion Lib/enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -1214,7 +1214,8 @@ def _generate_next_value_(name, start, count, last_values):
count: the number of existing members
last_value: the last value assigned or None
"""
for last_value in sorted(last_values, reverse=True):
numerical_last_values = [x for x in last_values if isinstance(x, int) or isinstance(x, float)]
for last_value in sorted(numerical_last_values, reverse=True):
try:
return last_value + 1
except TypeError:
Expand Down
12 changes: 12 additions & 0 deletions Lib/test/test_enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -3991,6 +3991,18 @@ def _generate_next_value_(name, start, count, last):
self.assertEqual(Color.red.value, 'pathological case')
self.assertEqual(Color.blue.value, 'blue')

def test_auto_with_aliases(self):
class Color(Enum):
red = auto()
blue = auto()
oxford = blue
crimson = red
green = auto()
self.assertIs(Color.crimson, Color.red)
self.assertIs(Color.oxford, Color.blue)
self.assertIsNot(Color.green, Color.red)
self.assertIsNot(Color.green, Color.blue)

def test_duplicate_auto(self):
class Dupes(Enum):
first = primero = auto()
Expand Down