Skip to content

Commit a40ed0b

Browse files
authored
Merge pull request #2490 from satra/fix/boutiques
fix: handle automatic module creation, name extraction, default value
2 parents 88dbce1 + 7f38e40 commit a40ed0b

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

nipype/utils/nipype2boutiques.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from __future__ import (print_function, division, unicode_literals,
33
absolute_import)
44

5-
from builtins import str, open
5+
from builtins import str, open, bytes
66
# This tool exports a Nipype interface in the Boutiques (https://github.com/boutiques) JSON format.
77
# Boutiques tools can be imported in CBRAIN (https://github.com/aces/cbrain) among other platforms.
88
#
@@ -40,10 +40,12 @@ def generate_boutiques_descriptor(
4040
raise Exception("Undefined module.")
4141

4242
# Retrieves Nipype interface
43-
if isinstance(module, str):
43+
if isinstance(module, (str, bytes)):
4444
import_module(module)
4545
module_name = str(module)
4646
module = sys.modules[module]
47+
else:
48+
module_name = str(module.__name__)
4749

4850
interface = getattr(module, interface_name)()
4951
inputs = interface.input_spec()
@@ -249,7 +251,7 @@ def create_tempfile():
249251
Creates a temp file and returns its name.
250252
'''
251253
fileTemp = tempfile.NamedTemporaryFile(delete=False)
252-
fileTemp.write("hello")
254+
fileTemp.write(b"hello")
253255
fileTemp.close()
254256
return fileTemp.name
255257

@@ -283,6 +285,8 @@ def must_generate_value(name, type, ignored_template_inputs, spec_info, spec,
283285
# Best guess to detect string restrictions...
284286
if "' or '" in spec_info:
285287
return False
288+
if spec.default or spec.default_value():
289+
return False
286290
if not ignored_template_inputs:
287291
return True
288292
return not (name in ignored_template_inputs)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# -*- coding: utf-8 -*-
2+
# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-
3+
# vi: set ft=python sts=4 ts=4 sw=4 et:
4+
from future import standard_library
5+
standard_library.install_aliases()
6+
7+
from ..nipype2boutiques import generate_boutiques_descriptor
8+
9+
10+
def test_generate():
11+
generate_boutiques_descriptor(module='nipype.interfaces.ants.registration',
12+
interface_name='ANTS',
13+
ignored_template_inputs=(),
14+
docker_image=None,
15+
docker_index=None,
16+
verbose=False,
17+
ignore_template_numbers=False)

0 commit comments

Comments
 (0)