feat: add option to customize python binary for Klipper and Moonraker, add option to not install Moonraker speedups (#671)

Add option to cusomize python binary for klipper and moonraker. Add option to not install moonraker speedups.
This commit is contained in:
Pavel Sorejs
2025-04-06 22:23:39 +02:00
committed by GitHub
parent c91816d13f
commit 95cf809378
5 changed files with 60 additions and 32 deletions

View File

@@ -53,11 +53,16 @@ class Repository:
url: str
branch: str
@dataclass
class KlipperSettings:
repositories: List[Repository] | None = field(default=None)
use_python_binary: str | None = field(default=None)
@dataclass
class RepoSettings:
class MoonrakerSettings:
optional_speedups: bool | None = field(default=None)
repositories: List[Repository] | None = field(default=None)
use_python_binary: str | None = field(default=None)
@dataclass
class WebUiSettings:
@@ -93,8 +98,8 @@ class KiauhSettings:
self.__initialized = True
self.config = SimpleConfigParser()
self.kiauh = AppSettings()
self.klipper = RepoSettings()
self.moonraker = RepoSettings()
self.klipper = KlipperSettings()
self.moonraker = MoonrakerSettings()
self.mainsail = WebUiSettings()
self.fluidd = WebUiSettings()
@@ -153,6 +158,8 @@ class KiauhSettings:
self._validate_int("fluidd", "port")
self._validate_bool("fluidd", "unstable_releases")
self._validate_bool("moonraker", "optional_speedups")
except ValueError:
err = f"Invalid value for option '{self._v_option}' in section '{self._v_section}'"
@@ -208,12 +215,17 @@ class KiauhSettings:
"kiauh", "backup_before_update"
)
self.moonraker.optional_speedups = self.config.getboolean("moonraker", "optional_speedups", True)
kl_repos = self.config.getval("klipper", "repositories")
self.klipper.repositories = self.__set_repo_state(kl_repos)
mr_repos = self.config.getval("moonraker", "repositories")
self.moonraker.repositories = self.__set_repo_state(mr_repos)
self.klipper.use_python_binary = self.config.getval("klipper", "use_python_binary", None)
self.moonraker.use_python_binary = self.config.getval("moonraker", "use_python_binary", None)
self.mainsail.port = self.config.getint("mainsail", "port")
self.mainsail.unstable_releases = self.config.getboolean(
"mainsail", "unstable_releases"