From fa3adbd462eb1be64c4417d75319c632324e821c Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Wed, 23 Feb 2022 04:55:16 +0300 Subject: [PATCH] Update `Enum` docs (#12238) After merging https://github.com/python/mypy/pull/11805 I found out that we are missing several new `Enum` features. This PR adds them to the docs. Refs https://github.com/python/mypy/pull/12026 Refs https://github.com/python/mypy/pull/12035 --- docs/source/literal_types.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/source/literal_types.rst b/docs/source/literal_types.rst index d5271b256bb2..c5df354ce678 100644 --- a/docs/source/literal_types.rst +++ b/docs/source/literal_types.rst @@ -378,7 +378,8 @@ Enums ----- Mypy has special support for :py:class:`enum.Enum` and its subclasses: -:py:class:`enum.IntEnum`, :py:class:`enum.Flag`, and :py:class:`enum.IntFlag`. +:py:class:`enum.IntEnum`, :py:class:`enum.Flag`, :py:class:`enum.IntFlag`, +and :py:class:`enum.StrEnum`. .. code-block:: python @@ -487,3 +488,14 @@ Extra checks: class Some(Enum): x = 1 x = 2 # E: Attempted to reuse member name "x" in Enum definition "Some" + +- Base classes have no conflicts and mixin types are correct. + + .. code-block:: python + + class WrongEnum(str, int, enum.Enum): + # E: Only a single data type mixin is allowed for Enum subtypes, found extra "int" + ... + + class MixinAfterEnum(enum.Enum, Mixin): # E: No base classes are allowed after "enum.Enum" + ...