Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit de4e079

Browse files
committed
Issue26748: Enum classes should evaluate as True
2 parents 3d74976 + 5de67b1 commit de4e079

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
@@ -206,6 +206,12 @@ def __new__(metacls, cls, bases, classdict):
206206
enum_class.__new__ = Enum.__new__
207207
return enum_class
208208

209+
def __bool__(self):
210+
"""
211+
classes/types should always be True.
212+
"""
213+
return True
214+
209215
def __call__(cls, value, names=None, *, module=None, qualname=None, type=None, start=1):
210216
"""Either returns an existing member, or creates a new enum class.
211217

Lib/test/test_enum.py

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

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

0 commit comments

Comments
 (0)