Skip to content

Commit 0fe7978

Browse files
committed
Issue26748: Enum classes should evaluate as True
2 parents 21a663e + de4e079 commit 0fe7978

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

Lib/enum.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,12 @@ def __new__(metacls, cls, bases, classdict):
212212
enum_class.__new__ = Enum.__new__
213213
return enum_class
214214

215+
def __bool__(self):
216+
"""
217+
classes/types should always be True.
218+
"""
219+
return True
220+
215221
def __call__(cls, value, names=None, *, module=None, qualname=None, type=None, start=1):
216222
"""Either returns an existing member, or creates a new enum class.
217223

Lib/test/test_enum.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,19 @@ def spam(cls):
254254
with self.assertRaises(AttributeError):
255255
del Season.SPRING.name
256256

257+
def test_bool_of_class(self):
258+
class Empty(Enum):
259+
pass
260+
self.assertTrue(bool(Empty))
261+
262+
def test_bool_of_member(self):
263+
class Count(Enum):
264+
zero = 0
265+
one = 1
266+
two = 2
267+
for member in Count:
268+
self.assertTrue(bool(member))
269+
257270
def test_invalid_names(self):
258271
with self.assertRaises(ValueError):
259272
class Wrong(Enum):

0 commit comments

Comments
 (0)