import logging from dataclasses import dataclass logger = logging.getLogger(__name__) @dataclass class FeatureDefinition: slug: str name: str = "" description: str = "" default: bool = True category: str | None = None class FeatureRegistry: """Registry where every app registers its feature flags in apps.py:ready().""" _features: dict[str, FeatureDefinition] = {} @classmethod def register( cls, slug: str, *, name: str = "", description: str = "", default: bool = True, category: str | None = None, ): cls._features[slug] = FeatureDefinition( slug=slug, name=name or slug, description=description, default=default, category=category, ) logger.debug(f"Feature flag registered: {slug} (default={default})") @classmethod def get_all(cls) -> dict[str, FeatureDefinition]: return dict(cls._features)