diff --git a/pydra/engine/helpers_file.py b/pydra/engine/helpers_file.py
index 8014d43c..065986e3 100644
--- a/pydra/engine/helpers_file.py
+++ b/pydra/engine/helpers_file.py
@@ -91,6 +91,8 @@ def fname_presuffix(fname, prefix="", suffix="", newpath=None, use_ext=True):
 
     Examples
     --------
+    >>> import pytest, sys
+    >>> if sys.platform.startswith('win'): pytest.skip()
     >>> from pydra.engine.helpers_file import fname_presuffix
     >>> fname = 'foo.nii.gz'
     >>> fname_presuffix(fname,'pre','post','/tmp')
@@ -104,7 +106,7 @@ def fname_presuffix(fname, prefix="", suffix="", newpath=None, use_ext=True):
     # No need for isdefined: bool(Undefined) evaluates to False
     if newpath:
         pth = op.abspath(newpath)
-    return op.join(pth, prefix + fname + suffix + ext)
+    return str(Path(pth) / (prefix + fname + suffix + ext))
 
 
 def hash_file(afile, chunk_len=8192, crypto=sha256, raise_notfound=True):
@@ -402,7 +404,7 @@ def get_related_files(filename, include_this_file=True):
         if this_type in type_set:
             for related_type in type_set:
                 if include_this_file or related_type != this_type:
-                    related_files.append(op.join(path, name + related_type))
+                    related_files.append(Path(path) / (name + related_type))
     if not len(related_files):
         related_files = [filename]
     return related_files

updating pydra for windows machine
diff --git a/pydra/engine/tests/test_dockertask.py b/pydra/engine/tests/test_dockertask.py
index 97abc56e..73c7f778 100644
--- a/pydra/engine/tests/test_dockertask.py
+++ b/pydra/engine/tests/test_dockertask.py
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 
-import os, shutil
+import os, sys, shutil
 import subprocess as sp
 import pytest
 import attr
@@ -19,8 +19,13 @@ need_docker = pytest.mark.skipif(
     shutil.which("docker") is None or sp.call(["docker", "info"]),
     reason="no docker within the container",
 )
+no_win = pytest.mark.skipif(
+    sys.platform.startswith("win"),
+    reason="docker command not adjusted for windows docker",
+)
 
 
+@no_win
 @need_docker
 def test_docker_1_nosubm():
     """ simple command in a container, a default bindings and working directory is added
@@ -42,6 +47,7 @@ def test_docker_1_nosubm():
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_1(plugin):
@@ -61,6 +67,7 @@ def test_docker_1(plugin):
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_1_dockerflag(plugin):
@@ -82,6 +89,7 @@ def test_docker_1_dockerflag(plugin):
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_1_dockerflag_exception(plugin):
@@ -94,6 +102,7 @@ def test_docker_1_dockerflag_exception(plugin):
     assert "container_info has to have 2 or 3 elements" in str(excinfo.value)
 
 
+@no_win
 @need_docker
 def test_docker_2_nosubm():
     """ a command with arguments, cmd and args given as executable
