def version( matlab_cmd = None ): """Returns the path to the SPM directory in the Matlab path If path not found, returns None. Parameters ---------- matlab_cmd : String specifying default matlab command default None, will look for environment variable MATLABCMD and use if found, otherwise falls back on MatlabCommand default of 'matlab -nodesktop -nosplash' Returns ------- spm_path : string representing path to SPM directory returns None of path not found """ if matlab_cmd is None: try: matlab_cmd = os.environ['MATLABCMD'] except: matlab_cmd = 'matlab -nodesktop -nosplash' mlab = MatlabCommand(matlab_cmd = matlab_cmd) mlab.inputs.script_file = 'spminfo' mlab.inputs.script = """ if isempty(which('spm')), throw(MException('SPMCheck:NotFound','SPM not in matlab path')); end; spm_path = spm('dir'); fprintf(1, 'NIPYPE %s', spm_path); """ out = mlab.run() if out.runtime.returncode == 0: spm_path = sd._strip_header(out.runtime.stdout) else: logger.debug(out.runtime.stderr) return None return spm_path
end; spm_path = spm('dir'); [name, version] = spm('ver'); fprintf(1, 'NIPYPE path:%s|name:%s|release:%s', spm_path, name, version); exit; """ mlab.inputs.mfile = False try: out = mlab.run() except (IOError, RuntimeError), e: # if no Matlab at all -- exception could be raised # No Matlab -- no spm logger.debug(str(e)) return None else: out = sd._strip_header(out.runtime.stdout) out_dict = {} for part in out.split('|'): key, val = part.split(':') out_dict[key] = val return out_dict def no_spm(): """ Checks if SPM is NOT installed used with nosetests skipif to skip tests that will fail if spm is not installed""" if Info.version() == None or 'NIPYPE_NO_MATLAB' in os.environ: return True else:
end; spm_path = spm('dir'); [name, version] = spm('ver'); fprintf(1, 'NIPYPE path:%s|name:%s|release:%s', spm_path, name, version); exit; """ mlab.inputs.mfile = False try: out = mlab.run() except (IOError,RuntimeError), e: # if no Matlab at all -- exception could be raised # No Matlab -- no spm logger.debug(str(e)) return None else: out = sd._strip_header(out.runtime.stdout) out_dict = {} for part in out.split('|'): key, val = part.split(':') out_dict[key] = val return out_dict def no_spm(): """ Checks if SPM is NOT installed used with nosetests skipif to skip tests that will fail if spm is not installed""" if Info.version() == None: return True else: return False
throw(MException('SPMCheck:NotFound','SPM not in matlab path')); end; spm_path = spm('dir'); fprintf(1, 'NIPYPE %s', spm_path); exit; """ mlab.inputs.mfile = False try: out = mlab.run() except (IOError,RuntimeError), e: # if no Matlab at all -- exception could be raised # No Matlab -- no spm logger.debug(str(e)) return None else: return sd._strip_header(out.runtime.stdout) def no_spm(): """ Checks if SPM is NOT installed used with nosetests skipif to skip tests that will fail if spm is not installed""" if Info.version() == None: return True else: return False class SPMCommandInputSpec(BaseInterfaceInputSpec): matlab_cmd = traits.Str(desc='matlab command to use') paths = InputMultiPath(Directory(), desc='Paths to add to matlabpath')