Source code for fabulous.fabric_generator.gds_generator.define
"""Shared tile optimisation mode definitions."""
from enum import StrEnum
[docs]
class OptMode(StrEnum):
"""Optimisation modes for tile size finding."""
FIND_MIN_WIDTH = "find_min_width"
FIND_MIN_HEIGHT = "find_min_height"
BALANCE = "balance"
LARGE = "large"
NO_OPT = "no_opt"
@classmethod
def _missing_(cls, value: object) -> "OptMode":
"""Look up an OptMode member case-insensitively."""
if isinstance(value, str):
value_lower = value.lower()
for member in cls:
if member.value == value_lower:
return member
if value is None:
return cls.NO_OPT
raise ValueError(f"{value!r} is not a valid {cls.__name__}")