From f47b4fe661634a0c4c5c3efda56207e7796a3957 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Tue, 24 Jun 2025 23:47:53 +1000 Subject: internal: more lazy importing Also fix some stuff with scheme checking --- src/caelestia/utils/scheme.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/caelestia/utils/scheme.py') diff --git a/src/caelestia/utils/scheme.py b/src/caelestia/utils/scheme.py index 678fc87..c15c9e7 100644 --- a/src/caelestia/utils/scheme.py +++ b/src/caelestia/utils/scheme.py @@ -2,7 +2,6 @@ import json import random from pathlib import Path -from caelestia.utils.material import get_colours_for_image from caelestia.utils.notify import notify from caelestia.utils.paths import atomic_dump, scheme_data_dir, scheme_path @@ -135,8 +134,8 @@ class Scheme: def set_random(self) -> None: self._name = random.choice(get_scheme_names()) - self._flavour = random.choice(get_scheme_flavours()) - self._mode = random.choice(get_scheme_modes()) + self._flavour = random.choice(get_scheme_flavours(self.name)) + self._mode = random.choice(get_scheme_modes(self.name, self.flavour)) self.update_colours() def update_colours(self) -> None: @@ -144,15 +143,19 @@ class Scheme: self.save() def _check_flavour(self) -> None: - if self._flavour not in get_scheme_flavours(self.name): - self._flavour = get_scheme_flavours()[0] + flavours = get_scheme_flavours(self.name) + if self._flavour not in flavours: + self._flavour = flavours[0] def _check_mode(self) -> None: - if self._mode not in get_scheme_modes(self.name, self.flavour): - self._mode = get_scheme_modes()[0] + modes = get_scheme_modes(self.name, self.flavour) + if self._mode not in modes: + self._mode = modes[0] def _update_colours(self) -> None: if self.name == "dynamic": + from caelestia.utils.material import get_colours_for_image + try: self._colours = get_colours_for_image() except FileNotFoundError: -- cgit v1.2.3-freya