# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-# vi: set ft=python sts=4 ts=4 sw=4 et:## Copyright 2023 The NiPreps Developers <nipreps@gmail.com>## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.## We support and encourage derived works from this project, please read# about our expectations at## https://www.nipreps.org/community/licensing/## STATEMENT OF CHANGES: This file was ported carrying over full git history from niworkflows,# another NiPreps project licensed under the Apache-2.0 terms, and has been changed since."""Utilities for the :mod:`~nireports.assembler` module."""frompathlibimportPathfromnireports.assembler.reportimportReport
[docs]defgenerate_reports(subject_list,output_dir,run_uuid,bootstrap_file=None,work_dir=None,):"""Execute run_reports on a list of subjects."""reportlets_dir=Noneifwork_dirisnotNone:reportlets_dir=Path(work_dir)/"reportlets"report_errors=[run_reports(output_dir,subject_label,run_uuid,bootstrap_file=bootstrap_file,reportlets_dir=reportlets_dir,)forsubject_labelinsubject_list]errno=sum(report_errors)iferrno:importlogginglogger=logging.getLogger("cli")error_list=", ".join("%s (%d)"%(subid,err)forsubid,errinzip(subject_list,report_errors)iferr)logger.error("Preprocessing did not finish successfully. Errors occurred while processing ""data from participants: %s. Check the HTML reports for details.",error_list,)returnerrno