|
22 | 22 | #
|
23 | 23 | from pathlib import Path
|
24 | 24 |
|
25 |
| -from niworkflows.reports.core import Report as _Report |
| 25 | +from nireports.reports.core import Report as _Report |
26 | 26 |
|
27 | 27 | # This patch is intended to permit fMRIPrep 20.2.0 LTS to use the YODA-style
|
28 | 28 | # derivatives directory. Ideally, we will remove this in 20.3.x and use an
|
@@ -52,58 +52,37 @@ def _load_config(self, config):
|
52 | 52 | # The following are the interface used directly by fMRIPrep
|
53 | 53 | #
|
54 | 54 |
|
55 |
| - |
56 |
| -def run_reports( |
57 |
| - out_dir, |
58 |
| - subject_label, |
59 |
| - run_uuid, |
60 |
| - config=None, |
61 |
| - reportlets_dir=None, |
62 |
| - packagename=None, |
63 |
| -): |
64 |
| - """ |
65 |
| - Run the reports. |
66 |
| -
|
67 |
| - .. testsetup:: |
68 |
| -
|
69 |
| - >>> copytree_or_skip("data/tests/work", testdir) |
70 |
| - >>> (testdir / 'fmriprep').mkdir(parents=True, exist_ok=True) |
71 |
| -
|
72 |
| - .. doctest:: |
73 |
| -
|
74 |
| - >>> run_reports(testdir / 'out', '01', 'madeoutuuid', packagename='fmriprep', |
75 |
| - ... reportlets_dir=testdir / 'work' / 'reportlets' / 'fmriprep') |
76 |
| - 0 |
77 |
| -
|
78 |
| - """ |
79 |
| - return Report( |
80 |
| - out_dir, |
81 |
| - run_uuid, |
82 |
| - config=config, |
83 |
| - subject_id=subject_label, |
84 |
| - packagename=packagename, |
85 |
| - reportlets_dir=reportlets_dir, |
86 |
| - ).generate_report() |
87 |
| - |
88 |
| - |
89 | 55 | def generate_reports(
|
90 | 56 | subject_list, output_dir, run_uuid, config=None, work_dir=None, packagename=None
|
91 | 57 | ):
|
92 |
| - """Execute run_reports on a list of subjects.""" |
| 58 | + """Generate reports for a list of subjects.""" |
93 | 59 | reportlets_dir = None
|
94 | 60 | if work_dir is not None:
|
95 | 61 | reportlets_dir = Path(work_dir) / "reportlets"
|
96 |
| - report_errors = [ |
97 |
| - run_reports( |
| 62 | + |
| 63 | + report_errors = [] |
| 64 | + for subject_label in subject_list: |
| 65 | + |
| 66 | + # Problem subject_label is not a path to a file, I think |
| 67 | + entities = config.execution.layout.get_file(subject_label).get_entities() |
| 68 | + entities.pop("extension", None) |
| 69 | + entities.pop("echo", None) |
| 70 | + entities.pop("part", None) |
| 71 | + |
| 72 | + robj = Report( |
98 | 73 | output_dir,
|
99 |
| - subject_label, |
100 | 74 | run_uuid,
|
101 |
| - config=config, |
102 |
| - packagename=packagename, |
| 75 | + bootstrapfile=config, |
103 | 76 | reportlets_dir=reportlets_dir,
|
| 77 | + plugins=None, |
| 78 | + plugin_meta=None, |
| 79 | + metadata=None, |
| 80 | + **entities |
104 | 81 | )
|
105 |
| - for subject_label in subject_list |
106 |
| - ] |
| 82 | + |
| 83 | + # Problem: this does not make sense anymore because generate_report in nireports always returns 0 |
| 84 | + report_errors.append(robj.generate_report()) |
| 85 | + |
107 | 86 |
|
108 | 87 | errno = sum(report_errors)
|
109 | 88 | if errno:
|
|
0 commit comments