summaryrefslogtreecommitdiff
path: root/src/caelestia/utils/scheme.py
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-24 23:47:53 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-24 23:47:53 +1000
commitf47b4fe661634a0c4c5c3efda56207e7796a3957 (patch)
treea3d55d6ed318c477983c6b07f080bfb7864f7834 /src/caelestia/utils/scheme.py
parentinternal: lazy import stuff (diff)
downloadcaelestia-cli-f47b4fe661634a0c4c5c3efda56207e7796a3957.tar.gz
caelestia-cli-f47b4fe661634a0c4c5c3efda56207e7796a3957.tar.bz2
caelestia-cli-f47b4fe661634a0c4c5c3efda56207e7796a3957.zip
internal: more lazy importing
Also fix some stuff with scheme checking
Diffstat (limited to 'src/caelestia/utils/scheme.py')
-rw-r--r--src/caelestia/utils/scheme.py17
1 files changed, 10 insertions, 7 deletions
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: