Skip to content

Commit 39ec109

Browse files
committed
updated specification syntax to match latest workflow-src branch of nipype2pydra
1 parent 1386dec commit 39ec109

File tree

181 files changed

+11
-91
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

181 files changed

+11
-91
lines changed

nipype-auto-conv/generate

Lines changed: 3 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,3 @@
1-
#!/usr/bin/env python3
2-
import sys
3-
import os.path
4-
from warnings import warn
5-
from pathlib import Path
6-
import shutil
7-
from importlib import import_module
8-
import yaml
9-
from tqdm import tqdm
10-
import nipype
11-
import nipype2pydra.utils
12-
from nipype2pydra.task import get_converter
13-
14-
15-
SPECS_DIR = Path(__file__).parent / "specs"
16-
PKG_ROOT = Path(__file__).parent.parent
17-
PKG_NAME = "freesurfer"
18-
19-
if ".dev" in nipype.__version__:
20-
raise RuntimeError(
21-
f"Cannot use a development version of Nipype {nipype.__version__}"
22-
)
23-
24-
if ".dev" in nipype2pydra.__version__:
25-
warn(
26-
f"using development version of nipype2pydra ({nipype2pydra.__version__}), "
27-
f"development component will be dropped in {PKG_NAME} package version"
28-
)
29-
30-
# Insert specs dir into path so we can load callables modules
31-
sys.path.insert(0, str(SPECS_DIR))
32-
33-
auto_init = f"# Auto-generated by {__file__}, do not edit as it will be overwritten\n\n"
34-
35-
auto_dir = PKG_ROOT / "pydra" / "tasks" / PKG_NAME / "auto"
36-
if auto_dir.exists():
37-
shutil.rmtree(auto_dir)
38-
39-
all_interfaces = []
40-
for fspath in tqdm(
41-
sorted(SPECS_DIR.glob("**/*.yaml")), "converting interfaces from Nipype to Pydra"
42-
):
43-
with open(fspath) as f:
44-
spec = yaml.load(f, Loader=yaml.SafeLoader)
45-
46-
rel_pkg_path = str(fspath.parent.relative_to(SPECS_DIR)).replace(os.path.sep, ".")
47-
if rel_pkg_path == ".":
48-
rel_pkg_path = fspath.stem
49-
else:
50-
rel_pkg_path += "." + fspath.stem
51-
52-
callables = import_module(rel_pkg_path + "_callables")
53-
54-
module_name = nipype2pydra.utils.to_snake_case(spec["task_name"])
55-
56-
converter = get_converter(
57-
output_module=f"pydra.tasks.{PKG_NAME}.auto.{module_name}",
58-
callables_module=callables, # type: ignore
59-
**spec,
60-
)
61-
converter.generate(PKG_ROOT)
62-
auto_init += f"from .{module_name} import {converter.task_name}\n"
63-
all_interfaces.append(converter.task_name)
64-
65-
66-
with open(PKG_ROOT / "pydra" / "tasks" / PKG_NAME / "auto" / "_version.py", "w") as f:
67-
f.write(
68-
f"""# Auto-generated by {__file__}, do not edit as it will be overwritten
69-
70-
nipype_version = "{nipype.__version__.split('.dev')[0]}"
71-
nipype2pydra_version = "{nipype2pydra.__version__.split('.dev')[0]}"
72-
post_release = (nipype_version + nipype2pydra_version).replace(".", "")
73-
"""
74-
)
75-
76-
auto_init += (
77-
"\n\n__all__ = [\n" + "\n".join(f' "{i}",' for i in all_interfaces) + "\n]\n"
78-
)
79-
80-
with open(PKG_ROOT / "pydra" / "tasks" / PKG_NAME / "auto" / "__init__.py", "w") as f:
81-
f.write(auto_init)
1+
#!/usr/bin/env bash
2+
conv_dir=$(dirname $0)
3+
nipype2pydra convert $conv_dir/specs $conv_dir/..

nipype-auto-conv/requirements.txt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,2 @@
1-
black
2-
attrs>=22.1.0
31
nipype
4-
tqdm
5-
pydra
6-
PyYAML>=6.0
7-
fileformats >=0.8
8-
fileformats-medimage >=0.4
9-
fileformats-datascience >= 0.1
10-
fileformats-medimage-freesurfer
11-
traits
122
nipype2pydra
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)