b3c3e2a3b2
- backend/app: FastAPI API wrapping the CAD skill modules - upload -> job -> poll -> model / BOM / artifacts -> geometry query - SQLite via SQLModel (Model, Job, BomRow, QueryLog) - ThreadPoolExecutor worker, serialized, with live stage updates - docker-compose.yml: dev server (mounts source, --reload) on :8000 - api-test.sh: end-to-end live validation script - requirements.txt: add fastapi, uvicorn, python-multipart, sqlmodel - external_diagram.py: port active-area detection OCC.Core -> OCP - .gitignore, PHASE1.md Validated live: MR16 round-trip passes (28 BOM rows, 12 artifacts, bounding-box query, xlsx download; active-area detection working). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.4 KiB
Plaintext
33 lines
1.4 KiB
Plaintext
# STEP Parser — Phase 0 Python dependencies (linux/amd64 wheels)
|
|
#
|
|
# These are floor pins for the first green build. After the image builds and the
|
|
# smoke test passes, freeze exact versions:
|
|
# docker run --rm --entrypoint pip step-parser:dev freeze > requirements.lock.txt
|
|
# and switch the Dockerfile to install the lockfile for reproducible Unraid builds.
|
|
|
|
# --- CAD kernel ---------------------------------------------------------------
|
|
# build123d pulls cadquery-ocp (OpenCASCADE), which ships manylinux x86_64 wheels.
|
|
build123d>=0.7
|
|
|
|
# --- geometry / data ----------------------------------------------------------
|
|
numpy>=1.24
|
|
pandas>=2.0
|
|
openpyxl>=3.1 # MPM-branded .xlsx BOM output
|
|
|
|
# --- offscreen rendering (6-view thumbnails) ----------------------------------
|
|
trimesh>=4.0
|
|
pyrender>=0.1.45 # hard-pins PyOpenGL==3.1.0 — do NOT also pin PyOpenGL here (conflict)
|
|
Pillow>=10.0
|
|
|
|
# --- external dimensional diagram export --------------------------------------
|
|
cairosvg>=2.7 # SVG -> PNG/PDF
|
|
|
|
# --- Chinese -> English part-name translation ---------------------------------
|
|
anthropic>=0.39 # needs ANTHROPIC_API_KEY at runtime (optional in Phase 0)
|
|
|
|
# --- web API (Phase 1) --------------------------------------------------------
|
|
fastapi>=0.115
|
|
uvicorn[standard]>=0.32
|
|
python-multipart>=0.0.9 # multipart/form-data uploads
|
|
sqlmodel>=0.0.22 # SQLAlchemy + Pydantic ORM over SQLite
|