Skip to content

Commit 4de5a82

Browse files
committed
fixed up parsing of doctest strings split over multiple paras
1 parent 91c2899 commit 4de5a82

File tree

4 files changed

+21
-14
lines changed

4 files changed

+21
-14
lines changed

nipype-interfaces-to-import.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,6 @@ interfaces:
472472
- FEAT
473473
- FEATModel
474474
- FILMGLS
475-
- FEATRegister
476475
- FLAMEO
477476
- ContrastMgr
478477
- L2Model

nipype2pydra/task.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -871,9 +871,14 @@ def write_tests(self, filename_test, input_fields, nonstd_types, run=False):
871871
)
872872
spec_str = "\n".join(imports) + "\n\n" + spec_str
873873

874-
spec_str_black = black.format_file_contents(
875-
spec_str, fast=False, mode=black.FileMode()
876-
)
874+
try:
875+
spec_str_black = black.format_file_contents(
876+
spec_str, fast=False, mode=black.FileMode()
877+
)
878+
except black.parsing.InvalidInput as e:
879+
raise RuntimeError(
880+
f"Black could not parse generated code: {e}\n\n{spec_str}"
881+
)
877882

878883
with open(filename_test, "w") as f:
879884
f.write(spec_str_black)

scripts/pkg_gen/create_packages.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -204,10 +204,10 @@ def fields_stub(name, category_class, values=None):
204204
doctest_blocks = []
205205
for para in doc_str.split("\n\n"):
206206
if "cmdline" in para:
207-
doctest_blocks.append(prev_block + para)
207+
doctest_blocks.append(prev_block + "\n" + para)
208208
prev_block = ""
209-
else:
210-
prev_block += para
209+
elif ">>>" in para:
210+
prev_block += "\n" + para
211211

212212
doctests: ty.List[DocTestGenerator] = []
213213
tests: ty.List[TestGenerator] = [
@@ -591,23 +591,26 @@ def parse_nipype_interface(
591591
if isinstance(inpt.trait_type, nipype.interfaces.base.core.traits.Enum):
592592
inpt_mdata += f"|allowed[{','.join(sorted(repr(v) for v in inpt.trait_type.values))}]"
593593
input_helps[inpt_name] = f"{inpt_mdata}: {inpt_desc}"
594+
trait_type_name = type(inpt.trait_type).__name__
594595
if inpt.genfile:
595596
genfile_outputs.append(inpt_name)
596-
elif type(inpt.trait_type).__name__ == "File":
597+
elif trait_type_name == "File":
597598
file_inputs.append(inpt_name)
598-
elif type(inpt.trait_type).__name__ == "Directory":
599+
elif trait_type_name == "Directory":
599600
dir_inputs.append(inpt_name)
600-
elif type(inpt.trait_type).__name__ == "InputMultiObject":
601-
if inpt.trait_type.item_trait and inpt.trait_type.item_trait.trait_type._is_dir:
601+
elif trait_type_name == "InputMultiObject":
602+
inner_trait_type_name = type(inpt.trait_type.item_trait.trait_type).__name__
603+
if inner_trait_type_name == "Directory":
602604
dir_inputs.append(inpt_name)
603-
else:
605+
elif inner_trait_type_name == "File":
604606
file_inputs.append(inpt_name)
605607
multi_inputs.append(inpt_name)
606608
elif (
607609
type(inpt.trait_type).__name__ == "List"
608610
and type(inpt.trait_type.inner_traits()[0].handler).__name__ in ("File", "Directory")
609611
):
610-
if type(inpt.trait_type.inner_traits()[0].handler).__name__ == "File":
612+
item_type_name = type(inpt.trait_type.inner_traits()[0].handler).__name__
613+
if item_type_name == "File":
611614
file_inputs.append(inpt_name)
612615
else:
613616
dir_inputs.append(inpt_name)

scripts/pkg_gen/fsl-only.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ packages:
22
- fsl
33
interfaces:
44
fsl:
5-
- AccuracyTester
5+
- FNIRT
66

0 commit comments

Comments
 (0)