Source code for qdk_chemistry.utils.enum

"""Utility enums for QDK/Chemistry."""

# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See LICENSE.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

from enum import StrEnum

__all__: list[str] = ["CaseInsensitiveStrEnum"]


[docs] class CaseInsensitiveStrEnum(StrEnum): """StrEnum that allows case-insensitive lookup of values.""" @classmethod def _missing_(cls, value): # make input case-insensitive if isinstance(value, str): for member in cls: if member.value.upper() == value.upper(): return member raise ValueError(f"{value} is not a valid {cls.__name__}")