From a02209443e0335eb16810dec01b18140e74eeb91 Mon Sep 17 00:00:00 2001 From: Eric Callahan Date: Wed, 15 Feb 2023 12:04:54 -0500 Subject: [PATCH] server: remove duplicates when loading components Signed-off-by: Eric Callahan --- moonraker/server.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/moonraker/server.py b/moonraker/server.py index 05c77c7..6635036 100755 --- a/moonraker/server.py +++ b/moonraker/server.py @@ -227,7 +227,7 @@ class Server: def load_components(self) -> None: config = self.config - cfg_sections = [s.split()[0] for s in config.sections()] + cfg_sections = set([s.split()[0] for s in config.sections()]) cfg_sections.remove('server') # load core components @@ -252,6 +252,14 @@ class Server: ) -> Union[_T, Any]: if component_name in self.components: return self.components[component_name] + if self.is_configured(): + raise self.error( + "Cannot load components after configuration", 500 + ) + if component_name in self.failed_components: + raise self.error( + f"Component {component_name} previously failed to load", 500 + ) try: full_name = f"moonraker.components.{component_name}" module = importlib.import_module(full_name)