Skip to content

Commit 6ed57fe

Browse files
authored
Merge pull request #26 from nipype/nipype-prefix
added nipype.interfaces. prefix to nipype package generation spec
2 parents 552a6b6 + f2e6c32 commit 6ed57fe

File tree

6 files changed

+50
-47
lines changed

6 files changed

+50
-47
lines changed

example-specs/pkg-gen/nipype.yaml

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
afni:
1+
nipype.interfaces.afni:
22
target_version: v25_2_06
33
interfaces:
44
- nipype.interfaces.afni.model.Deconvolve
@@ -81,7 +81,7 @@ afni:
8181
- nipype.interfaces.afni.utils.Axialize
8282
- nipype.interfaces.afni.utils.Zcat
8383
- nipype.interfaces.afni.utils.Zeropad
84-
ants:
84+
nipype.interfaces.ants:
8585
target_version: v2
8686
interfaces:
8787
- nipype.interfaces.ants.legacy.antsIntroduction
@@ -119,7 +119,7 @@ ants:
119119
- nipype.interfaces.ants.visualization.CreateTiledMosaic
120120
classes:
121121
- nipype.interfaces.ants.base.Info
122-
brainsuite:
122+
nipype.interfaces.brainsuite:
123123
target_version: v1_0
124124
interfaces:
125125
- nipype.interfaces.brainsuite.brainsuite.Bse
@@ -137,16 +137,16 @@ brainsuite:
137137
- nipype.interfaces.brainsuite.brainsuite.SVReg
138138
- nipype.interfaces.brainsuite.brainsuite.BDP
139139
- nipype.interfaces.brainsuite.brainsuite.ThicknessPVC
140-
bru2nii:
140+
nipype.interfaces.bru2nii:
141141
target_version: v1_0
142142
interfaces:
143143
- nipype.interfaces.bru2nii.Bru2
144-
c3:
144+
nipype.interfaces.c3:
145145
target_version: v1_0
146146
interfaces:
147147
- nipype.interfaces.c3.C3dAffineTool
148148
- nipype.interfaces.c3.C3d
149-
camino:
149+
nipype.interfaces.camino:
150150
target_version: v1_0
151151
interfaces:
152152
- nipype.interfaces.camino.calib.SFPICOCalibData
@@ -183,19 +183,19 @@ camino:
183183
- nipype.interfaces.camino.odf.MESD
184184
- nipype.interfaces.camino.odf.SFPeaks
185185
- nipype.interfaces.camino.utils.ImageStats
186-
camino2trackvis:
186+
nipype.interfaces.camino2trackvis:
187187
target_version: v1_0
188188
interfaces:
189189
- nipype.interfaces.camino2trackvis.convert.Camino2Trackvis
190190
- nipype.interfaces.camino2trackvis.convert.Trackvis2Camino
191-
cat12:
191+
nipype.interfaces.cat12:
192192
target_version: v1_0
193193
interfaces:
194194
- nipype.interfaces.cat12.preprocess.CAT12Segment
195195
- nipype.interfaces.cat12.preprocess.CAT12SANLMDenoising
196196
- nipype.interfaces.cat12.surface.ExtractAdditionalSurfaceParameters
197197
- nipype.interfaces.cat12.surface.ExtractROIBasedSurfaceMeasures
198-
cmtk:
198+
nipype.interfaces.cmtk:
199199
target_version: v1_0
200200
interfaces:
201201
- nipype.interfaces.cmtk.cmtk.CreateMatrix
@@ -207,13 +207,13 @@ cmtk:
207207
- nipype.interfaces.cmtk.nx.NetworkXMetrics
208208
- nipype.interfaces.cmtk.nx.AverageNetworks
209209
- nipype.interfaces.cmtk.parcellation.Parcellate
210-
dcm2nii:
210+
nipype.interfaces.dcm2nii:
211211
target_version: v1_0
212212
interfaces:
213213
- nipype.interfaces.dcm2nii.Info
214214
- nipype.interfaces.dcm2nii.Dcm2nii
215215
- nipype.interfaces.dcm2nii.Dcm2niix
216-
dcmstack:
216+
nipype.interfaces.dcmstack:
217217
target_version: v1_0
218218
interfaces:
219219
- nipype.interfaces.dcmstack.NiftiGeneratorBase
@@ -223,7 +223,7 @@ dcmstack:
223223
- nipype.interfaces.dcmstack.CopyMeta
224224
- nipype.interfaces.dcmstack.MergeNifti
225225
- nipype.interfaces.dcmstack.SplitNifti
226-
diffusion_toolkit:
226+
nipype.interfaces.diffusion_toolkit:
227227
target_version: v1_0
228228
interfaces:
229229
- nipype.interfaces.diffusion_toolkit.dti.DTIRecon
@@ -233,7 +233,7 @@ diffusion_toolkit:
233233
- nipype.interfaces.diffusion_toolkit.odf.ODFTracker
234234
- nipype.interfaces.diffusion_toolkit.postproc.SplineFilter
235235
- nipype.interfaces.diffusion_toolkit.postproc.TrackMerge
236-
dipy:
236+
nipype.interfaces.dipy:
237237
target_version: v1_0
238238
interfaces:
239239
- nipype.interfaces.dipy.anisotropic_power.APMQball
@@ -247,7 +247,7 @@ dipy:
247247
- nipype.interfaces.dipy.tensors.TensorMode
248248
- nipype.interfaces.dipy.tracks.TrackDensityMap
249249
- nipype.interfaces.dipy.tracks.StreamlineTractography
250-
dtitk:
250+
nipype.interfaces.dtitk:
251251
target_version: v1_0
252252
interfaces:
253253
- nipype.interfaces.dtitk.registration.Rigid
@@ -279,19 +279,19 @@ dtitk:
279279
- nipype.interfaces.dtitk.utils.TVAdjustVoxSpTask
280280
- nipype.interfaces.dtitk.utils.TVResampleTask
281281
- nipype.interfaces.dtitk.utils.TVtoolTask
282-
dynamic_slicer:
282+
nipype.interfaces.dynamic_slicer:
283283
target_version: v1_0
284284
interfaces:
285285
- nipype.interfaces.dynamic_slicer.SlicerCommandLine
286-
elastix:
286+
nipype.interfaces.elastix:
287287
target_version: v1_0
288288
interfaces:
289289
- nipype.interfaces.elastix.registration.Registration
290290
- nipype.interfaces.elastix.registration.ApplyWarp
291291
- nipype.interfaces.elastix.registration.AnalyzeWarp
292292
- nipype.interfaces.elastix.registration.PointsWarp
293293
- nipype.interfaces.elastix.utils.EditTransform
294-
freesurfer:
294+
nipype.interfaces.freesurfer:
295295
target_version: v8
296296
interfaces:
297297
- nipype.interfaces.freesurfer.longitudinal.RobustTemplate
@@ -383,7 +383,7 @@ freesurfer:
383383
- nipype.interfaces.freesurfer.utils.Apas2Aseg
384384
- nipype.interfaces.freesurfer.utils.MRIsExpand
385385
- nipype.interfaces.freesurfer.utils.LTAConvert
386-
fsl:
386+
nipype.interfaces.fsl:
387387
target_version: v6_0
388388
interfaces:
389389
- nipype.interfaces.fsl.aroma.ICA_AROMA
@@ -492,16 +492,16 @@ fsl:
492492
- nipype.interfaces.fsl.utils.MotionOutliers
493493
- nipype.interfaces.fsl.utils.Text2Vest
494494
- nipype.interfaces.fsl.utils.Vest2Text
495-
image:
495+
nipype.interfaces.image:
496496
target_version: v1_0
497497
interfaces:
498498
- nipype.interfaces.image.Rescale
499499
- nipype.interfaces.image.Reorient
500-
meshfix:
500+
nipype.interfaces.meshfix:
501501
target_version: v1_0
502502
interfaces:
503503
- nipype.interfaces.meshfix.MeshFix
504-
minc:
504+
nipype.interfaces.minc:
505505
target_version: v1_0
506506
interfaces:
507507
- nipype.interfaces.minc.minc.Extract
@@ -532,7 +532,7 @@ minc:
532532
- nipype.interfaces.minc.minc.BigAverage
533533
- nipype.interfaces.minc.minc.Reshape
534534
- nipype.interfaces.minc.minc.VolSymm
535-
mipav:
535+
nipype.interfaces.mipav:
536536
target_version: v1_0
537537
interfaces:
538538
- nipype.interfaces.mipav.developer.JistLaminarVolumetricLayering
@@ -553,14 +553,14 @@ mipav:
553553
- nipype.interfaces.mipav.developer.JistBrainPartialVolumeFilter
554554
- nipype.interfaces.mipav.developer.JistIntensityMp2rageMasking
555555
- nipype.interfaces.mipav.developer.MedicAlgorithmThresholdToBinaryMask
556-
niftyfit:
556+
nipype.interfaces.niftyfit:
557557
target_version: v1_0
558558
interfaces:
559559
- nipype.interfaces.niftyfit.asl.FitAsl
560560
- nipype.interfaces.niftyfit.dwi.FitDwi
561561
- nipype.interfaces.niftyfit.dwi.DwiTool
562562
- nipype.interfaces.niftyfit.qt1.FitQt1
563-
niftyreg:
563+
nipype.interfaces.niftyreg:
564564
target_version: v1_0
565565
interfaces:
566566
- nipype.interfaces.niftyreg.reg.RegAladin
@@ -571,7 +571,7 @@ niftyreg:
571571
- nipype.interfaces.niftyreg.regutils.RegAverage
572572
- nipype.interfaces.niftyreg.regutils.RegTransform
573573
- nipype.interfaces.niftyreg.regutils.RegMeasure
574-
niftyseg:
574+
nipype.interfaces.niftyseg:
575575
target_version: v1_0
576576
interfaces:
577577
- nipype.interfaces.niftyseg.em.EM
@@ -588,28 +588,28 @@ niftyseg:
588588
- nipype.interfaces.niftyseg.stats.StatsCommand
589589
- nipype.interfaces.niftyseg.stats.UnaryStats
590590
- nipype.interfaces.niftyseg.stats.BinaryStats
591-
nilearn:
591+
nipype.interfaces.nilearn:
592592
target_version: v1_0
593593
interfaces:
594594
- nipype.interfaces.nilearn.NilearnBaseInterface
595595
- nipype.interfaces.nilearn.SignalExtraction
596-
nitime:
596+
nipype.interfaces.nitime:
597597
target_version: v1_0
598598
interfaces:
599599
- nipype.interfaces.nitime.analysis.CoherenceAnalyzer
600-
petpvc:
600+
nipype.interfaces.petpvc:
601601
target_version: v1_0
602602
interfaces:
603603
- nipype.interfaces.petpvc.PETPVC
604-
quickshear:
604+
nipype.interfaces.quickshear:
605605
target_version: v1_0
606606
interfaces:
607607
- nipype.interfaces.quickshear.Quickshear
608-
robex:
608+
nipype.interfaces.robex:
609609
target_version: v1_0
610610
interfaces:
611611
- nipype.interfaces.robex.preprocess.RobexSegment
612-
semtools:
612+
nipype.interfaces.semtools:
613613
target_version: v1_0
614614
interfaces:
615615
- nipype.interfaces.semtools.brains.classify.BRAINSPosteriorToContinuousClass
@@ -714,7 +714,7 @@ semtools:
714714
- nipype.interfaces.semtools.utilities.brains.ImageRegionPlotter
715715
- nipype.interfaces.semtools.utilities.brains.fcsv_to_hdf5
716716
- nipype.interfaces.semtools.utilities.brains.FindCenterOfBrain
717-
slicer:
717+
nipype.interfaces.slicer:
718718
target_version: v1_0
719719
interfaces:
720720
- nipype.interfaces.slicer.converters.DicomToNrrdConverter
@@ -777,7 +777,7 @@ slicer:
777777
- nipype.interfaces.slicer.surface.LabelMapSmoothing
778778
- nipype.interfaces.slicer.surface.ModelMaker
779779
- nipype.interfaces.slicer.utilities.EMSegmentTransformToNewFormat
780-
spm:
780+
nipype.interfaces.spm:
781781
target_version: v1_0
782782
interfaces:
783783
- nipype.interfaces.spm.model.Level1Design
@@ -814,12 +814,12 @@ spm:
814814
- nipype.interfaces.spm.utils.ApplyInverseDeformation
815815
- nipype.interfaces.spm.utils.ResliceToReference
816816
- nipype.interfaces.spm.utils.DicomImport
817-
vista:
817+
nipype.interfaces.vista:
818818
target_version: v1_0
819819
interfaces:
820820
- nipype.interfaces.vista.vista.Vnifti2Image
821821
- nipype.interfaces.vista.vista.VtoMat
822-
workbench:
822+
nipype.interfaces.workbench:
823823
target_version: v1_0
824824
interfaces:
825825
- nipype.interfaces.workbench.cifti.CiftiSmooth

