diff --git a/core/export.py b/core/export.py index 064aae55..7e252d37 100644 --- a/core/export.py +++ b/core/export.py @@ -513,7 +513,11 @@ def _load_repo_device_types(self) -> dict: if isinstance(data, dict) and "slug" in data: key = (mfr_slug, data["slug"]) if key in result: - raise ValueError(f"Duplicate repo device-type key {key!r}: {seen_files[key]} and {yaml_file}") + self.handle.verbose_log( + f"[yellow]Duplicate repo device-type key {key!r}: " + f"{seen_files[key]} and {yaml_file} — keeping first[/yellow]" + ) + continue result[key] = data seen_files[key] = yaml_file return result @@ -535,9 +539,11 @@ def _load_repo_module_types(self) -> dict: if mfr_slug: key = (mfr_slug, data["model"]) if key in result: - raise ValueError( - f"Duplicate repo module-type key {key!r}: {seen_files[key]} and {yaml_file}" + self.handle.verbose_log( + f"[yellow]Duplicate repo module-type key {key!r}: " + f"{seen_files[key]} and {yaml_file} — keeping first[/yellow]" ) + continue result[key] = data seen_files[key] = yaml_file return result @@ -559,7 +565,11 @@ def _load_repo_rack_types(self) -> dict: if mfr_slug: key = (mfr_slug, data["model"]) if key in result: - raise ValueError(f"Duplicate repo rack-type key {key!r}: {seen_files[key]} and {yaml_file}") + self.handle.verbose_log( + f"[yellow]Duplicate repo rack-type key {key!r}: " + f"{seen_files[key]} and {yaml_file} — keeping first[/yellow]" + ) + continue result[key] = data seen_files[key] = yaml_file return result diff --git a/uv.lock b/uv.lock index 23c2e846..4576eb17 100644 --- a/uv.lock +++ b/uv.lock @@ -193,7 +193,7 @@ wheels = [ [[package]] name = "device-type-library-import" -version = "1.5.0" +version = "1.6.0" source = { virtual = "." } dependencies = [ { name = "gitpython" },