# See COPYING file distributed along with the PyMVPA package for the # copyright and license terms. # ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ## """Unit tests for PyMVPA verbose and debug output""" import unittest, re from StringIO import StringIO from mvpa2.base.verbosity import OnceLogger from mvpa2.base import verbose, error if __debug__: from mvpa2.base import debug debug.register('1', 'id 1') # needed for testing debug.register('2', 'id 2') ## XXX There must be smth analogous in python... don't know it yet # And it is StringIO #class StringStream(object): # def __init__(self): # self.__str = "" # # def __repr__(self): # return self.__str # # def write(self, s): # self.__str += s #
from mvpa2.support.nibabel import surf from mvpa2.base.progress import ProgressBar, seconds2prettystring if externals.exists('h5py'): from mvpa2.base.hdf5 import h5save, h5load # TODO: see if we use these contants, or let it be up to the user # possibly also rename them LINEAR_VOXEL_INDICES = "linear_voxel_indices" CENTER_DISTANCES = "center_distances" GREY_MATTER_POSITION = "grey_matter_position" from mvpa2.base import debug if __debug__: if not "SVS" in debug.registered: debug.register("SVS", "Surface-based voxel selection " " (a.k.a. 'surfing')") class VoxelSelector(object): '''Voxel selection for surface-based searchlights''' def __init__(self, radius, distance_surf, n2v, distance_metric='dijkstra', outside_node_margin=None): ''' Voxel selection using cortical surfaces. Parameters ----------
from mvpa2.base.progress import ProgressBar, seconds2prettystring if externals.exists('h5py'): from mvpa2.base.hdf5 import h5save, h5load # TODO: see if we use these contants, or let it be up to the user # possibly also rename them LINEAR_VOXEL_INDICES = "linear_voxel_indices" CENTER_DISTANCES = "center_distances" GREY_MATTER_POSITION = "grey_matter_position" from mvpa2.base import debug if __debug__: if not "SVS" in debug.registered: debug.register("SVS", "Surface-based voxel selection " " (a.k.a. 'surfing')") class VoxelSelector(object): '''Voxel selection for surface-based searchlights''' def __init__(self, radius, distance_surf, n2v, distance_metric='dijkstra', outside_node_margin=None): ''' Voxel selection using cortical surfaces. Parameters ---------- radius: int or float Searchlight radius. If the type is int, then this set the number of voxels in each searchlight (with variable size of the disc across searchlights). If the type is float, then this sets the disc radius in
WiP TODO: some nice refactoring of the code. Currently it's a bit of a mess. ''' import re, numpy as np, random, os, time, sys, base64, copy, math from io import BytesIO from mvpa2.support.nibabel import afni_niml_types as types _RE_FLAGS = re.DOTALL # regular expression matching spans across new lines from mvpa2.base import debug if __debug__: if not "NIML" in debug.registered: debug.register("NIML", "NeuroImaging Markup Language") _TEXT_ROWSEP = "\n" _TEXT_COLSEP = " " # define NIML specific escape characters _ESCAPE = { '<': '<', '>': '>', '"': '"', '&': '&', ''': "'" } def decode_escape(s):
WiP TODO: some nice refactoring of the code. Currently it's a bit of a mess. ''' import re, numpy as np, random, os, time, sys, base64, copy, math from io import BytesIO from mvpa2.support.nibabel import afni_niml_types as types _RE_FLAGS = re.DOTALL # regular expression matching spans across new lines from mvpa2.base import debug if __debug__: if not "NIML" in debug.registered: debug.register("NIML", "NeuroImaging Markup Language") _TEXT_ROWSEP = "\n" _TEXT_COLSEP = " " # define NIML specific escape characters _ESCAPE = {'<':'<', '>':'>', '"':'"', '&':'&', ''':"'"} def decode_escape(s): for k, v in _ESCAPE.iteritems(): s = s.replace(k, v) return s