]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-100458: Clarify Enum.__format__() change of mixed-in types in the whatsnew/3.11...
authorAnže Pečar <anze@pecar.me>
Mon, 1 May 2023 19:49:54 +0000 (00:49 +0500)
committerGitHub <noreply@github.com>
Mon, 1 May 2023 19:49:54 +0000 (12:49 -0700)
Co-authored-by: JosephSBoyle <48555120+JosephSBoyle@users.noreply.github.com>
Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
Doc/whatsnew/3.11.rst

index 10fcfb6a0b56396b2bd683d70283b3650a1c1bb5..687719a260a61c3f793a9fa7b476c696868b5e0d 100644 (file)
@@ -666,19 +666,11 @@ enum
   for :meth:`~object.__str__` and :meth:`~object.__format__`
   (used by :func:`str`, :func:`format` and :term:`f-string`\s).
 
-* Changed :class:`~enum.IntEnum`, :class:`~enum.IntFlag` and :class:`~enum.StrEnum`
-  to now inherit from :class:`~enum.ReprEnum`,
-  so their :func:`str` output now matches :func:`format`
-  (both ``str(AnIntEnum.ONE)`` and ``format(AnIntEnum.ONE)`` return ``'1'``,
-  whereas before ``str(AnIntEnum.ONE)`` returned ``'AnIntEnum.ONE'``.
-
-* Changed :meth:`Enum.__format__() <enum.Enum.__format__>`
-  (the default for :func:`format`, :meth:`str.format` and :term:`f-string`\s)
-  of enums with mixed-in types (e.g. :class:`int`, :class:`str`)
-  to also include the class name in the output, not just the member's key.
-  This matches the existing behavior of :meth:`enum.Enum.__str__`,
-  returning e.g. ``'AnEnum.MEMBER'`` for an enum ``AnEnum(str, Enum)``
-  instead of just ``'MEMBER'``.
+* Changed :meth:`Enum.__format__() <enum.Enum.__format__>` (the default for
+  :func:`format`, :meth:`str.format` and :term:`f-string`\s) to always produce
+  the same result as :meth:`Enum.__str__()`:  for enums inheriting from
+  :class:`~enum.ReprEnum` it will be the member's value; for all other enums
+  it will be the enum and member name (e.g. ``Color.RED``).
 
 * Added a new *boundary* class parameter to :class:`~enum.Flag` enums
   and the :class:`~enum.FlagBoundary` enum with its options,