From 20b5a51099db902b3f9ad8f33251564c998e5e46 Mon Sep 17 00:00:00 2001 From: bpinsard Date: Tue, 16 Dec 2025 10:43:06 -0500 Subject: [PATCH 1/4] add missing run params --- datalad_container/containers_run.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/datalad_container/containers_run.py b/datalad_container/containers_run.py index c3db792..0368e13 100644 --- a/datalad_container/containers_run.py +++ b/datalad_container/containers_run.py @@ -77,9 +77,10 @@ class ContainersRun(Interface): @staticmethod @datasetmethod(name='containers_run') @eval_results - def __call__(cmd, container_name=None, dataset=None, - inputs=None, outputs=None, message=None, expand=None, - explicit=False, sidecar=None): + def __call__(cmd, container_name=None, dataset=None, message=None, + inputs=None, outputs=None, assume_ready=None, expand=None, + explicit=False, sidecar=None, + dry_run=None, jobs=None): from unittest.mock import \ patch # delayed, since takes long (~600ms for yoh) pwd, _ = get_command_pwds(dataset) @@ -185,8 +186,11 @@ def __call__(cmd, container_name=None, dataset=None, inputs=inputs, extra_inputs=[image_path] + extra_inputs, outputs=outputs, + assume_ready=assume_ready, message=message, expand=expand, explicit=explicit, - sidecar=sidecar): + sidecar=sidecar, + dry_run=dry_run, + jobs=jobs): yield r From a5daf8eb440f1aa317962ba1eb43a4de7aace609 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Tue, 16 Dec 2025 14:48:49 -0500 Subject: [PATCH 2/4] Add test for new run params (dry_run, assume_ready, jobs) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verifies that dry_run prevents command execution and that assume_ready and jobs parameters are properly passed through. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- datalad_container/tests/test_run.py | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/datalad_container/tests/test_run.py b/datalad_container/tests/test_run.py index c3aa6e0..30b2787 100644 --- a/datalad_container/tests/test_run.py +++ b/datalad_container/tests/test_run.py @@ -276,6 +276,44 @@ def test_extra_inputs(path=None): ) == set(runinfo.get("extra_inputs", set())) +@pytest.mark.ai_generated +@with_tree(tree={"i.img": "doesn't matter"}) +def test_run_new_params(path=None): + """Test that dry_run, assume_ready, and jobs parameters are passed through.""" + ds = Dataset(path).create(force=True, **common_kwargs) + ds.containers_add( + "i", + image="i.img", + call_fmt="sh -c '{cmd}'", + **common_kwargs + ) + ds.save(**common_kwargs) + ok_clean_git(path) + + # Test dry_run='basic': no command should be executed + output_file = op.join(path, "output.txt") + ds.containers_run( + ["touch output.txt"], + dry_run="basic", + **common_kwargs + ) + # The output file should NOT exist because dry_run prevents execution + assert_false(op.exists(output_file)) + # Repository should still be clean (no changes made) + ok_clean_git(path) + + # Test assume_ready and jobs together with actual execution + # assume_ready='inputs' skips input availability check + # jobs=2 sets parallelization level + ds.containers_run( + ["touch output.txt"], + assume_ready="inputs", + jobs=2, + **common_kwargs + ) + ok_(op.exists(output_file)) + + @skip_if_no_network @with_tree(tree={"subdir": {"in": "innards"}}) def test_run_no_explicit_dataset(path=None): From ead7caaf46b8991bc4b22923c3bf67def2a2a33f Mon Sep 17 00:00:00 2001 From: DataLad Bot Date: Sat, 7 Mar 2026 23:59:09 +0000 Subject: [PATCH 3/4] [release-action] Autogenerate changelog snippet for PR 286 --- changelog.d/pr-286.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 changelog.d/pr-286.md diff --git a/changelog.d/pr-286.md b/changelog.d/pr-286.md new file mode 100644 index 0000000..09af78e --- /dev/null +++ b/changelog.d/pr-286.md @@ -0,0 +1,3 @@ +### 🐛 Bug Fixes + +- add missing run params. [PR #286](https://github.com/datalad/datalad-container/pull/286) (by [@bpinsard](https://github.com/bpinsard)) From af674af7c254a7a843c4b7ef47c175178458adcd Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Sat, 7 Mar 2026 19:15:24 -0500 Subject: [PATCH 4/4] improve changelog entry --- changelog.d/pr-286.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.d/pr-286.md b/changelog.d/pr-286.md index 09af78e..5311502 100644 --- a/changelog.d/pr-286.md +++ b/changelog.d/pr-286.md @@ -1,3 +1,3 @@ ### 🐛 Bug Fixes -- add missing run params. [PR #286](https://github.com/datalad/datalad-container/pull/286) (by [@bpinsard](https://github.com/bpinsard)) +- add missing run params `assume_ready`, `dry_run` and `jobs`. [PR #286](https://github.com/datalad/datalad-container/pull/286) (by [@bpinsard](https://github.com/bpinsard))