Spaces:
Running
Running
| [build-system] | |
| requires = ["setuptools>=68", "wheel"] | |
| build-backend = "setuptools.build_meta" | |
| [project] | |
| name = "roverdevkit" | |
| version = "0.1.0" | |
| description = "ML-accelerated co-design of mobility and power subsystems for lunar micro-rovers" | |
| readme = "README.md" | |
| license = { file = "LICENSE" } | |
| requires-python = ">=3.11" | |
| authors = [ | |
| { name = "Autonomous Mission Systems Lab, Duke University" }, | |
| ] | |
| keywords = [ | |
| "lunar", | |
| "rover", | |
| "terramechanics", | |
| "tradespace", | |
| "surrogate", | |
| "multi-objective-optimization", | |
| "space-systems", | |
| ] | |
| classifiers = [ | |
| "Development Status :: 2 - Pre-Alpha", | |
| "Intended Audience :: Science/Research", | |
| "License :: OSI Approved :: MIT License", | |
| "Programming Language :: Python :: 3", | |
| "Programming Language :: Python :: 3.11", | |
| "Programming Language :: Python :: 3.12", | |
| "Topic :: Scientific/Engineering", | |
| ] | |
| dependencies = [ | |
| "numpy>=1.26", | |
| "scipy>=1.11", | |
| "pandas>=2.1", | |
| "scikit-learn>=1.4", | |
| "xgboost>=2.0", | |
| "pymoo>=0.6.1", | |
| "shap>=0.44", | |
| "optuna>=3.5", | |
| "matplotlib>=3.8", | |
| "plotly>=5.18", | |
| "pydantic>=2.5", | |
| "pyyaml>=6.0", | |
| "tqdm>=4.66", | |
| "pyarrow>=14", | |
| ] | |
| [project.optional-dependencies] | |
| torch = ["torch>=2.2"] | |
| webapp = [ | |
| # Browser-based tradespace tool backend. | |
| # Frontend toolchain (Node 20 LTS + npm) is managed separately under webapp/frontend/. | |
| "fastapi>=0.115", | |
| "uvicorn[standard]>=0.30", | |
| "sse-starlette>=2.1", | |
| "httpx>=0.27", | |
| "python-multipart>=0.0.9", | |
| ] | |
| dev = [ | |
| "pytest>=8.0", | |
| "pytest-cov>=4.1", | |
| "ruff>=0.3", | |
| "mypy>=1.8", | |
| "jupyterlab>=4.0", | |
| "nbstripout>=0.7", | |
| ] | |
| [project.urls] | |
| Repository = "https://github.com/Autonomous-Mission-Systems-Lab/roverdevkit" | |
| [tool.setuptools.packages.find] | |
| include = ["roverdevkit*"] | |
| [tool.setuptools.package-data] | |
| roverdevkit = ["py.typed"] | |
| [tool.ruff] | |
| line-length = 100 | |
| target-version = "py311" | |
| [tool.ruff.lint] | |
| select = ["E", "F", "W", "I", "N", "UP", "B", "SIM", "NPY"] | |
| ignore = ["E501"] | |
| [tool.ruff.lint.per-file-ignores] | |
| # Allow the conventional sklearn naming (`X_train`, `Y_pred`, `X_feas`) | |
| # in surrogate ML code; lowercase variants would obscure the standard | |
| # convention. | |
| "roverdevkit/surrogate/baselines.py" = ["N806"] | |
| "roverdevkit/surrogate/tuning.py" = ["N803", "N806"] | |
| "roverdevkit/surrogate/uncertainty.py" = ["N803", "N806"] | |
| "scripts/tune_baselines.py" = ["N806"] | |
| "scripts/calibrate_intervals.py" = ["N806"] | |
| "tests/test_surrogate_tuning.py" = ["N806"] | |
| "tests/test_surrogate_uncertainty.py" = ["N803", "N806"] | |
| "webapp/backend/services/predict.py" = ["N803"] | |
| "webapp/backend/routes/predict.py" = ["N806"] | |
| [tool.ruff.format] | |
| quote-style = "double" | |
| [tool.mypy] | |
| python_version = "3.11" | |
| ignore_missing_imports = true | |
| warn_unused_ignores = true | |
| warn_redundant_casts = true | |
| [tool.pytest.ini_options] | |
| testpaths = ["tests", "webapp/backend/tests"] | |
| # Repo root is added to sys.path so `import webapp.backend...` works | |
| # without installing the webapp package. The webapp is a deployment | |
| # artifact, not a Python distribution; it lives next to roverdevkit. | |
| pythonpath = ["."] | |
| addopts = "-ra --strict-markers" | |
| markers = [ | |
| "slow: slow tests (>10s)", | |
| "integration: full mission evaluator integration tests", | |
| ] | |