Saurav Singh 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								6a1c93af80 
								
							 
						 
						
							
							
								
								gh-136764: improve comment in enum.verify.__call__ (GH-136774)  
							
							
							
						 
						
							2025-07-19 05:55:02 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								49365bd110 
								
							 
						 
						
							
							
								
								gh-107538: [Enum] fix handling of inverted/negative values (GH-132273)  
							
							... 
							
							
							
							* Fix flag mask inversion when unnamed flags exist.
For example:
    class Flag(enum.Flag):
        A = 0x01
        B = 0x02
        MASK = 0xff
    ~Flag.MASK is Flag(0)
* EJECT and KEEP flags (IntEnum is KEEP) use direct value.
* correct Flag inversion to only flip flag bits
IntFlag will flip all bits -- this only makes a difference in flag sets with
missing values.
* correct negative assigned values in flags
negative values are no longer used as-is, but become inverted; i.e.
    class Y(self.enum_type):
        A = auto()
        B = auto()
        C = ~A        # aka ~1 aka 0b1 110 (from enum.bin()) aka 6
        D = auto()
    assert Y.C. is Y.B|Y.D 
							
						 
						
							2025-07-10 16:49:09 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								22bc953aa9 
								
							 
						 
						
							
							
								
								gh-132684: [Enum] only call _missing_ in __contains__ for Flags (GH-132790)  
							
							... 
							
							
							
							Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> 
							
						 
						
							2025-04-24 23:13:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Inada Naoki 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e2b35ee229 
								
							 
						 
						
							
							
								
								enum: remove unused function ( #132044 )  
							
							
							
						 
						
							2025-04-08 09:23:48 +09:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								17d06aeb54 
								
							 
						 
						
							
							
								
								gh-131045: [Enum] fix flag containment checks when using values (GH-131053)  
							
							... 
							
							
							
							Check would fail if value would create a pseudo-member, but that member
had not yet been created.  We now attempt to create a pseudo-member for
a passed-in value first.
Co-authored-by: Tomas R. <tomas.roun8@gmail.com> 
							
						 
						
							2025-03-12 12:10:47 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Petr Viktorin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2a66dd33df 
								
							 
						 
						
							
							
								
								gh-112328: Make EnumDict usable on its own and document it (GH-123669)  
							
							... 
							
							
							
							Co-authored-by: Rafi <rafi.promit@gmail.com>
Co-authored-by: Sviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>
Co-authored-by: Ethan Furman <ethan@stoneleaf.us> 
							
						 
						
							2024-12-20 11:40:58 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Stephen Morton 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								c14db20275 
								
							 
						 
						
							
							
								
								gh-128080: remove unnecessary __init__ method from Enum (GH-128081)  
							
							... 
							
							
							
							remove unnecessary __init__ method from Enum
Co-authored-by: Peter Bierma <zintensitydev@gmail.com> 
							
						 
						
							2024-12-19 14:07:17 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mario Šaško 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								34653bba64 
								
							 
						 
						
							
							
								
								gh-125259: Fix error notes removal in enum initialization (GH-125647)  
							
							
							
						 
						
							2024-10-22 13:42:22 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								aaed91cabc 
								
							 
						 
						
							
							
								
								gh-125710: [Enum] fix hashable<->nonhashable comparisons for member values (GH-125735)  
							
							
							
						 
						
							2024-10-22 11:04:00 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sergey B Kirpichev 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								eafd14fbe0 
								
							 
						 
						
							
							
								
								gh-116110: remove extra processing for the __signature__ attribute (GH-116234)  
							
							... 
							
							
							
							This is an alternative to GH-100168. 
							
						 
						
							2024-10-08 12:36:03 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									algonell 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								9017b95ff2 
								
							 
						 
						
							
							
								
								Fix typos ( #123775 )  
							
							
							
						 
						
							2024-09-09 14:58:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Xie Yanbo 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								b6c80e21c7 
								
							 
						 
						
							
							
								
								Fix typos in comments and docstring ( #122720 )  
							
							... 
							
							
							
							Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> 
							
						 
						
							2024-08-07 07:39:16 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									chrysn 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								1e428426c8 
								
							 
						 
						
							
							
								
								gh-118650: Exclude _repr_* methods from Enum's _sunder_ reservation (GH-118651)  
							
							
							
						 
						
							2024-05-07 12:35:51 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								153b3f7530 
								
							 
						 
						
							
							
								
								gh-118465: Add __firstlineno__ attribute to class (GH-118475)  
							
							... 
							
							
							
							It is set by compiler with the line number of the first line of
the class definition. 
							
						 
						
							2024-05-06 12:02:37 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e5521bcca9 
								
							 
						 
						
							
							
								
								gh-117663: [Enum] fix _simple_enum's detection of aliases (GH-117664)  
							
							
							
						 
						
							2024-04-09 11:31:07 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Irit Katriel 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								79be75735c 
								
							 
						 
						
							
							
								
								gh-115775: Compiler adds __static_attributes__ field to classes ( #115913 )  
							
							
							
						 
						
							2024-03-26 15:18:17 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								06e29a224f 
								
							 
						 
						
							
							
								
								gh-116600: [Enum] fix global Flag repr (GH-116615)  
							
							... 
							
							
							
							* and fix global flag repr
* Update Misc/NEWS.d/next/Library/2024-03-11-12-11-10.gh-issue-116600.FcNBy_.rst
Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru> 
							
						 
						
							2024-03-11 15:41:53 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3c0dcef980 
								
							 
						 
						
							
							
								
								gh-116040: [Enum] fix test_empty_names test (GH-116508)  
							
							... 
							
							
							
							* and fix _not_given usage 
							
						 
						
							2024-03-11 13:42:01 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								13ffd4bd9f 
								
							 
						 
						
							
							
								
								gh-116040: [Enum] fix by-value calls when second value is falsey; e.g. Cardinal(1, 0) (GH-116072)  
							
							
							
						 
						
							2024-03-07 13:30:26 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3ea78fd5bc 
								
							 
						 
						
							
							
								
								gh-115821: [Enum] better error message for calling super().__new__() (GH-116063)  
							
							... 
							
							
							
							docs now state to not call super().__new__
if super().__new__ is called, a better error message is now used 
							
						 
						
							2024-02-28 15:17:49 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason Zhang 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								c2cb31bbe1 
								
							 
						 
						
							
							
								
								gh-115539: Allow enum.Flag to have None members (GH-115636)  
							
							
							
						 
						
							2024-02-19 14:36:11 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								ff7588b729 
								
							 
						 
						
							
							
								
								gh-114071: [Enum] update docs and code for tuples/subclasses (GH-114871)  
							
							... 
							
							
							
							Update documentation with `__new__` and `__init__` entries.
Support use of `auto()` in tuple subclasses on member assignment lines.  Previously, auto() was only supported on the member definition line either solo or as part of a tuple:
    RED = auto()
    BLUE = auto(), 'azul'
However, since Python itself supports using tuple subclasses where tuples are expected, e.g.:
    from collections import namedtuple
    T = namedtuple('T', 'first second third')
    def test(one, two, three):
        print(one, two, three)
    test(*T(4, 5, 6))
    # 4 5 6
it made sense to also support tuple subclasses in enum definitions. 
							
						 
						
							2024-02-04 07:22:55 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4c7e09d012 
								
							 
						 
						
							
							
								
								gh-114149: [Enum] revert  #114160  and add more tuple-subclass tests (GH-114215)  
							
							... 
							
							
							
							This reverts commit 05e142b154 
							
						 
						
							2024-01-17 16:31:00 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								33b47a2c28 
								
							 
						 
						
							
							
								
								gh-114149: [Enum] fix tuple subclass handling when using custom __new__ (GH-114160)  
							
							
							
						 
						
							2024-01-17 09:47:11 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								de6bca9564 
								
							 
						 
						
							
							
								
								gh-112328: [Enum] Make some private attributes public. (GH-112514)  
							
							... 
							
							
							
							* [Enum] Make some private attributes public.
- ``_EnumDict`` --> ``EnumDict``
- ``EnumDict._member_names`` --> ``EnumDict.member_names``
- ``Enum._add_alias_``
- ``Enum._add_value_alias_``
---------
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Nikita Sobolev <mail@sobolevn.me> 
							
						 
						
							2023-12-05 08:27:36 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f9e6ce0395 
								
							 
						 
						
							
							
								
								[Enum] update class creation for RuntimeError changes (GH-111815)  
							
							
							
						 
						
							2023-11-28 20:40:12 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikita Sobolev 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								c4dc5a6ae8 
								
							 
						 
						
							
							
								
								gh-111181: Fix enum doctests (GH-111180)  
							
							... 
							
							
							
							Co-authored-by: Ethan Furman <ethan@stoneleaf.us> 
							
						 
						
							2023-10-30 12:56:29 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Pieter Eendebak 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								a77180e663 
								
							 
						 
						
							
							
								
								gh-110905: [Enum] minor fixes and cleanup (GH-110906)  
							
							
							
						 
						
							2023-10-16 13:37:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								51863b7d6e 
								
							 
						 
						
							
							
								
								gh-109653: Improve enum import time by avoiding import of functools (GH-109789)  
							
							
							
						 
						
							2023-09-23 11:31:17 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								c74e440168 
								
							 
						 
						
							
							
								
								gh-109022: [Enum] require names=() to create empty enum type (GH-109048)  
							
							... 
							
							
							
							add guard so that ``Enum('bar')`` raises a TypeError instead of
creating a new enum class called `bar`.  To create the new but
empty class, use:
    huh = Enum('bar', names=()) 
							
						 
						
							2023-09-07 18:19:03 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								d48760b2f1 
								
							 
						 
						
							
							
								
								gh-108682: [Enum] raise TypeError if super().__new__ called in custom __new__ (GH-108704)  
							
							... 
							
							
							
							When overriding the `__new__` method of an enum, the underlying data type should be created directly; i.e. .
    member = object.__new__(cls)
    member = int.__new__(cls, value)
    member = str.__new__(cls, value)
Calling `super().__new__()` finds the lookup version of `Enum.__new__`, and will now raise an exception when detected. 
							
						 
						
							2023-08-31 12:45:12 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Prince Roshan 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								357e9e9da3 
								
							 
						 
						
							
							
								
								gh-106602: [Enum] Add __copy__ and __deepcopy__ (GH-106666)  
							
							
							
						 
						
							2023-07-12 14:01:17 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								95b7426f45 
								
							 
						 
						
							
							
								
								gh-105497: [Enum] Fix flag mask inversion when unnamed flags exist ( #106468 )  
							
							... 
							
							
							
							For example:
    class Flag(enum.Flag):
        A = 0x01
        B = 0x02
        MASK = 0xff
    ~Flag.MASK is Flag(0) 
							
						 
						
							2023-07-11 13:35:54 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								59f009e589 
								
							 
						 
						
							
							
								
								gh-105497: [Enum] Fix Flag inversion when alias/mask members exist. (GH-105542)  
							
							... 
							
							
							
							When inverting a Flag member (or boundary STRICT), only consider other canonical flags; when inverting an IntFlag member (or boundary KEEP), also consider aliases. 
							
						 
						
							2023-06-09 08:56:05 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nikita Sobolev 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4ff5690e59 
								
							 
						 
						
							
							
								
								gh-105332: [Enum] Fix unpickling flags in edge-cases (GH-105348)  
							
							... 
							
							
							
							* revert enum pickling from by-name to by-value
Co-authored-by: Ethan Furman <ethan@stoneleaf.us> 
							
						 
						
							2023-06-08 11:40:15 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								5ecd8c85f9 
								
							 
						 
						
							
							
								
								gh-104764: [Enum] fix 3.13-specific tests (GH-104779)  
							
							
							
						 
						
							2023-05-22 18:59:40 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								700ec657c8 
								
							 
						 
						
							
							
								
								gh-103596: [Enum] do not shadow mixed-in methods/attributes (GH-103600)  
							
							... 
							
							
							
							For example:
    class Book(StrEnum):
        title = auto()
        author = auto()
        desc = auto()
    Book.author.desc is Book.desc
but
    Book.author.title() == 'Author'
is commonly expected.  Using upper-case member names avoids this confusion and possible performance impacts.
Co-authored-by: samypr100 <3933065+samypr100@users.noreply.github.com> 
							
						 
						
							2023-04-18 16:19:23 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								a6f95941a3 
								
							 
						 
						
							
							
								
								gh-103479: [Enum] require __new__ to be considered a data type (GH-103495)  
							
							... 
							
							
							
							a mixin must either have a __new__ method, or be a dataclass, to be interpreted as a data-type 
							
						 
						
							2023-04-13 08:31:03 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2194071540 
								
							 
						 
						
							
							
								
								gh-103365: [Enum] STRICT boundary corrections (GH-103494)  
							
							... 
							
							
							
							STRICT boundary:
- fix bitwise operations
- make default for Flag 
							
						 
						
							2023-04-13 08:24:33 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								a44568b80d 
								
							 
						 
						
							
							
								
								[Enum] unchain exception property.__get__ (GH-103305)  
							
							
							
						 
						
							2023-04-05 21:30:11 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4ec8dd10bd 
								
							 
						 
						
							
							
								
								gh-93910: [Enum] remove member.member deprecation (GH-103236)  
							
							... 
							
							
							
							i.e. Color.RED.BLUE is now officially supported. 
							
						 
						
							2023-04-05 17:33:52 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								810d365b5e 
								
							 
						 
						
							
							
								
								gh-103056: [Enum] use staticmethod decorator for _gnv_ (GH-103231)  
							
							... 
							
							
							
							_gnv_ --> _generate_next_value_ 
							
						 
						
							2023-04-03 17:47:40 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								5ffc1e5a21 
								
							 
						 
						
							
							
								
								gh-98298, gh-74730: [Enum] update docs (GH-103163)  
							
							... 
							
							
							
							fix FlagBoundary statements
add warning about reloading modules and enum identity 
							
						 
						
							2023-04-03 14:57:42 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sadra Barikbin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								d3a7732dd5 
								
							 
						 
						
							
							
								
								gh-103215: Remove redundant if stmt from enum.EnumType._find_data_type_ (GH-103222)  
							
							
							
						 
						
							2023-04-03 14:51:43 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2a4d8c0a9e 
								
							 
						 
						
							
							
								
								gh-102549: [Enum] fail enum creation when data type raises in __init__ (GH-103149)  
							
							
							
						 
						
							2023-03-31 13:52:31 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f4ed2c6ae5 
								
							 
						 
						
							
							
								
								gh-102558: [Enum] better handling of non-Enum EnumType classes (GH-103060)  
							
							
							
						 
						
							2023-03-27 16:26:16 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								b838d80085 
								
							 
						 
						
							
							
								
								gh-103056: [Enum] ensure final _generate_next_value_ is a staticmethod (GH-103062)  
							
							
							
						 
						
							2023-03-27 16:25:19 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dong-hee Na 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								bd063756b3 
								
							 
						 
						
							
							
								
								gh-102558: [Enum] fix AttributeError during member repr() (GH-102601)  
							
							
							
						 
						
							2023-03-23 13:30:18 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ethan Furman 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								ef7c2bfcf1 
								
							 
						 
						
							
							
								
								gh-101541: [Enum] create flag psuedo-member without calling original __new__ (GH-101590)  
							
							
							
						 
						
							2023-02-05 19:29:06 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dong-hee Na 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								8cef9c0f92 
								
							 
						 
						
							
							
								
								gh-101341: Remove unncessary enum._power_of_two function (gh-101342)  
							
							
							
						 
						
							2023-01-28 11:08:08 +09:00