@@ -113,6 +122,7 @@ def test_docker_2_nosubm():
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_2(plugin):
@@ -135,6 +145,7 @@ def test_docker_2(plugin):
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_2_dockerflag(plugin):
@@ -159,6 +170,7 @@ def test_docker_2_dockerflag(plugin):
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 def test_docker_2a_nosubm():
     """ a command with arguments, using executable and args
@@ -183,6 +195,7 @@ def test_docker_2a_nosubm():
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_2a(plugin):
@@ -210,6 +223,7 @@ def test_docker_2a(plugin):
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_3(plugin, tmpdir):
@@ -233,6 +247,7 @@ def test_docker_3(plugin, tmpdir):
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_3_dockerflag(plugin, tmpdir):
@@ -259,6 +274,7 @@ def test_docker_3_dockerflag(plugin, tmpdir):
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_3_dockerflagbind(plugin, tmpdir):
@@ -285,6 +301,7 @@ def test_docker_3_dockerflagbind(plugin, tmpdir):
         assert "Unable to find image" in res.output.stderr
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_4(plugin, tmpdir):
@@ -311,6 +328,7 @@ def test_docker_4(plugin, tmpdir):
     assert res.output.return_code == 0
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_4_dockerflag(plugin, tmpdir):
@@ -340,6 +358,7 @@ def test_docker_4_dockerflag(plugin, tmpdir):
 # tests with State
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_st_1(plugin):
@@ -364,6 +383,7 @@ def test_docker_st_1(plugin):
     assert res[0].output.return_code == res[1].output.return_code == 0
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_st_2(plugin):
@@ -388,6 +408,7 @@ def test_docker_st_2(plugin):
     assert res[0].output.return_code == res[1].output.return_code == 0
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_st_3(plugin):
@@ -406,6 +427,7 @@ def test_docker_st_3(plugin):
     assert "Ubuntu" in res[3].output.stdout
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_st_4(plugin):
@@ -448,6 +470,7 @@ def test_docker_st_4(plugin):
 # tests with workflows
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_wf_docker_1(plugin, tmpdir):
@@ -492,6 +515,7 @@ def test_wf_docker_1(plugin, tmpdir):
     assert res.output.out == "message from the previous task: hello from pydra"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_wf_docker_1_dockerflag(plugin, tmpdir):
@@ -532,6 +556,7 @@ def test_wf_docker_1_dockerflag(plugin, tmpdir):
     assert res.output.out == "message from the previous task: hello from pydra"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_wf_docker_2pre(plugin, tmpdir):
@@ -553,6 +578,7 @@ def test_wf_docker_2pre(plugin, tmpdir):
     assert res.output.stdout == "/outputs/tmp.txt"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_wf_docker_2(plugin, tmpdir):
@@ -593,6 +619,7 @@ def test_wf_docker_2(plugin, tmpdir):
     assert res.output.out == "Hello!"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_wf_docker_3(plugin, tmpdir):
@@ -636,6 +663,7 @@ def test_wf_docker_3(plugin, tmpdir):
 # tests with customized output_spec
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_outputspec_1(plugin, tmpdir):
@@ -664,6 +692,7 @@ def test_docker_outputspec_1(plugin, tmpdir):
 # tests with customised input_spec
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_inputspec_1(plugin, tmpdir):
@@ -705,6 +734,7 @@ def test_docker_inputspec_1(plugin, tmpdir):
     assert res.output.stdout == "hello from pydra"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_inputspec_1a(plugin, tmpdir):
@@ -744,6 +774,7 @@ def test_docker_inputspec_1a(plugin, tmpdir):
     assert res.output.stdout == "hello from pydra"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_inputspec_2(plugin, tmpdir):
@@ -792,6 +823,7 @@ def test_docker_inputspec_2(plugin, tmpdir):
     assert res.output.stdout == "hello from pydra\nhave a nice one"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_inputspec_2a_except(plugin, tmpdir):
@@ -843,6 +875,7 @@ def test_docker_inputspec_2a_except(plugin, tmpdir):
     assert res.output.stdout == "hello from pydra\nhave a nice one"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_inputspec_2a(plugin, tmpdir):
@@ -894,6 +927,7 @@ def test_docker_inputspec_2a(plugin, tmpdir):
     assert res.output.stdout == "hello from pydra\nhave a nice one"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_inputspec_3(plugin, tmpdir):
@@ -937,6 +971,7 @@ def test_docker_inputspec_3(plugin, tmpdir):
     assert cmdline == docky.cmdline
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_inputspec_3a(plugin, tmpdir):
@@ -980,6 +1015,7 @@ def test_docker_inputspec_3a(plugin, tmpdir):
     assert "use field.metadata['container_path']=True" in str(excinfo.value)
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_cmd_inputspec_copyfile_1(plugin, tmpdir):
@@ -1042,6 +1078,7 @@ def test_docker_cmd_inputspec_copyfile_1(plugin, tmpdir):
         assert "hello from pydra\n" == f.read()
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_inputspec_state_1(plugin, tmpdir):
@@ -1090,6 +1127,7 @@ def test_docker_inputspec_state_1(plugin, tmpdir):
     assert res[1].output.stdout == "have a nice one"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_inputspec_state_1b(plugin, tmpdir):
@@ -1139,6 +1177,7 @@ def test_docker_inputspec_state_1b(plugin, tmpdir):
     assert res[1].output.stdout == "have a nice one"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_wf_inputspec_1(plugin, tmpdir):
@@ -1190,6 +1229,7 @@ def test_docker_wf_inputspec_1(plugin, tmpdir):
     assert res.output.out == "hello from pydra"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_wf_state_inputspec_1(plugin, tmpdir):
@@ -1247,6 +1287,7 @@ def test_docker_wf_state_inputspec_1(plugin, tmpdir):
     assert res[1].output.out == "have a nice one"
 
 
+@no_win
 @need_docker
 @pytest.mark.parametrize("plugin", Plugins)
 def test_docker_wf_ndst_inputspec_1(plugin, tmpdir):
diff --git a/pydra/engine/tests/test_helpers_file.py b/pydra/engine/tests/test_helpers_file.py
index 381b7a54..b13f5e3b 100644
--- a/pydra/engine/tests/test_helpers_file.py
+++ b/pydra/engine/tests/test_helpers_file.py
@@ -41,12 +41,12 @@ def test_split_filename(filename, split):
 def test_fname_presuffix():
     fname = "foo.nii"
     pth = fname_presuffix(fname, "pre_", "_post", "/tmp")
-    assert pth == "/tmp/pre_foo_post.nii"
+    assert pth == str(Path("/tmp/pre_foo_post.nii"))
     fname += ".gz"
     pth = fname_presuffix(fname, "pre_", "_post", "/tmp")
-    assert pth == "/tmp/pre_foo_post.nii.gz"
+    assert pth == str(Path("/tmp/pre_foo_post.nii.gz"))
     pth = fname_presuffix(fname, "pre_", "_post", "/tmp", use_ext=False)
-    assert pth == "/tmp/pre_foo_post"
+    assert pth == str(Path("/tmp/pre_foo_post"))
 
 
 @pytest.fixture()
@@ -56,7 +56,7 @@ def _temp_analyze_files(tmpdir):
     orig_hdr = tmpdir.join("orig.hdr")
     orig_img.open("w+").close()
     orig_hdr.open("w+").close()
-    return str(orig_img), str(orig_hdr)
+    return Path(orig_img), Path(orig_hdr)
 
 
 @pytest.fixture()
@@ -66,7 +66,7 @@ def _temp_analyze_files_prime(tmpdir):
     orig_hdr = tmpdir.join("orig_prime.hdr")
     orig_img.open("w+").close()
     orig_hdr.open("w+").close()
-    return orig_img.strpath, orig_hdr.strpath
+    return Path(orig_img.strpath), Path(orig_hdr.strpath)
 
 
 def test_copyfile(_temp_analyze_files):
@@ -213,11 +213,19 @@ def test_ensure_list(filename, expected):
 @pytest.mark.parametrize(
     "file, length, expected_files",
     [
-        ("/path/test.img", 3, ["/path/test.hdr", "/path/test.img", "/path/test.mat"]),
-        ("/path/test.hdr", 3, ["/path/test.hdr", "/path/test.img", "/path/test.mat"]),
-        ("/path/test.BRIK", 2, ["/path/test.BRIK", "/path/test.HEAD"]),
-        ("/path/test.HEAD", 2, ["/path/test.BRIK", "/path/test.HEAD"]),
-        ("/path/foo.nii", 2, ["/path/foo.nii", "/path/foo.mat"]),
+        (
+            "/path/test.img",
+            3,
+            [Path("/path/test.hdr"), Path("/path/test.img"), Path("/path/test.mat")],
+        ),
+        (
+            "/path/test.hdr",
+            3,
+            [Path("/path/test.hdr"), Path("/path/test.img"), Path("/path/test.mat")],
+        ),
+        ("/path/test.BRIK", 2, [Path("/path/test.BRIK"), Path("/path/test.HEAD")]),
+        ("/path/test.HEAD", 2, [Path("/path/test.BRIK"), Path("/path/test.HEAD")]),
+        ("/path/foo.nii", 2, [Path("/path/foo.nii"), Path("/path/foo.mat")]),
     ],
 )
 def test_related_files(file, length, expected_files):
diff --git a/pydra/engine/tests/test_shelltask.py b/pydra/engine/tests/test_shelltask.py
index 011e83c7..d2d6936c 100644
--- a/pydra/engine/tests/test_shelltask.py
+++ b/pydra/engine/tests/test_shelltask.py
@@ -41,7 +41,7 @@ def test_shell_cmd_1(plugin, results_function):
     assert shelly.cmdline == " ".join(cmd)
 
     res = results_function(shelly, plugin=plugin)
-    assert res.output.stdout == str(shelly.output_dir) + "\n"
+    assert Path(res.output.stdout.rstrip()) == shelly.output_dir
     assert res.output.return_code == 0
     assert res.output.stderr == ""
 
@@ -57,7 +57,7 @@ def test_shell_cmd_1_strip(plugin, results_function):
     assert shelly.cmdline == " ".join(cmd)
 
     res = results_function(shelly, plugin)
-    assert res.output.stdout == str(shelly.output_dir)
+    assert Path(res.output.stdout) == Path(shelly.output_dir)
     assert res.output.return_code == 0
     assert res.output.stderr == ""
 
@@ -124,7 +124,8 @@ def test_shell_cmd_3(plugin):
     shelly = ShellCommandTask(name="shelly", executable=cmd).split("executable")
     assert shelly.cmdline == ["pwd", "whoami"]
     res = shelly(plugin=plugin)
-    assert res[0].output.stdout == f"{str(shelly.output_dir[0])}\n"
+    assert Path(res[0].output.stdout.rstrip()) == shelly.output_dir[0]
+
     if "USER" in os.environ:
         assert res[1].output.stdout == f"{os.environ['USER']}\n"
     else:
diff --git a/pydra/engine/tests/test_task.py b/pydra/engine/tests/test_task.py
index e624a39c..cc97a138 100644
--- a/pydra/engine/tests/test_task.py
+++ b/pydra/engine/tests/test_task.py
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 
 import typing as ty
-import os
+import os, sys
 import pytest
 
 from ... import mark
@@ -15,6 +15,11 @@ from ..task import (
 from ...utils.messenger import FileMessenger, PrintMessenger, collect_messages
 from .utils import gen_basic_wf
 
+no_win = pytest.mark.skipif(
+    sys.platform.startswith("win"),
+    reason="docker/singularity command not adjusted for windows",
+)
+
 
 @mark.task
 def funaddtwo(a):
@@ -372,6 +377,7 @@ def test_container_cmds(tmpdir):
     assert containy.cmdline
 
 
+@no_win
 def test_docker_cmd(tmpdir):
     docky = DockerTask(name="docky", executable="pwd", image="busybox")
     assert (
@@ -393,6 +399,7 @@ def test_docker_cmd(tmpdir):
     )
 
 
+@no_win
 def test_singularity_cmd(tmpdir):
     # todo how this should be done?
     image = "library://sylabsed/linux/alpine"

pip install -e .[dev]
parse_log_pytest
pytest
pytest
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
asttokens==3.0.0
attrs==25.3.0
beautifulsoup4==4.13.3
black==25.1.0
bleach==6.2.0
cachetools==5.5.2
certifi==2025.1.31
cfgv==3.4.0
charset-normalizer==3.4.1
ci-info==0.3.0
click==8.1.8
cloudpickle==3.1.1
codecov==2.1.13
comm==0.2.2
coverage==7.8.0
debugpy==1.8.13
decorator==5.2.1
defusedxml==0.7.1
distlib==0.3.9
entrypoints==0.4
etelemetry==0.3.1
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
execnet==2.1.1
executing==2.2.0
fastjsonschema==2.21.1
filelock==3.18.0
frozendict==2.4.6
identify==2.6.9
idna==3.10
importlib_metadata==8.6.1
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
ipykernel==6.9.2
ipython==8.18.1
ipython-genutils==0.2.0
ipywidgets==8.1.5
jedi==0.19.2
Jinja2==3.1.6
json5==0.10.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter==1.1.1
jupyter-client==7.1.2
jupyter-console==6.4.4
jupyter-contrib-nbextensions==0.5.1
jupyter-highlight-selected-word==0.2.0
jupyter_contrib_core==0.4.2
jupyter_core==5.7.2
jupyter_latex_envs==1.4.6
jupyter_nbextensions_configurator==0.4.1
jupyterlab==2.3.2
jupyterlab-server==1.2.0
jupyterlab_pygments==0.3.0
jupyterlab_widgets==3.0.13
lxml==5.3.1
MarkupSafe==3.0.2
matplotlib-inline==0.1.7
mistune==3.1.3
mypy-extensions==1.0.0
nbclient==0.10.2
nbconvert==7.16.6
nbformat==5.10.4
nest-asyncio==1.6.0
nodeenv==1.9.1
notebook==5.7.8
numpy==2.0.2
packaging @ file:///croot/packaging_1734472117206/work
pandocfilters==1.5.1
parso==0.8.4
pathspec==0.12.1
pexpect==4.9.0
platformdirs==4.3.7
pluggy @ file:///croot/pluggy_1733169602837/work
pre_commit==4.2.0
prometheus_client==0.21.1
prompt_toolkit==3.0.50
psutil==7.0.0
ptyprocess==0.7.0
pure_eval==0.2.3
-e git+https://github.com/nipype/pydra.git@bba381dbd60a13b148975ff853f25a13f29da970#egg=pydra
Pygments==2.19.1
PyLD==2.0.4
pytest @ file:///croot/pytest_1738938843180/work
pytest-cov==6.0.0
pytest-env==1.1.5
pytest-xdist==3.6.1
python-dateutil==2.9.0.post0
PyYAML==6.0.2
pyzmq==26.3.0
referencing==0.36.2
requests==2.32.3
rpds-py==0.24.0
Send2Trash==1.8.3
six==1.17.0
soupsieve==2.6
stack-data==0.6.3
terminado==0.13.3
tinycss2==1.4.0
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
tornado==4.5.3
traitlets==5.14.3
typing_extensions==4.13.0
urllib3==2.3.0
virtualenv==20.29.3
wcwidth==0.2.13
webencodings==0.5.1
widgetsnbextension==4.0.13
zipp==3.21.0

name: pydra
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pip=25.0=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py39h06a4308_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - asttokens==3.0.0
      - attrs==25.3.0
      - beautifulsoup4==4.13.3
      - black==25.1.0
      - bleach==6.2.0
      - cachetools==5.5.2
      - certifi==2025.1.31
      - cfgv==3.4.0
      - charset-normalizer==3.4.1
      - ci-info==0.3.0
      - click==8.1.8
      - cloudpickle==3.1.1
      - codecov==2.1.13
      - comm==0.2.2
      - coverage==7.8.0
      - debugpy==1.8.13
      - decorator==5.2.1
      - defusedxml==0.7.1
      - distlib==0.3.9
      - entrypoints==0.4
      - etelemetry==0.3.1
      - execnet==2.1.1
      - executing==2.2.0
      - fastjsonschema==2.21.1
      - filelock==3.18.0
      - frozendict==2.4.6
      - identify==2.6.9
      - idna==3.10
      - importlib-metadata==8.6.1
      - ipykernel==6.9.2
      - ipython==8.18.1
      - ipython-genutils==0.2.0
      - ipywidgets==8.1.5
      - jedi==0.19.2
      - jinja2==3.1.6
      - json5==0.10.0
      - jsonschema==4.23.0
      - jsonschema-specifications==2024.10.1
      - jupyter==1.1.1
      - jupyter-client==7.1.2
      - jupyter-console==6.4.4
      - jupyter-contrib-core==0.4.2
      - jupyter-contrib-nbextensions==0.5.1
      - jupyter-core==5.7.2
      - jupyter-highlight-selected-word==0.2.0
      - jupyter-latex-envs==1.4.6
      - jupyter-nbextensions-configurator==0.4.1
      - jupyterlab==2.3.2
      - jupyterlab-pygments==0.3.0
      - jupyterlab-server==1.2.0
      - jupyterlab-widgets==3.0.13
      - lxml==5.3.1
      - markupsafe==3.0.2
      - matplotlib-inline==0.1.7
      - mistune==3.1.3
      - mypy-extensions==1.0.0
      - nbclient==0.10.2
      - nbconvert==7.16.6
      - nbformat==5.10.4
      - nest-asyncio==1.6.0
      - nodeenv==1.9.1
      - notebook==5.7.8
      - numpy==2.0.2
      - pandocfilters==1.5.1
      - parso==0.8.4
      - pathspec==0.12.1
      - pexpect==4.9.0
      - platformdirs==4.3.7
      - pre-commit==4.2.0
      - prometheus-client==0.21.1
      - prompt-toolkit==3.0.50
      - psutil==7.0.0
      - ptyprocess==0.7.0
      - pure-eval==0.2.3
      - pydra==0.4
      - pygments==2.19.1
      - pyld==2.0.4
      - pytest-cov==6.0.0
      - pytest-env==1.1.5
      - pytest-xdist==3.6.1
      - python-dateutil==2.9.0.post0
      - pyyaml==6.0.2
      - pyzmq==26.3.0
      - referencing==0.36.2
      - requests==2.32.3
      - rpds-py==0.24.0
      - send2trash==1.8.3
      - six==1.17.0
      - soupsieve==2.6
      - stack-data==0.6.3
      - terminado==0.13.3
      - tinycss2==1.4.0
      - tornado==4.5.3
      - traitlets==5.14.3
      - typing-extensions==4.13.0
      - urllib3==2.3.0
      - virtualenv==20.29.3
      - wcwidth==0.2.13
      - webencodings==0.5.1
      - widgetsnbextension==4.0.13
      - zipp==3.21.0
prefix: /opt/conda/envs/pydra

pydra/engine/tests/test_helpers_file.py::test_get_related_files pydra/engine/tests/test_helpers_file.py::test_get_related_files_noninclusive pydra/engine/tests/test_helpers_file.py::test_related_files[/path/test.img-3-expected_files0] pydra/engine/tests/test_helpers_file.py::test_related_files[/path/test.hdr-3-expected_files1] pydra/engine/tests/test_helpers_file.py::test_related_files[/path/test.BRIK-2-expected_files2] pydra/engine/tests/test_helpers_file.py::test_related_files[/path/test.HEAD-2-expected_files3] pydra/engine/tests/test_helpers_file.py::test_related_files[/path/foo.nii-2-expected_files4]
pydra/engine/tests/test_helpers_file.py::test_split_filename[foo.nii-split0] pydra/engine/tests/test_helpers_file.py::test_split_filename[foo.nii.gz-split1] pydra/engine/tests/test_helpers_file.py::test_split_filename[foo.niml.dset-split2] pydra/engine/tests/test_helpers_file.py::test_split_filename[/usr/local/foo.nii.gz-split3] pydra/engine/tests/test_helpers_file.py::test_split_filename[../usr/local/foo.nii-split4] pydra/engine/tests/test_helpers_file.py::test_split_filename[/usr/local/foo.a.b.c.d-split5] pydra/engine/tests/test_helpers_file.py::test_split_filename[/usr/local/-split6] pydra/engine/tests/test_helpers_file.py::test_fname_presuffix pydra/engine/tests/test_helpers_file.py::test_copyfile pydra/engine/tests/test_helpers_file.py::test_copyfile_true pydra/engine/tests/test_helpers_file.py::test_copyfiles pydra/engine/tests/test_helpers_file.py::test_linkchain pydra/engine/tests/test_helpers_file.py::test_recopy pydra/engine/tests/test_helpers_file.py::test_ensure_list[foo.nii-expected0] pydra/engine/tests/test_helpers_file.py::test_ensure_list[filename1-expected1] pydra/engine/tests/test_helpers_file.py::test_ensure_list[filename2-expected2] pydra/engine/tests/test_helpers_file.py::test_ensure_list[12.34-None] pydra/engine/tests/test_helpers_file.py::test_parse_mount_table[sysfs pydra/engine/tests/test_helpers_file.py::test_parse_mount_table[/dev/disk2 pydra/engine/tests/test_helpers_file.py::test_parse_mount_table[-1-expected2] pydra/engine/tests/test_helpers_file.py::test_parse_mount_table[overlay pydra/engine/tests/test_helpers_file.py::test_parse_mount_table[/proc pydra/engine/tests/test_helpers_file.py::test_cifs_check pydra/engine/tests/test_shelltask.py::test_shell_cmd_1[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_1[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_1_strip[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_1_strip[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_2[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_2[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_2a[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_2a[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_2b[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_2b[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_3[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_4[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_5[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_6[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_7[cf] pydra/engine/tests/test_shelltask.py::test_wf_shell_cmd_1[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_1[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_1[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_2[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_2[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_3[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_3[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_3a[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_3a[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_3b[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_3b[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_3c_exception[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_3c[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_3c[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_4[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_4[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_4a[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_4a[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_4b[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_4b[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_4c_exception[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_4d_exception[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_5_nosubm[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_5_nosubm[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_5a_exception[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_6[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_6[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_6a_exception[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_6b[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_6b[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_7[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_7[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_7a[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_7a[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_8[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_8[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_copyfile_1[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_copyfile_1[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_copyfile_1a[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_copyfile_1a[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_state_1[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_state_1[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_state_1a[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_state_1a[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_state_2[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_state_2[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_state_3[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_state_3[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_copyfile_state_1[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_inputspec_copyfile_state_1[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_wf_shell_cmd_2[cf] pydra/engine/tests/test_shelltask.py::test_wf_shell_cmd_2a[cf] pydra/engine/tests/test_shelltask.py::test_wf_shell_cmd_3[cf] pydra/engine/tests/test_shelltask.py::test_wf_shell_cmd_3a[cf] pydra/engine/tests/test_shelltask.py::test_wf_shell_cmd_state_1[cf] pydra/engine/tests/test_shelltask.py::test_wf_shell_cmd_ndst_1[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_1[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_1[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_1a[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_1a[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_1b_exception[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_2[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_2[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_2a_exception[cf] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_3[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_3[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_4[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_4[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_5[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_5[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_state_outputspec_1[cf-result_no_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_state_outputspec_1[cf-result_submitter] pydra/engine/tests/test_shelltask.py::test_shell_cmd_outputspec_wf_1[cf] pydra/engine/tests/test_task.py::test_output pydra/engine/tests/test_task.py::test_numpy pydra/engine/tests/test_task.py::test_annotated_func pydra/engine/tests/test_task.py::test_annotated_func_multreturn pydra/engine/tests/test_task.py::test_annotated_func_multreturn_exception pydra/engine/tests/test_task.py::test_halfannotated_func pydra/engine/tests/test_task.py::test_halfannotated_func_multreturn pydra/engine/tests/test_task.py::test_notannotated_func pydra/engine/tests/test_task.py::test_notannotated_func_returnlist pydra/engine/tests/test_task.py::test_halfannotated_func_multrun_returnlist pydra/engine/tests/test_task.py::test_notannotated_func_multreturn pydra/engine/tests/test_task.py::test_exception_func pydra/engine/tests/test_task.py::test_audit_prov pydra/engine/tests/test_task.py::test_audit_all pydra/engine/tests/test_task.py::test_shell_cmd pydra/engine/tests/test_task.py::test_container_cmds pydra/engine/tests/test_task.py::test_docker_cmd pydra/engine/tests/test_task.py::test_singularity_cmd pydra/engine/tests/test_task.py::test_functask_callable pydra/engine/tests/test_task.py::test_taskhooks
pydra/engine/helpers_file.py
pydra/engine/helpers_file.py