roboeval / pyproject.toml
rubenodechua's picture
Initial deploy: Phase 5 dashboard from RDechua/roboeval@ba0a819
9859263
Raw
History Blame Contribute Delete
4.33 kB
[build-system]
requires = ["hatchling>=1.24"]
build-backend = "hatchling.build"
[project]
name = "roboeval"
version = "0.1.0"
description = "Evaluation harness and failure-mode study for open-source robot learning policies with residual RL fine-tuning."
readme = "README.md"
requires-python = ">=3.11,<3.12"
license = { text = "MIT" }
authors = [{ name = "Rubeno Dechua" }]
keywords = [
"robotics",
"imitation-learning",
"reinforcement-learning",
"evaluation",
"act",
"diffusion-policy",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3.11",
"License :: OSI Approved :: MIT License",
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
dependencies = [
"lerobot==0.4.4",
"gymnasium>=0.29,<2.0",
"mujoco>=3.0",
"stable-baselines3>=2.3",
"hydra-core>=1.3",
"wandb>=0.16",
"plotly>=5.20",
"dash>=2.17",
"seaborn>=0.13",
"matplotlib>=3.8",
]
[project.optional-dependencies]
dev = [
"ruff>=0.5,<0.6",
"mypy>=1.10",
"pytest>=8.0",
"pytest-cov>=5.0",
"pre-commit>=3.7",
"hatchling>=1.24",
]
docs = [
"mkdocs>=1.6",
"mkdocs-material>=9.5",
"mkdocstrings[python]>=0.25",
]
[project.scripts]
roboeval = "roboeval.cli:main"
[project.urls]
Homepage = "https://github.com/RubenoDechua/roboeval"
Documentation = "https://github.com/RubenoDechua/roboeval#readme"
[tool.hatch.build.targets.wheel]
packages = ["roboeval"]
# ---------------------------------------------------------------------------
# Ruff
# ---------------------------------------------------------------------------
[tool.ruff]
line-length = 88
target-version = "py311"
extend-exclude = [".venv", "analysis", "docs/RoboEval_PRD_Rubeno_Dechua.docx"]
[tool.ruff.lint]
select = [
"E", "F", "W", # pycodestyle + pyflakes
"I", # isort
"B", # bugbear
"N", # pep8-naming
"UP", # pyupgrade
"ANN", # flake8-annotations
"D", # pydocstyle
"RUF", # ruff-specific
"SIM", # flake8-simplify
"PTH", # use pathlib
"BLE", # blind-except
]
ignore = [
"D203", # one-blank-line-before-class (conflicts with D211)
"D213", # multi-line-summary-second-line (conflicts with D212)
"ANN101", # type annotation for self — deprecated in modern Python typing
"ANN102", # type annotation for cls — deprecated in modern Python typing
]
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["D", "ANN"]
"roboeval/policies/act_loader.py" = ["ANN401"] # lerobot internals untyped
"roboeval/evaluation/logger.py" = ["ANN401"] # wandb internals untyped
"roboeval/evaluation/calibration.py" = ["ANN401"] # JSON values are heterogenous
"roboeval/envs/perturb.py" = ["ANN401"] # per-kind kwargs are heterogenous
"roboeval/cli.py" = ["ANN401"] # OmegaConf cfg + env factory closures
"scripts/**" = ["ANN401", "D103"] # wandb + table-row values untyped
"roboeval/residual/composite.py" = ["ANN401"] # SB3 BaseAlgorithm.predict signature
# ---------------------------------------------------------------------------
# Mypy
# ---------------------------------------------------------------------------
[tool.mypy]
python_version = "3.11"
strict = true
warn_unreachable = true
warn_redundant_casts = true
warn_unused_ignores = true
no_implicit_reexport = true
show_error_codes = true
files = ["roboeval"]
[[tool.mypy.overrides]]
module = [
"lerobot.*",
"gym_aloha.*",
"gymnasium.*",
"mujoco.*",
"stable_baselines3.*",
"wandb.*",
"plotly.*",
"dash.*",
"seaborn.*",
"matplotlib.*",
"hydra.*",
"omegaconf.*",
"torch.*",
]
ignore_missing_imports = true
# ---------------------------------------------------------------------------
# Pytest
# ---------------------------------------------------------------------------
[tool.pytest.ini_options]
minversion = "8.0"
addopts = "-ra -q --strict-markers -m 'not slow'"
testpaths = ["tests"]
markers = [
"slow: requires lerobot/mujoco/checkpoint downloads; skip in CI (run locally with `pytest -m slow`).",
]