nipype2pydra/interface/base.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,7 +1159,7 @@ def process_method(
11591159
pass
11601160
if "runtime" in args:
11611161
args.remove("runtime")
1162-
args_to_add = list(self.used.method_args.get(method.__name__, [])) + list(
1162+
args_to_add = sorted(self.used.method_args.get(method.__name__, [])) + sorted(
11631163
additional_args
11641164
)
11651165
if args_to_add:
@@ -1338,7 +1338,7 @@ def unwrap_nested_methods(
13381338
)
13391339
# Insert additional arguments to the method call (which were previously
13401340
# accessed via member attributes)
1341-
args_to_be_inserted = list(self.used.method_args[name]) + list(
1341+
args_to_be_inserted = sorted(self.used.method_args[name]) + sorted(
13421342
additional_args
13431343
)
13441344
try:
@@ -1405,8 +1405,7 @@ def unwrap_nested_methods(
14051405
"trait_modified",
14061406
]
14071407

1408-
CONFTEST = """
1409-
# For debugging in IDE's don't catch raised exceptions and let the IDE
1408+
CONFTEST = """# For debugging in IDE's don't catch raised exceptions and let the IDE
14101409
# break at it
14111410
import os
14121411
import pytest
@@ -1423,7 +1422,7 @@ def pytest_internalerror(excinfo):
14231422
raise excinfo.value # raise internal errors instead of capturing them
14241423
14251424
def pytest_configure(config):
1426-
config.option.capture = 'no' # allow print statements to show up in the console
1425+
config.option.capture = "no" # allow print statements to show up in the console
14271426
config.option.log_cli = True # show log messages in the console
14281427
config.option.log_level = "INFO" # set the log level to INFO
14291428

nipype2pydra/interface/shell.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,9 @@ def generate_code(self, input_fields, nonstd_types, output_fields) -> str:
190190

191191
spec_str += "@shell.define"
192192
if xor_sets:
193-
spec_str += f"(xor={[list(x) for x in xor_sets]})"
193+
spec_str += (
194+
f"(xor={[list(x) for x in sorted(tuple(sorted(s)) for s in xor_sets)]})"
195+
)
194196
spec_str += (
195197
f"\nclass {self.task_name}(shell.Task['{self.task_name}.Outputs']):\n"
196198
)

nipype2pydra/package.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,7 @@ def write_post_release_file(self, fspath: Path):
708708
src_pkg_version = "{src_pkg_version}"
709709
nipype2pydra_version = "{nipype2pydra_version}"
710710
post_release = "{post_release}"
711-
"""
711+
"""
712712
)
713713

714714
@classmethod

nipype2pydra/statements/imports.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,9 @@ def __str__(self):
217217
if self.from_:
218218
imported_str = ", ".join(str(i) for i in sorted(self.imported.values()))
219219
module = self.translation if self.translation else self.from_
220+
# Drop trailing hidden module (e.g. '_local' from 'pathlib._local')
221+
if module.split(".")[-1].startswith("_"):
222+
module = ".".join(module.split(".")[:-1])
220223
stmt_str = f"{self.indent}from {module} import {imported_str}"
221224
elif self.translation:
222225
stmt_str = f"{self.indent}import {self.translation}"
@@ -614,7 +617,7 @@ def to_statement(self):
614617

615618

616619
def from_list_to_imports(
617-
obj: ty.Union[ty.List[ExplicitImport], list]
620+
obj: ty.Union[ty.List[ExplicitImport], list],
618621
) -> ty.List[ExplicitImport]:
619622
if obj is None:
620623
return []

nipype2pydra/workflow.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545

4646
def convert_node_prefixes(
47-
nodes: ty.Union[ty.Dict[str, str], ty.Sequence[ty.Union[ty.Tuple[str, str], str]]]
47+
nodes: ty.Union[ty.Dict[str, str], ty.Sequence[ty.Union[ty.Tuple[str, str], str]]],
4848
) -> ty.Dict[str, str]:
4949
if isinstance(nodes, dict):
5050
nodes_it = nodes.items()
@@ -1310,8 +1310,7 @@ def default_spec(
13101310
)
13111311
return yaml_str
13121312

1313-
CONFTEST = """
1314-
# For debugging in IDE's don't catch raised exceptions and let the IDE
1313+
CONFTEST = """# For debugging in IDE's don't catch raised exceptions and let the IDE
13151314
# break at it
13161315
import os
13171316
import pytest
@@ -1328,7 +1327,7 @@ def pytest_internalerror(excinfo):
13281327
raise excinfo.value # raise internal errors instead of capturing them
13291328
13301329
def pytest_configure(config):
1331-
config.option.capture = 'no' # allow print statements to show up in the console
1330+
config.option.capture = "no" # allow print statements to show up in the console
13321331
config.option.log_cli = True # show log messages in the console
13331332
config.option.log_level = "INFO" # set the log level to INFO
13341333

0 commit comments

Comments
 (0)