Files
RC_WheelLeg/05_software/train/rc_mjlab/mjlab/pyproject.toml
T

177 lines
4.4 KiB
TOML

[build-system]
requires = ["uv_build>=0.8.19,<0.9.0"]
build-backend = "uv_build"
[project]
name = "mjlab"
version = "1.4.0"
license = "Apache-2.0"
license-files = ["LICENSE"]
readme = { file = "README.md", content-type = "text/markdown" }
authors = [
{name = "The MjLab Developers"},
]
keywords = ["mujoco", "mujoco-warp", "simulation", "reinforcement-learning", "robotics"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3 :: Only",
"Typing :: Typed",
"Environment :: GPU :: NVIDIA CUDA",
"Topic :: Scientific/Engineering",
"Natural Language :: English",
]
description = "Isaac Lab API, powered by MuJoCo-Warp, for RL and robotics research."
requires-python = ">=3.10,<3.14"
dependencies = [
"prettytable",
"tqdm",
"tyro>=1.0.1",
"torch>=2.7.0",
"torchrunx>=0.3.4",
"warp-lang>=1.12.0",
"mujoco-warp>=3.8.0.3,~=3.8.0",
"mujoco~=3.8.0",
"trimesh>=4.8.3",
"scipy>=1.15",
"viser>=1.0.27",
"mjviser>=0.0.14",
"mediapy>=1.2.6",
"imageio-ffmpeg",
"tensordict",
"rsl-rl-lib==5.4.0",
"tensorboard>=2.20.0",
"onnxscript>=0.5.4",
"wandb>=0.22.3",
]
[project.urls]
"Bug Reports" = "https://github.com/mujocolab/mjlab/issues"
"Source" = "https://github.com/mujocolab/mjlab"
[project.scripts]
train = "mjlab.scripts.train:main"
play = "mjlab.scripts.play:main"
demo = "mjlab.scripts.demo:main"
list-envs = "mjlab.scripts.list_envs:main"
viz-nan = "mjlab.scripts.nan_viz:main"
export-scene = "mjlab.scripts.export_scene:main"
[dependency-groups]
dev = [
"ipdb>=0.13.13",
"pre-commit>=4.3.0",
"pyright>=1.1.408",
"onnxruntime>=1.19.0; python_version >= '3.11'",
"pytest>=v9.0.3",
"ruff>=v0.14.14",
"ty>=v0.0.14",
]
docs = [
"myst-parser>=4.0.1",
"sphinx>=8.1.3",
"sphinx-autodoc-typehints>=3.0.1",
"sphinx-autobuild>=2024.10.3",
"sphinx-book-theme>=1.1.4",
"sphinx-copybutton>=0.5.2",
"sphinx-design>=0.6.1",
"autodocsumm",
"sphinxemoji",
"sphinxcontrib.bibtex",
"sphinx-icon",
"sphinx-tabs",
"sphinx_multiversion",
]
[project.optional-dependencies]
cu128 = ["torch>=2.7.0"]
cpu = ["torch>=2.7.0"]
[tool.uv]
conflicts = [
[{extra = "cu128"}, {extra = "cpu"}],
]
# The nightly index (py.mujoco.org) only has dev builds, and PEP 440 ranks
# 3.8.0.devN < 3.8.0, so the ~=3.8.0 floor in [project.dependencies] would
# reject them. This override loosens the constraint for uv resolution only.
override-dependencies = ["mujoco>=3.8.0.dev0"]
constraint-dependencies = [
"GitPython>=3.1.49",
"lxml>=6.1.0",
]
required-environments = [
"sys_platform == 'darwin' and platform_machine == 'arm64'",
"sys_platform == 'linux' and platform_machine == 'x86_64'",
]
[[tool.uv.index]]
url = "https://pypi.org/simple"
[[tool.uv.index]]
name = "nvidia"
url = "https://pypi.nvidia.com/"
explicit = true
[[tool.uv.index]]
name = "pytorch-cu128"
url = "https://download.pytorch.org/whl/cu128"
explicit = true
[[tool.uv.index]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
explicit = true
[[tool.uv.index]]
name = "mujoco"
url = "https://py.mujoco.org"
explicit = true
[tool.uv.sources]
warp-lang = { index = "nvidia", marker = "sys_platform != 'darwin'" }
torch = [
{ index = "pytorch-cu128", extra = "cu128", marker = "sys_platform != 'darwin'" },
{ index = "pytorch-cpu", extra = "cpu", marker = "sys_platform != 'darwin'" },
]
mujoco = { index = "mujoco" }
mujoco-warp = { git = "https://github.com/google-deepmind/mujoco_warp", rev = "88b55fc2696960b927bc12584994bb8412b36558" }
[tool.ruff]
src = ["src"] # Helpful for recognizing first-party imports.
indent-width = 2
exclude = [
"src/mjlab/utils/lab_api",
"typings",
]
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "I", "B"]
ignore = ["B011"]
[tool.pyright]
pythonVersion = "3.10"
venvPath = "."
venv = ".venv"
ignore = ["./typings", "./src/mjlab/utils/lab_api", "./docs"]
stubPath = "typings"
[tool.ty.environment]
extra-paths = ["typings"]
[tool.ty.src]
include = ["src", "tests"]
exclude = ["src/mjlab/utils/lab_api", "typings"]
[tool.pytest.ini_options]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
]
addopts = "--strict-markers"