Skip to content

Enum _missing_ function changes __contains__ behaviour#132684

@artur-sl

Description

@artur-sl

Bug report

Bug description:

I observed different behavior for Enum __contains__ in 3.13.2 and 3.13.3 if there is _missing_ method implemented:

fromenumimportEnumclassColor(Enum): RED=1@classmethoddef_missing_(cls, value): returncls.RED# 3.13.2>>>"blue"inColorFalse# 3.13.3>>>"blue"inColorTrue

IMO _missing_ should only influence the __call__ method:

# both 3.13.2 and 3.13.3>>>Color("blue") <Color.RED: 1>

CPython versions tested on:

3.13

Operating systems tested on:

macOS

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.12only security fixes3.13bugs and security fixesrelease-blockerstdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

    Projects

    Status

    Done

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions