fix(project): handle errors in print_stats() (#173)

This commit is contained in:
Gonsolo
2026-05-20 10:18:15 +02:00
committed by GitHub
parent 5a894537dc
commit 7e3f0f87a3
+11 -2
View File
@@ -749,10 +749,15 @@ class Project:
print(f"* {warning}") print(f"* {warning}")
def print_stats(self): def print_stats(self):
util_glob = "runs/wokwi/*-openroad-globalplacement/openroad-globalplacement.log" try:
util_glob = (
"runs/wokwi/*-openroad-globalplacement/openroad-globalplacement.log"
)
util_log = glob.glob(os.path.join(self.local_dir, util_glob))[0] util_log = glob.glob(os.path.join(self.local_dir, util_glob))[0]
util_regexp = r"^\[INFO GPL-0019\] (Util|Utilization):" util_regexp = r"^\[INFO GPL-0019\] (Util|Utilization):"
util_line = next(line for line in open(util_log) if re.match(util_regexp, line)) util_line = next(
line for line in open(util_log) if re.match(util_regexp, line)
)
util = re.sub(util_regexp, "", util_line).strip() util = re.sub(util_regexp, "", util_line).strip()
try: try:
@@ -760,6 +765,10 @@ class Project:
except KeyError: except KeyError:
wire_length = self.metrics["detailedroute__route__wirelength"] wire_length = self.metrics["detailedroute__route__wirelength"]
except (IndexError, KeyError, StopIteration):
print("Failed to retrieve routing stats")
else:
print("# Routing stats") print("# Routing stats")
print() print()
print("| Utilisation (%) | Wire length (um) |") print("| Utilisation (%) | Wire length (um) |")