Esempio n. 1
0
    def __init__(self, prefix = '', suffix = '', args = {}, **kwargs):
        self.prefix = prefix
        self.suffix = suffix
        self.transform = kwargs.get('transform', False)
        self.return_type = kwargs.get('return_type', None)
        self.safeeval = safeeval()
        self.args = args

        # add args to safeeval's local variables
        if self.args != None:
            for k, v in args.items():
                self.safeeval[k] = v
Esempio n. 2
0
        (r"\s+", None),
        ])

    return scanner

def set_attrs(table, t0, units):
    table.attrs.creationdate = dt.datetime.now(pytz.utc).isoformat()
    table.attrs.time_info = "time contains the number of seconds since t0"
    table.attrs.t0 = t0.isoformat()
    assert len(table.colnames) == len(units)
    table.attrs.units = json.dumps(units)

def seconds2datetime(t0, seconds):
    return t0 + timedelta(seconds = seconds)

_eval = safeeval.safeeval()

def evalifstr(s):
    if isinstance(s, basestring):
        return _eval(s)
    else:
        return s


def isseq(x):
    return not isinstance(x, basestring) and hasattr(x, '__getitem__') and hasattr(x, '__len__')

def isiter(x):
    return hasattr(x, '__iter__')

def number_format(value, precision = 4):
Esempio n. 3
0
from scipy.optimize import curve_fit
import matplotlib as mpl
import matplotlib.pyplot as plt
from utils import get_args_from, isseq, set_defaults, number_mathformat, number_format, hashargs, noop
from itertools import product
from locket import lock_file

from i18n import _
from safeeval import safeeval

logging.basicConfig(level = logging.DEBUG, format = '%(filename)s:%(funcName)s:%(lineno)d:%(message)s')

log = logging.getLogger('plot')

# override eval by safe version
eval = safeeval()


TableSpecs = namedtuple('TableSpecs', ('title', 'colnames', 'units', 'rows'))

def available_tables(d = os.path.dirname(__file__) + '/data'):
    files = []
    dirlen = len(d)
    for p, d, f in os.walk(d):
        for ff in f:
            files.append(path.join(p, ff))
    files = map(lambda f:f.replace('\\', '/'), files)
    files = filter(lambda f:f.lower().endswith('.h5'), files)
    files.sort()

    tabs = OrderedDict()