# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-# vi: set ft=python sts=4 ts=4 sw=4 et:## Copyright 2021 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/#"""Temporary patches."""fromrandomimportrandintfromtimeimportsleepfromnipype.algorithmsimportconfoundsasnacfromnipype.interfacesimportioasniofromnipype.interfaces.baseimportFilefromnumpy.linalg.linalgimportLinAlgError
[docs]classRobustACompCor(nac.ACompCor):""" Runs aCompCor several times if it suddenly fails with https://github.com/nipreps/fmriprep/issues/776 """def_run_interface(self,runtime):failures=0whileTrue:try:runtime=super()._run_interface(runtime)breakexceptLinAlgError:failures+=1iffailures>10:raisestart=(failures-1)*10sleep(randint(start+4,start+10))returnruntime
[docs]classRobustTCompCor(nac.TCompCor):""" Runs tCompCor several times if it suddenly fails with https://github.com/nipreps/fmriprep/issues/940 """def_run_interface(self,runtime):failures=0whileTrue:try:runtime=super()._run_interface(runtime)breakexceptLinAlgError:failures+=1iffailures>10:raisestart=(failures-1)*10sleep(randint(start+4,start+10))returnruntime