fix: OCP import for BRepGProp + route metadata task to asset_pipeline

- Fixed: from OCP.BRepGProp import BRepGProp as brepgprop (was lowercase)
- Routed reextract_rich_metadata_task to asset_pipeline queue (render-worker
  has OCC/OCP installed, worker container does not)
- Backfill verified: 45/45 products updated with volume, surface area,
  part count, complexity metrics

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-15 19:50:12 +01:00
parent cfccdd5397
commit 531994cccd
2 changed files with 2 additions and 2 deletions
@@ -254,7 +254,7 @@ def _auto_populate_materials_for_cad(cad_file_id: str, tenant_id: str | None = N
eng.dispose() eng.dispose()
@celery_app.task(name="app.tasks.step_tasks.reextract_rich_metadata_task", queue="step_processing") @celery_app.task(name="app.tasks.step_tasks.reextract_rich_metadata_task", queue="asset_pipeline")
def reextract_rich_metadata_task(): def reextract_rich_metadata_task():
"""Batch re-extract rich metadata (volume, surface area, complexity) for all completed CAD files.""" """Batch re-extract rich metadata (volume, surface area, complexity) for all completed CAD files."""
from sqlalchemy import create_engine, select as sql_select, update as sql_update from sqlalchemy import create_engine, select as sql_select, update as sql_update
+1 -1
View File
@@ -709,7 +709,7 @@ def extract_rich_metadata(step_path: str) -> dict:
from OCP.TCollection import TCollection_ExtendedString # type: ignore[no-redef] from OCP.TCollection import TCollection_ExtendedString # type: ignore[no-redef]
from OCP.TDF import TDF_LabelSequence, TDF_Label # type: ignore[no-redef] from OCP.TDF import TDF_LabelSequence, TDF_Label # type: ignore[no-redef]
from OCP.XCAFDoc import XCAFDoc_ShapeTool # type: ignore[no-redef] from OCP.XCAFDoc import XCAFDoc_ShapeTool # type: ignore[no-redef]
from OCP.BRepGProp import brepgprop # type: ignore[no-redef] from OCP.BRepGProp import BRepGProp as brepgprop # type: ignore[no-redef]
from OCP.GProp import GProp_GProps # type: ignore[no-redef] from OCP.GProp import GProp_GProps # type: ignore[no-redef]
from OCP.BRepMesh import BRepMesh_IncrementalMesh # type: ignore[no-redef] from OCP.BRepMesh import BRepMesh_IncrementalMesh # type: ignore[no-redef]
from OCP.TopExp import TopExp_Explorer # type: ignore[no-redef] from OCP.TopExp import TopExp_Explorer # type: ignore[no-redef]