Skip to content

[3.11] [Enum] add whatsnew entries (GH-95455) #95620

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 3, 2022
Merged
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
43 changes: 43 additions & 0 deletions Doc/whatsnew/3.11.rst
Original file line number Diff line number Diff line change
Expand Up @@ -471,6 +471,49 @@ datetime
formats (barring only those that support fractional hours and minutes).
(Contributed by Paul Ganssle in :gh:`80010`.)

enum
----

* ``EnumMeta`` renamed to ``EnumType`` (``EnumMeta`` kept as alias).

* ``StrEnum`` added -- enum members are and must be strings.

* ``ReprEnum`` added -- causes only the ``__repr__`` to be modified, not the
``__str__`` nor the ``__format__``.

* ``FlagBoundary`` added -- controls behavior when invalid values are given to
a flag.

* ``EnumCheck`` added -- used by ``verify`` to ensure various constraints.

* ``verify`` added -- function to ensure given ``EnumCheck`` constraints.

* ``member`` added -- decorator to ensure given object is converted to an enum
member.

* ``nonmember`` added -- decorator to ensure given object is not converted to
an enum member.

* ``property`` added -- use instead of ``types.DynamicClassAttribute``.

* ``global_enum`` added -- enum decorator to adjust ``__repr__`` and ``__str__``
to show members in the global context -- see ``re.RegexFlag`` for an example.

* ``Flag`` enhancements: members support length, iteration, and containment
checks.

* ``Enum``/``Flag`` fixes: members are now defined before ``__init_subclass__``
is called; ``dir()`` now includes methods, etc., from mixed-in data types.

* ``Flag`` fixes: only primary values (power of two) are considered canonical
while composite values (3, 6, 10, etc.) are considered aliases; inverted
flags are coerced to their positive equivalent.

* ``IntEnum`` / ``IntFlag`` / ``StrEnum`` fixes: these now inherit from
``ReprEnum`` so the ``str()`` output now matches ``format()`` output,
which is the data types' (so both ``str(AnIntEnum.ONE)`` and
``format(AnIntEnum.ONE)`` is equal to ``'1'``).

fractions
---------

Expand Down