summaryrefslogtreecommitdiffstats
path: root/Lib/enum.py
Commit message (Collapse)AuthorAgeFilesLines
* gh-135559: [Enum] dir() on a Flag now shows aliases (GH-136527)Ethan Furman2025-12-101-1/+5
|
* gh-140766: [Enum] add `show_flag_values` and `bin` to `enum.__all__` (GH-140765)Guo Ci2025-10-301-1/+2
| | | Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-140609: delete unused `_stdlib_enums` in enum.py (#140618)yihong2025-10-261-3/+1
| | | Signed-off-by: yihong0618 <zouzou0208@gmail.com>
* gh-136764: improve comment in enum.verify.__call__ (GH-136774)Saurav Singh2025-07-191-1/+1
|
* gh-107538: [Enum] fix handling of inverted/negative values (GH-132273)Ethan Furman2025-07-101-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* gh-132684: [Enum] only call _missing_ in __contains__ for Flags (GH-132790)Ethan Furman2025-04-251-8/+10
| | | Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* enum: remove unused function (#132044)Inada Naoki2025-04-081-12/+0
|
* gh-131045: [Enum] fix flag containment checks when using values (GH-131053)Ethan Furman2025-03-121-2/+4
| | | | | | | 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>
* gh-112328: Make EnumDict usable on its own and document it (GH-123669)Petr Viktorin2024-12-201-5/+5
| | | | | 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>
* gh-128080: remove unnecessary `__init__` method from Enum (GH-128081)Stephen Morton2024-12-191-3/+0
| | | | | remove unnecessary __init__ method from Enum Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
* gh-125259: Fix error notes removal in enum initialization (GH-125647)Mario Šaško2024-10-221-11/+5
|
* gh-125710: [Enum] fix hashable<->nonhashable comparisons for member values ↵Ethan Furman2024-10-221-6/+20
| | | | (GH-125735)
* gh-116110: remove extra processing for the __signature__ attribute (GH-116234)Sergey B Kirpichev2024-10-081-7/+15
| | | This is an alternative to GH-100168.
* Fix typos (#123775)algonell2024-09-091-1/+1
|
* Fix typos in comments and docstring (#122720)Xie Yanbo2024-08-071-1/+1
| | | Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-118650: Exclude `_repr_*` methods from Enum's _sunder_ reservation ↵chrysn2024-05-071-1/+4
| | | | (GH-118651)
* gh-118465: Add __firstlineno__ attribute to class (GH-118475)Serhiy Storchaka2024-05-061-1/+1
| | | | It is set by compiler with the line number of the first line of the class definition.
* gh-117663: [Enum] fix _simple_enum's detection of aliases (GH-117664)Ethan Furman2024-04-091-28/+44
|
* gh-115775: Compiler adds __static_attributes__ field to classes (#115913)Irit Katriel2024-03-261-1/+2
|
* gh-116600: [Enum] fix global Flag repr (GH-116615)Ethan Furman2024-03-111-1/+1
| | | | | | | * 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>
* gh-116040: [Enum] fix test_empty_names test (GH-116508)Ethan Furman2024-03-111-3/+1
| | | * and fix _not_given usage
* gh-116040: [Enum] fix by-value calls when second value is falsey; e.g. ↵Ethan Furman2024-03-071-4/+11
| | | | Cardinal(1, 0) (GH-116072)
* gh-115821: [Enum] better error message for calling super().__new__() (GH-116063)Ethan Furman2024-02-281-0/+5
| | | | docs now state to not call super().__new__ if super().__new__ is called, a better error message is now used
* gh-115539: Allow enum.Flag to have None members (GH-115636)Jason Zhang2024-02-191-21/+36
|
* gh-114071: [Enum] update docs and code for tuples/subclasses (GH-114871)Ethan Furman2024-02-041-2/+8
| | | | | | | | | | | | | | | | | | | | | | | 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.
* gh-114149: [Enum] revert #114160 and add more tuple-subclass tests (GH-114215)Ethan Furman2024-01-181-3/+3
| | | This reverts commit 05e142b1543eb9662d6cc33722e7e16250c9219f.
* gh-114149: [Enum] fix tuple subclass handling when using custom __new__ ↵Ethan Furman2024-01-171-3/+3
| | | | (GH-114160)
* gh-112328: [Enum] Make some private attributes public. (GH-112514)Ethan Furman2023-12-051-74/+129
| | | | | | | | | | | | | * [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>
* [Enum] update class creation for RuntimeError changes (GH-111815)Ethan Furman2023-11-291-5/+9
|
* gh-111181: Fix enum doctests (GH-111180)Nikita Sobolev2023-10-301-6/+5
| | | Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
* gh-110905: [Enum] minor fixes and cleanup (GH-110906)Pieter Eendebak2023-10-161-5/+3
|
* gh-109653: Improve `enum` import time by avoiding import of `functools` ↵Alex Waygood2023-09-231-3/+2
| | | | (GH-109789)
* gh-109022: [Enum] require `names=()` to create empty enum type (GH-109048)Ethan Furman2023-09-081-0/+5
| | | | | | | 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=())
* gh-108682: [Enum] raise TypeError if super().__new__ called in custom ↵Ethan Furman2023-08-311-0/+7
| | | | | | | | | | | __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.
* gh-106602: [Enum] Add __copy__ and __deepcopy__ (GH-106666)Prince Roshan2023-07-121-0/+6
|
* gh-105497: [Enum] Fix flag mask inversion when unnamed flags exist (#106468)Ethan Furman2023-07-111-6/+2
| | | | | | | | | | | For example: class Flag(enum.Flag): A = 0x01 B = 0x02 MASK = 0xff ~Flag.MASK is Flag(0)
* gh-105497: [Enum] Fix Flag inversion when alias/mask members exist. (GH-105542)Ethan Furman2023-06-091-8/+7
| | | When inverting a Flag member (or boundary STRICT), only consider other canonical flags; when inverting an IntFlag member (or boundary KEEP), also consider aliases.
* gh-105332: [Enum] Fix unpickling flags in edge-cases (GH-105348)Nikita Sobolev2023-06-081-21/+9
| | | | | * revert enum pickling from by-name to by-value Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
* gh-104764: [Enum] fix 3.13-specific tests (GH-104779)Ethan Furman2023-05-231-34/+10
|
* gh-103596: [Enum] do not shadow mixed-in methods/attributes (GH-103600)Ethan Furman2023-04-181-35/+51
| | | | | | | | | | | | | | | | | | 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>
* gh-103479: [Enum] require __new__ to be considered a data type (GH-103495)Ethan Furman2023-04-131-1/+2
| | | a mixin must either have a __new__ method, or be a dataclass, to be interpreted as a data-type
* gh-103365: [Enum] STRICT boundary corrections (GH-103494)Ethan Furman2023-04-131-28/+39
| | | | | | STRICT boundary: - fix bitwise operations - make default for Flag
* [Enum] unchain exception property.__get__ (GH-103305)Ethan Furman2023-04-061-1/+1
|
* gh-93910: [Enum] remove member.member deprecation (GH-103236)Ethan Furman2023-04-061-25/+25
| | | | i.e. Color.RED.BLUE is now officially supported.
* gh-103056: [Enum] use staticmethod decorator for _gnv_ (GH-103231)Ethan Furman2023-04-041-0/+3
| | | _gnv_ --> _generate_next_value_
* gh-98298, gh-74730: [Enum] update docs (GH-103163)Ethan Furman2023-04-031-4/+4
| | | | fix FlagBoundary statements add warning about reloading modules and enum identity
* gh-103215: Remove redundant if stmt from `enum.EnumType._find_data_type_` ↵Sadra Barikbin2023-04-031-2/+0
| | | | (GH-103222)
* gh-102549: [Enum] fail enum creation when data type raises in __init__ ↵Ethan Furman2023-03-311-14/+11
| | | | (GH-103149)
* gh-102558: [Enum] better handling of non-Enum EnumType classes (GH-103060)Ethan Furman2023-03-271-7/+5
|
* gh-103056: [Enum] ensure final _generate_next_value_ is a staticmethod ↵Ethan Furman2023-03-271-0/+5
| | | | (GH-103062)