Skip to content

models

django_spire.theme.models

Theme dataclass

family instance-attribute

mode instance-attribute

DEFAULT_FAMILY = ThemeFamily.DEFAULT class-attribute

DEFAULT_MODE = ThemeMode.LIGHT class-attribute

SEPARATOR = '-' class-attribute

FAMILY_DISPLAY_NAMES = {ThemeFamily.AYU: 'Ayu', ThemeFamily.CATPPUCCIN: 'Catppuccin', ThemeFamily.DEFAULT: 'Default', ThemeFamily.DRACULA: 'Dracula', ThemeFamily.GRUVBOX: 'Gruvbox', ThemeFamily.MATERIAL: 'Material', ThemeFamily.NORD: 'Nord', ThemeFamily.OCEANIC_NEXT: 'Oceanic Next', ThemeFamily.ONE_DARK: 'One Dark Pro', ThemeFamily.PALENIGHT: 'Palenight', ThemeFamily.ROSE_PINE: 'Rose Pine', ThemeFamily.SYNTHWAVE: 'Synthwave', ThemeFamily.TOKYO_NIGHT: 'Tokyo Night'} class-attribute

display property

family_display property

is_dark property

stylesheet property

value property

__post_init__

Source code in django_spire/theme/models.py
def __post_init__(self):
    if isinstance(self.family, str):
        self._validate_family(self.family)

        object.__setattr__(
            self,
            'family',
            ThemeFamily(self.family)
        )

    if isinstance(self.mode, str):
        self._validate_mode(self.mode)

        object.__setattr__(
            self,
            'mode',
            ThemeMode(self.mode)
        )

from_string classmethod

Source code in django_spire/theme/models.py
@classmethod
def from_string(cls, theme: str, default: Theme | None = None) -> Theme:
    if not theme:
        if default:
            return default

        return cls.get_default()

    try:
        family, mode = cls._parse(theme)
        cls._validate(family, mode)
        return cls(family=ThemeFamily(family), mode=ThemeMode(mode))
    except ValueError:
        if default:
            return default

        raise

get_available classmethod

Source code in django_spire/theme/models.py
@classmethod
def get_available(cls) -> list[Theme]:
    return [
        cls(family=family, mode=mode)
        for family in ThemeFamily
        for mode in ThemeMode
    ]

get_default classmethod

Source code in django_spire/theme/models.py
@classmethod
def get_default(cls) -> Theme:
    return cls(family=cls.DEFAULT_FAMILY, mode=cls.DEFAULT_MODE)

to_dict

Source code in django_spire/theme/models.py
def to_dict(self) -> dict:
    return {
        'display': self.display,
        'family': self.family.value,
        'family_display': self.family_display,
        'full': self.value,
        'is_dark': self.is_dark,
        'mode': self.mode.value,
        'stylesheet': self.stylesheet,
    }