|
19 | 19 | import os
|
20 | 20 | import sys
|
21 | 21 | import simplejson as json
|
22 |
| -import six |
23 | 22 |
|
24 | 23 | from ..scripts.instance import import_module
|
25 | 24 |
|
@@ -310,7 +309,7 @@ def get_boutiques_input(inputs, interface, input_name, spec, verbose,
|
310 | 309 | inp['type'] = "String"
|
311 | 310 | if trait_handler.minlen != 0:
|
312 | 311 | inp['min-list-entries'] = trait_handler.minlen
|
313 |
| - if trait_handler.maxlen != six.MAXSIZE: |
| 312 | + if trait_handler.maxlen != sys.maxsize: |
314 | 313 | inp['max-list-entries'] = trait_handler.maxlen
|
315 | 314 | if spec.sep:
|
316 | 315 | inp['list-separator'] = spec.sep
|
@@ -353,6 +352,8 @@ def get_boutiques_input(inputs, interface, input_name, spec, verbose,
|
353 | 352 | inp['optional'] = False
|
354 | 353 | if spec.usedefault:
|
355 | 354 | inp['default-value'] = spec.default_value()[1]
|
| 355 | + if spec.requires is not None: |
| 356 | + inp['requires-inputs'] = spec.requires |
356 | 357 |
|
357 | 358 | try:
|
358 | 359 | value_choices = trait_handler.values
|
@@ -422,7 +423,8 @@ def get_boutiques_output(outputs, name, spec, interface, tool_inputs):
|
422 | 423 |
|
423 | 424 | # Handle multi-outputs
|
424 | 425 | if (isinstance(output_value, list) or
|
425 |
| - type(spec.handler).__name__ == "OutputMultiObject"): |
| 426 | + type(spec.handler).__name__ == "OutputMultiObject" or |
| 427 | + type(spec.handler).__name__ == "List"): |
426 | 428 | output['list'] = True
|
427 | 429 | if output_value:
|
428 | 430 | # Check if all extensions are the same
|
@@ -451,32 +453,19 @@ def get_boutiques_output(outputs, name, spec, interface, tool_inputs):
|
451 | 453 | def get_boutiques_groups(input_traits):
|
452 | 454 | """
|
453 | 455 | Returns a list of dictionaries containing Boutiques groups for the mutually
|
454 |
| - exclusive and all-or-none Nipype inputs. |
| 456 | + exclusive Nipype inputs. |
455 | 457 | """
|
456 | 458 | desc_groups = []
|
457 |
| - all_or_none_input_sets = [] |
458 | 459 | mutex_input_sets = []
|
459 | 460 |
|
460 | 461 | # Get all the groups
|
461 | 462 | for name, spec in input_traits:
|
462 |
| - if spec.requires is not None: |
463 |
| - group_members = set([name] + list(spec.requires)) |
464 |
| - if group_members not in all_or_none_input_sets: |
465 |
| - all_or_none_input_sets.append(group_members) |
466 | 463 | if spec.xor is not None:
|
467 | 464 | group_members = set([name] + list(spec.xor))
|
468 | 465 | if group_members not in mutex_input_sets:
|
469 | 466 | mutex_input_sets.append(group_members)
|
470 | 467 |
|
471 | 468 | # Create a dictionary for each one
|
472 |
| - for i, inp_set in enumerate(all_or_none_input_sets, 1): |
473 |
| - desc_groups.append({'id': "all_or_none_group" + |
474 |
| - ("_" + str(i) if i != 1 else ""), |
475 |
| - 'name': "All or none group" + |
476 |
| - (" " + str(i) if i != 1 else ""), |
477 |
| - 'members': list(inp_set), |
478 |
| - 'all-or-none': True}) |
479 |
| - |
480 | 469 | for i, inp_set in enumerate(mutex_input_sets, 1):
|
481 | 470 | desc_groups.append({'id': "mutex_group" +
|
482 | 471 | ("_" + str(i) if i != 1 else ""),
|
|
0 commit comments