Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
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
30 changes: 19 additions & 11 deletions Lib/enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ def __members__(cls):
return MappingProxyType(cls._member_map_)

def __repr__(cls):
return "<enum %r>" % cls.__name__
return "<enum '%s.%s'>" % (cls.__module__, cls.__qualname__)

def __reversed__(cls):
return (cls._member_map_[name] for name in reversed(cls._member_names_))
Expand Down Expand Up @@ -556,11 +556,15 @@ def _missing_(cls, value):
raise ValueError("%r is not a valid %s" % (value, cls.__name__))

def __repr__(self):
return "<%s.%s: %r>" % (
self.__class__.__name__, self._name_, self._value_)
return "<%s.%s.%s: %r>" % (self.__class__.__module__,
self.__class__.__qualname__,
self._name_,
self._value_)

def __str__(self):
return "%s.%s" % (self.__class__.__name__, self._name_)
return "%s.%s.%s" % (self.__class__.__module__,
self.__class__.__qualname__,
self._name_)

def __dir__(self):
added_behavior = [
Expand Down Expand Up @@ -711,24 +715,28 @@ def __contains__(self, other):
def __repr__(self):
cls = self.__class__
if self._name_ is not None:
return '<%s.%s: %r>' % (cls.__name__, self._name_, self._value_)
return '<%s.%s.%s: %r>' % (
cls.__module__, cls.__qualname__, self._name_, self._value_)
members, uncovered = _decompose(cls, self._value_)
return '<%s.%s: %r>' % (
cls.__name__,
return '<%s.%s.%s: %r>' % (
cls.__module__,
cls.__qualname__,
'|'.join([str(m._name_ or m._value_) for m in members]),
self._value_,
)

def __str__(self):
cls = self.__class__
if self._name_ is not None:
return '%s.%s' % (cls.__name__, self._name_)
return '%s.%s.%s' % (cls.__module__, cls.__qualname__, self._name_)
members, uncovered = _decompose(cls, self._value_)
if len(members) == 1 and members[0]._name_ is None:
return '%s.%r' % (cls.__name__, members[0]._value_)
return '%s.%s.%r' % (
cls.__module__, cls.__qualname__, members[0]._value_)
else:
return '%s.%s' % (
cls.__name__,
return '%s.%s.%s' % (
cls.__module__,
cls.__qualname__,
'|'.join([str(m._name_ or m._value_) for m in members]),
)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Change enum ``__repr__``s and ``__str__``s to use the fully qualified name.