fix: low audit items — email channel, debug cleanup, roadmap sync, bare except logging
L18: remove comingSoon from email notification channel (SMTP backend already exists).
L19: remove console.debug useEffect from InlineCadViewer.tsx.
L20: sync ROADMAP.md priority status sections (P1/P2/P3/P8) with status snapshot — all Done.
L22: replace 8 bare except blocks in step_processor.py with logger.debug/warning
so geometry calculation failures are visible in logs instead of silently discarded.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -345,7 +345,8 @@ def extract_mesh_edge_data(step_path: str) -> dict:
|
||||
[round(pt_start.X(), 3), round(pt_start.Y(), 3), round(pt_start.Z(), 3)],
|
||||
[round(pt_end.X(), 3), round(pt_end.Y(), 3), round(pt_end.Z(), 3)],
|
||||
])
|
||||
except Exception:
|
||||
except Exception as _exc:
|
||||
logger.debug("Edge dihedral angle calc failed (skipping edge): %s", _exc)
|
||||
continue
|
||||
|
||||
# Bounding box
|
||||
@@ -373,7 +374,8 @@ def extract_mesh_edge_data(step_path: str) -> dict:
|
||||
"y": round((ymin + ymax) / 2, 2),
|
||||
"z": round((zmin + zmax) / 2, 2),
|
||||
}
|
||||
except Exception:
|
||||
except Exception as _exc:
|
||||
logger.debug("Bounding box calc failed: %s", _exc)
|
||||
dimensions_mm = None
|
||||
bbox_center_mm = None
|
||||
|
||||
@@ -580,7 +582,8 @@ def extract_step_metadata(step_path: str) -> StepMetadata:
|
||||
[round(pt_start.X(), 3), round(pt_start.Y(), 3), round(pt_start.Z(), 3)],
|
||||
[round(pt_end.X(), 3), round(pt_end.Y(), 3), round(pt_end.Z(), 3)],
|
||||
])
|
||||
except Exception:
|
||||
except Exception as _exc:
|
||||
logger.debug("Edge dihedral angle calc failed (skipping edge): %s", _exc)
|
||||
continue
|
||||
|
||||
# ── Step 4: Bounding box ──────────────────────────────────────────
|
||||
@@ -601,8 +604,8 @@ def extract_step_metadata(step_path: str) -> StepMetadata:
|
||||
"y": round((ymin + ymax) / 2, 2),
|
||||
"z": round((zmin + zmax) / 2, 2),
|
||||
}
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as _exc:
|
||||
logger.debug("Bounding box calc failed: %s", _exc)
|
||||
|
||||
# ── Step 5: Build edge_data dict ──────────────────────────────────
|
||||
edge_data: dict = {}
|
||||
@@ -866,8 +869,8 @@ def extract_rich_metadata(step_path: str) -> dict:
|
||||
if vol > largest_volume:
|
||||
largest_volume = vol
|
||||
largest_name = name
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as _exc:
|
||||
logger.debug("Volume properties failed for part '%s': %s", name, _exc)
|
||||
|
||||
try:
|
||||
props = GProp_GProps()
|
||||
@@ -877,8 +880,8 @@ def extract_rich_metadata(step_path: str) -> dict:
|
||||
brepgprop.SurfaceProperties(shape, props)
|
||||
area = abs(props.Mass()) # mm²
|
||||
total_area += area * count
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as _exc:
|
||||
logger.debug("Surface area properties failed for part '%s': %s", name, _exc)
|
||||
|
||||
result["total_volume_cm3"] = round(total_volume / 1000.0, 2) # mm³ → cm³
|
||||
result["total_surface_area_cm2"] = round(total_area / 100.0, 2) # mm² → cm²
|
||||
@@ -900,8 +903,8 @@ def extract_rich_metadata(step_path: str) -> dict:
|
||||
min_dim = min(d for d in dims if d > 1e-6) # skip degenerate
|
||||
if min_dim < smallest_dim:
|
||||
smallest_dim = min_dim
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as _exc:
|
||||
logger.debug("Smallest dimension calc failed for shape: %s", _exc)
|
||||
result["smallest_dimension_mm"] = round(smallest_dim, 2) if smallest_dim < float("inf") else 0.0
|
||||
|
||||
# ── Triangle and vertex counts from tessellation ──────────────────
|
||||
@@ -928,8 +931,8 @@ def extract_rich_metadata(step_path: str) -> dict:
|
||||
if tri is not None:
|
||||
total_triangles += tri.NbTriangles()
|
||||
total_vertices += tri.NbNodes()
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as _exc:
|
||||
logger.debug("Triangle count failed for face: %s", _exc)
|
||||
explorer.Next()
|
||||
|
||||
result["total_triangle_count"] = total_triangles
|
||||
@@ -1015,8 +1018,8 @@ def _extract_step_objects_fallback(step_path: Path) -> list[str]:
|
||||
name = part.split("'")[1]
|
||||
if name and name not in names:
|
||||
names.append(name)
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as _exc:
|
||||
logger.warning("STEP raw text parse for product names failed: %s", _exc)
|
||||
return names
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user