[build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [project] name = "coupler-panel-validation" version = "0.1.0" description = "CAD-STP to point-cloud measurement validation system for coupler panel deflection." readme = "README.md" requires-python = ">=3.10" license = { text = "Proprietary" } authors = [{ name = "PKU High-Speed Train Project" }] keywords = ["point-cloud", "cad", "step", "metrology", "rail", "coupler"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Manufacturing", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Scientific/Engineering", ] # Core: pure compute (no plotting, no CAD). dependencies = [ "numpy>=1.24", "scipy>=1.10", "pyyaml>=6.0", "tqdm>=4.65", ] [project.optional-dependencies] # Required to run the full simulation / measurement pipeline: # point-cloud IO, sampling, denoising, registration helpers. cloud = [ "open3d>=0.18", "trimesh>=4.0", ] # Required to parse STP files into a tessellated mesh and to extract # topological GT (hole circles, panel plane). cad = [ "cadquery-ocp>=7.7", "trimesh>=4.0", ] # Visualisation (PNG diagnostics + offscreen 3D renders). viz = [ "matplotlib>=3.7", "open3d>=0.18", ] # Excel batch-evaluation reporting (reporting.excel). report = [ "openpyxl>=3.1", ] # Convenience: install everything (compute + cad + cloud + plotting + report). all = [ "open3d>=0.18", "trimesh>=4.0", "cadquery-ocp>=7.7", "matplotlib>=3.7", "openpyxl>=3.1", ] dev = [ "pytest>=7", "pytest-cov", ] [project.scripts] coupler-measure = "coupler_panel.cli:main" [tool.setuptools] packages = [ "coupler_panel", "coupler_panel.cad", "coupler_panel.sampling", "coupler_panel.simulation", "coupler_panel.denoise", "coupler_panel.registration", "coupler_panel.detection", "coupler_panel.geometry", "coupler_panel.metrics", "coupler_panel.viz", "coupler_panel.io_utils", "coupler_panel.roi_select", "coupler_panel.reporting", ] include-package-data = true [tool.setuptools.package-data] coupler_panel = ["py.typed"]