diff --git a/Lib/enum.py b/Lib/enum.py index 04d8ec1fa872f88..725b0197e23279d 100644 --- a/Lib/enum.py +++ b/Lib/enum.py @@ -353,7 +353,7 @@ def __members__(cls): return MappingProxyType(cls._member_map_) def __repr__(cls): - return "" % cls.__name__ + return "" % (cls.__module__, cls.__qualname__) def __reversed__(cls): return (cls._member_map_[name] for name in reversed(cls._member_names_)) @@ -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 = [ @@ -711,10 +715,12 @@ 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_, ) @@ -722,13 +728,15 @@ def __repr__(self): 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]), ) diff --git a/Misc/NEWS.d/next/Library/2018-08-30-23-01-44.bpo-34443.faVxO4.rst b/Misc/NEWS.d/next/Library/2018-08-30-23-01-44.bpo-34443.faVxO4.rst new file mode 100644 index 000000000000000..4d2d281662a53d1 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-08-30-23-01-44.bpo-34443.faVxO4.rst @@ -0,0 +1 @@ +Change enum ``__repr__``s and ``__str__``s to use the fully qualified name.