Skip to content

Commit f936cfd

Browse files
committed
deduplicate override logging
1 parent a41b44b commit f936cfd

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

hammer/tech/__init__.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ def override_tech_libraries(self) -> None:
350350
if len(self.get_setting("vlsi.technology.override_libraries")) > 0:
351351
self.logger.warning("You've attempted to specify override libraries without enabling vlsi.technology.manually_override_pdk_collateral! collateral paths will not be overwritten")
352352

353-
used_overrides = []
353+
used_overrides = {}
354354
for lib in self.config.libraries + self.config.drc_decks + self.config.lvs_decks:
355355
for field_name in lib.model_fields:
356356
if "file" in field_name or "path" in field_name or field_name == "verilog_sim":
@@ -369,11 +369,8 @@ def override_tech_libraries(self) -> None:
369369
if len(cached_paths) > 1:
370370
self.logger.error(f"ambiguous cache override: {cached_paths}")
371371
if cached_paths:
372-
used_overrides.append((field_name, fname))
373372
new_path = cached_paths[0]
374-
self.logger.info(
375-
f"overriding {default_path} with cache entry {new_path}"
376-
)
373+
used_overrides[(field_name, fname)] = (new_path, False) # non-manual override
377374

378375
manual_override_paths = set([f for f in fnames if (field_name, f) in manual_overrides])
379376
manual_override_paths = [manual_overrides[(field_name, f)] for f in manual_override_paths]
@@ -383,13 +380,16 @@ def override_tech_libraries(self) -> None:
383380
self.logger.error(f"ambiguous cache override: {manual_override_paths}")
384381
# prioritize manual overrides over cache
385382
if manual_override_paths:
386-
used_overrides.append((field_name, fname))
387383
new_path = manual_override_paths[0]
388-
self.logger.info(
389-
f"overriding {default_path} with manual override {new_path}"
390-
)
384+
used_overrides[(field_name, fname)] = (new_path, True) # manual override
391385

392386
setattr(lib, field_name, new_path)
387+
# do logging at the end to prevent spamming stdout with the same overrides
388+
for field, new_path in used_overrides.items():
389+
override_type = "manual" if new_path[1] else "cache"
390+
self.logger.info(
391+
f"Overriding {field[0]} {field[1]} with {override_type} path {new_path[0]}"
392+
)
393393
unused_overrides = [k for k in manual_overrides.keys() if k not in used_overrides]
394394
if unused_overrides:
395395
self.logger.warning(f"Unused tech collateral overrides: {unused_overrides}")

0 commit comments

Comments
 (0)