Reproducing
Dataset revision 7f423ac4cb6ab146f7ea7a37872eb4dfc3c9705c; place the train split in
data/raw/train/.
The artifact wraps a byte-preserved base model
(63d71091d7f46e8fb11798b7c2be936cc7e0022954824a4eb98c07dc1bf9b0b3) and differs from it
only in planner policy constants. scripts/build_hierarchical_fpt_submission.py rebuilds
it and asserts the embedded base hash.
docker build -t batteryswap .
docker run --rm -v "$(pwd)":/work -w /work -e PYTHONPATH=/work/src \
batteryswap /app/env/bin/python3 scripts/build_hierarchical_fpt_submission.py \
--output submission_artifacts/weekly99_planner.joblib \
--manifest submission_artifacts/weekly99_planner.json
Run and test:
docker run --rm --network none -e BATTERYSWAP_SPLITS=train \
-e BATTERYSWAP_SUBMISSION_PATH=/out/submission.csv \
-v "$(pwd)/data/raw":/tmp/data:ro -v "$(pwd)/artifacts":/out \
batteryswap /app/env/bin/python3 script.py
docker run --rm -v "$(pwd)":/work -w /work -e PYTHONPATH=/work/src \
batteryswap /app/env/bin/python3 -m pytest -q
Expected: 19,890 rows, byte-identical across repeated runs, inside the 30-minute and 32 GB limits. Re-pickling is not guaranteed byte-reproducible; determinism is checked on the emitted CSV.