Download PDDL planning benchmark suites: classical, numeric, profiling, and learning splits.
Project description
planning-benchmarks
PDDL planning benchmark suites — classical, numeric, profiling, and generated
learning splits — published as the pypddl-datasets
Python package. The package itself is small: benchmark data is downloaded on
first use from the matching GitHub release and cached locally.
Usage
pip install pypddl-datasets
import pypddl_datasets as pb
pb.list_suites() # ['autoscale-agile-strips', ..., 'ipc-optimal-strips', ...]
task = pb.fetch_task("classical/tests/gripper/test-1.pddl")
task.domain_path # .../gripper/domain.pddl (correct also where instances
task.task_path # .../gripper/test-1.pddl carry their own domain files)
task.domain, task.problem # "classical/tests/gripper", "test-1.pddl" — display names
domain = pb.fetch_domain("classical/downward-benchmarks/gripper")
domain.path # the domain directory
domain.tasks # list[Task], downloaded once and cached
suite = pb.fetch_suite("ipc-optimal-strips") # Suite(path, domains)
for domain in suite.domains:
for task in domain.tasks:
run_planner(task.domain_path, task.task_path)
Most suites have a -test companion (e.g. "ipc-optimal-strips-test") whose
entries are one representative task per domain — a cheap smoke run before
committing to a full suite. pb.export_suite(suite, dest) materializes a
suite as a plain directory tree for non-Python tools.
pb.list_domains() lists every individually fetchable domain. The cache
location defaults to the platform cache dir and can be overridden with the
PYPDDL_DATASETS_CACHE environment variable. On machines without internet
access, set PYPDDL_DATASETS_DATA to a local checkout's data/ directory
and domains resolve there without downloading.
Repository layout
src/pypddl_datasets/— the package: fetch API, suite definitions, and the instance generators (including the train/valid/test split configurations).data/— all benchmark data, organized as<formalism>/<collection>/<domain>(classical/,numeric/). Not shipped in the package; released as a single archive ondata-v*GitHub releases, downloaded and unpacked once per machine on first use.data/classical/generated/<domain>-{train,valid,test}/— fixed learning splits produced by the generators. These committed instances are the reproducibility contract; regenerate withpython -m pypddl_datasets.generators.classical.<domain>.generate_instances.scripts/package_data.py— turnsdata/into the byte-reproducibledata.tar.gzrelease archive.validate.py— parses every domain/problem with pypddl; must pass for a data release to go out.
Releasing
Data and package releases are decoupled; data releases are permanent (published package versions pin them by tag).
- Data changed? Tag and push
data-v<N>. The workflow validates all PDDL (aborting the release on failure), packagesdata.tar.gz, and uploads it to thedata-v<N>GitHub release. Copy the sha256 it prints intoDATA_SHA256(and bumpDATA_VERSION) insrc/pypddl_datasets/__init__.py. - Package release: bump
versioninpyproject.toml, tag and pushv<version>. The workflow verifies the tag matches the version and that the pinned data release exists with the pinned hash, then builds and publishes to PyPI via trusted publishing. No assets are uploaded — code releases cost nothing in storage.
Contributing data
Clone with Git LFS (large instances are LFS-tracked):
git lfs install
git clone git@github.com:planning-and-learning/planning-benchmarks.git
cd planning-benchmarks && git lfs pull
Track PDDL files larger than 10 MiB before staging them:
find data -type f -name '*.pddl' -size +10M -print0 | xargs -0 git lfs track --filename
git add .gitattributes data
Domain directories must contain their .pddl files directly (that is how
scripts/package_data.py discovers them), and directory names must not
contain --. Run pytest tests to check suite definitions stay consistent.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypddl_datasets-0.0.1.tar.gz.
File metadata
- Download URL: pypddl_datasets-0.0.1.tar.gz
- Upload date:
- Size: 57.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b3623605e34bd31360ae22f944f39620206a69250b2605e09079884e58b762b
|
|
| MD5 |
30fba6982dc7b524512c7b9560392d2b
|
|
| BLAKE2b-256 |
04743c9b17857d5884fcd0c9c333e6b6bb3a2a659b4284c5e6406032c5277c01
|
Provenance
The following attestation bundles were made for pypddl_datasets-0.0.1.tar.gz:
Publisher:
release.yml on planning-and-learning/planning-benchmarks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypddl_datasets-0.0.1.tar.gz -
Subject digest:
0b3623605e34bd31360ae22f944f39620206a69250b2605e09079884e58b762b - Sigstore transparency entry: 2146572344
- Sigstore integration time:
-
Permalink:
planning-and-learning/planning-benchmarks@bb04f9a0864d20afb3c17e577701350c5a4dcc55 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bb04f9a0864d20afb3c17e577701350c5a4dcc55 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pypddl_datasets-0.0.1-py3-none-any.whl.
File metadata
- Download URL: pypddl_datasets-0.0.1-py3-none-any.whl
- Upload date:
- Size: 100.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c8eabe1ca6c3befda00194cf596e365115cd0bec983a86cf4698124db658758
|
|
| MD5 |
f3a4864e755c3528a2fd2f9228581176
|
|
| BLAKE2b-256 |
916e67f7a446ec048f260076de47261bb33ad03a2e8755bf75fa028542004840
|
Provenance
The following attestation bundles were made for pypddl_datasets-0.0.1-py3-none-any.whl:
Publisher:
release.yml on planning-and-learning/planning-benchmarks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pypddl_datasets-0.0.1-py3-none-any.whl -
Subject digest:
1c8eabe1ca6c3befda00194cf596e365115cd0bec983a86cf4698124db658758 - Sigstore transparency entry: 2146572357
- Sigstore integration time:
-
Permalink:
planning-and-learning/planning-benchmarks@bb04f9a0864d20afb3c17e577701350c5a4dcc55 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/planning-and-learning
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bb04f9a0864d20afb3c17e577701350c5a4dcc55 -
Trigger Event:
push
-
Statement type: