diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2022-06-17 03:56:20 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-17 03:56:20 (GMT) |
commit | 3fbf5c6427c260eab41c37f6eb7f66b79ab4ea88 (patch) | |
tree | 19afb4bcfe12aef6fb39c52496479d87772a3c0e /Lib/enum.py | |
parent | 74561095d906c2ca8ca8f41f22cb23a9e5b58954 (diff) | |
download | cpython-3fbf5c6427c260eab41c37f6eb7f66b79ab4ea88.zip cpython-3fbf5c6427c260eab41c37f6eb7f66b79ab4ea88.tar.gz cpython-3fbf5c6427c260eab41c37f6eb7f66b79ab4ea88.tar.bz2 |
gh-93820: Fix copy() regression in enum.Flag (GH-93876) (#93886)
GH-26658 introduced a regression in copy / pickle protocol for combined
`enum.Flag`s. `copy.copy(re.A | re.I)` would fail with
`AttributeError: ASCII|IGNORECASE`.
`enum.Flag` now has a `__reduce_ex__()` method that reduces flags by
combined value, not by combined name.
(cherry picked from commit 05b32c1c796d6c80479756ae898f488eac5f4f71)
Co-authored-by: Christian Heimes <christian@python.org>
Co-authored-by: Christian Heimes <christian@python.org>
Diffstat (limited to 'Lib/enum.py')
-rw-r--r-- | Lib/enum.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Lib/enum.py b/Lib/enum.py index fe521b1..091acb3 100644 --- a/Lib/enum.py +++ b/Lib/enum.py @@ -1372,6 +1372,9 @@ class Flag(Enum, boundary=STRICT): Support for flags """ + def __reduce_ex__(self, proto): + return self.__class__, (self._value_, ) + _numeric_repr_ = repr def _generate_next_value_(name, start, count, last_values): |