@@ -110,6 +110,10 @@ Module Contents
110
110
``KEEP `` which allows for more fine-grained control over how invalid values
111
111
are dealt with in an enumeration.
112
112
113
+ :class: `EnumDict `
114
+
115
+ A subclass of :class: `dict ` for use when subclassing :class: `EnumType `.
116
+
113
117
:class: `auto `
114
118
115
119
Instances are replaced with an appropriate value for Enum members.
@@ -152,6 +156,7 @@ Module Contents
152
156
153
157
.. versionadded :: 3.6 ``Flag``, ``IntFlag``, ``auto``
154
158
.. versionadded :: 3.11 ``StrEnum``, ``EnumCheck``, ``ReprEnum``, ``FlagBoundary``, ``property``, ``member``, ``nonmember``, ``global_enum``, ``show_flag_values``
159
+ .. versionadded :: 3.13 ``EnumDict``
155
160
156
161
---------------
157
162
@@ -821,7 +826,27 @@ Data Types
821
826
>>> KeepFlag(2**2 + 2**4)
822
827
<KeepFlag.BLUE|16: 20>
823
828
824
- .. versionadded :: 3.11
829
+ .. versionadded :: 3.11
830
+
831
+ .. class :: EnumDict
832
+
833
+ *EnumDict * is a subclass of :class: `dict ` that is used as the namespace
834
+ for defining enum classes (see :ref: `prepare `).
835
+ It is exposed to allow subclasses of :class: `EnumType ` with advanced
836
+ behavior like having multiple values per member.
837
+ It should be called with the name of the enum class being created, otherwise
838
+ private names and internal classes will not be handled correctly.
839
+
840
+ Note that only the :class: `~collections.abc.MutableMapping ` interface
841
+ (:meth: `~object.__setitem__ ` and :meth: `~dict.update `) is overridden.
842
+ It may be possible to bypass the checks using other :class: `!dict `
843
+ operations like :meth: `|= <object.__ior__> `.
844
+
845
+ .. attribute :: EnumDict.member_names
846
+
847
+ A list of member names.
848
+
849
+ .. versionadded :: 3.13
825
850
826
851
---------------
827
852
@@ -966,7 +991,6 @@ Utilities and Decorators
966
991
Should only be used when the enum members are exported
967
992
to the module global namespace (see :class: `re.RegexFlag ` for an example).
968
993
969
-
970
994
.. versionadded :: 3.11
971
995
972
996
.. function :: show_flag_values(value)
@@ -975,6 +999,7 @@ Utilities and Decorators
975
999
976
1000
.. versionadded :: 3.11
977
1001
1002
+
978
1003
---------------
979
1004
980
1005
Notes
0 commit comments