[project] name = "remdm-planner-minihack" version = "0.1.0" description = "ReMDM Planner for MiniHack" readme = "README.md" requires-python = ">=3.12" dependencies = [ "huggingface-hub>=1.8.0", "ipython>=9.12.0", "matplotlib>=3.10.8", "minihack>=1.0.2", "nle>=1.2.0", "numpy>=2.4.4", "orjson>=3.11.8", "polars>=1.39.3", "pyyaml>=6.0.3", "safetensors>=0.8.0", "sb3-contrib>=2.8.0", "scipy>=1.17.1", "stable-baselines3>=2.8.0", "torch>=2.11.0", "wandb>=0.25.1", "setuptools<82", ] [project.optional-dependencies] # No extra: PyPI torch, which ships CUDA 13.0 wheels on Linux since 2.11. This is the default. # cuda13: explicit CUDA 13.2 index. cuda12: CUDA 12.6, fallback for drivers older than 580. # Both extras must exist: `conflicts` needs two, and a single extra collapses the lock. cuda12 = ["torch>=2.12 ; sys_platform == 'linux'"] cuda13 = ["torch>=2.12 ; sys_platform == 'linux'"] [dependency-groups] dev = [ "pytest>=8.0", "ruff==0.16.2", ] [tool.ruff] line-length = 88 target-version = "py312" [tool.ruff.lint] # Conservative explicit baseline; rule families are added one reviewed # commit at a time. Disabled rules must be justified here. select = ["F", "E4", "E7", "E9", "I", "UP", "C4", "SIM", "RET", "B"] [tool.ruff.lint.per-file-ignores] # Path bootstrap must precede package imports in the standalone entry point. "experiments/rl_finetuning/run_ablations.py" = ["E402"] "experiments/rl_finetuning/analysis/mixing_experiment.py" = ["E402"] # scripts/ is not a package, so the _git_provenance import needs the same path # bootstrap, which must precede it. "scripts/hf_upload.py" = ["E402"] "scripts/hf_upload_demo.py" = ["E402"] [tool.uv] package = false conflicts = [[{ extra = "cuda12" }, { extra = "cuda13" }]] required-environments = [ "sys_platform == 'linux' and platform_machine == 'x86_64'", ] [tool.uv.sources] torch = [ { index = "pytorch-cu126", extra = "cuda12", marker = "sys_platform == 'linux'" }, { index = "pytorch-cu132", extra = "cuda13", marker = "sys_platform == 'linux'" }, ] [[tool.uv.index]] name = "pytorch-cu126" url = "https://download.pytorch.org/whl/cu126" explicit = true [[tool.uv.index]] name = "pytorch-cu132" url = "https://download.pytorch.org/whl/cu132" explicit = true [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-q --durations=10 -m 'not slow'" markers = [ "slow: entry points that take more than a few seconds (deselected by default; run with -m slow)", ]