summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/enum.py2
-rw-r--r--Lib/test/test_enum.py2
-rw-r--r--Misc/NEWS.d/next/Library/2022-09-24-18-56-23.gh-issue-96865.o9WUkW.rst9
3 files changed, 11 insertions, 2 deletions
diff --git a/Lib/enum.py b/Lib/enum.py
index c3aafc2..a66c344 100644
--- a/Lib/enum.py
+++ b/Lib/enum.py
@@ -1269,7 +1269,7 @@ class FlagBoundary(StrEnum):
STRICT, CONFORM, EJECT, KEEP = FlagBoundary
-class Flag(Enum, boundary=STRICT):
+class Flag(Enum, boundary=CONFORM):
"""
Support for flags
"""
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index ad421f8..f50017d 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -2927,7 +2927,7 @@ class OldTestFlag(unittest.TestCase):
self.assertEqual(bool(f.value), bool(f))
def test_boundary(self):
- self.assertIs(enum.Flag._boundary_, STRICT)
+ self.assertIs(enum.Flag._boundary_, CONFORM)
class Iron(Flag, boundary=STRICT):
ONE = 1
TWO = 2
diff --git a/Misc/NEWS.d/next/Library/2022-09-24-18-56-23.gh-issue-96865.o9WUkW.rst b/Misc/NEWS.d/next/Library/2022-09-24-18-56-23.gh-issue-96865.o9WUkW.rst
new file mode 100644
index 0000000..b054fde
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-09-24-18-56-23.gh-issue-96865.o9WUkW.rst
@@ -0,0 +1,9 @@
+fix Flag to use boundary CONFORM
+
+This restores previous Flag behavior of allowing flags with non-sequential values to be combined; e.g.
+
+ class Skip(Flag):
+ TWO = 2
+ EIGHT = 8
+
+ Skip.TWO | Skip.EIGHT -> <Skip.TWO|EIGHT: 10>