from __future__ import annotations import enum class Gender(enum.StrEnum): MALE = "MALE" FEMALE = "FEMALE" PREFER_NOT_TO_ANSWER = "PREFER_NOT_TO_ANSWER" NON_BINARY_OTHER = "NON_BINARY_OTHER" @classmethod def from_string(cls, value: str | None) -> Gender | None: if value is None: return None if (value := value.upper()) in cls.__members__: return cls[value] elif value == "Prefer not to answer".upper(): return cls.PREFER_NOT_TO_ANSWER elif value == "Non-binary/Other".upper(): return cls.NON_BINARY_OTHER return None