Exemplo n.º 1
0
def parse_string(s):

    # Trim the start:
    s = s[19:]

    print 'parsing string', s

    kw = read_json(s)

    return SummaryPlotData(**kw)
def parse_string(s):

    # Trim the start:
    s = s[19:]

    print 'parsing string', s

    kw = read_json(s)

    return SummaryPlotData( **kw)
Exemplo n.º 3
0
def parse_string(s):

    # Trim the start:
    s = s[19:]

    print 'parsing string', s

    kw = read_json(s)

    #return SummaryPlotData( x=d['x'], y=d['y'], t_start=d['t_start'],t_end=d['t_end'], params=d['params'])
    return SummaryPlotData(**kw)
Exemplo n.º 4
0
def parse_string(s):

    # Trim the start:
    s = s[19:]

    print 'parsing string', s

    kw = read_json(s)


    #return SummaryPlotData( x=d['x'], y=d['y'], t_start=d['t_start'],t_end=d['t_end'], params=d['params'])
    return SummaryPlotData( **kw)
Exemplo n.º 5
0
def parse_io_line(line):
    from neurounits import NeuroUnitParser
    from neurounits.unit_errors import ParsingError
    assert isinstance(line, basestring)
    print 'Line', line

    metadata = {}
    if 'METADATA' in line:
        (line, metadata) = line.split('METADATA')
        metadata = read_json(metadata)


    #r = re.compile( r"""<=> \s* (?P<MODE>[a-zA-Z]+) \s* (?P<SYMBOL>[a-zA-Z][a-zA-Z0-9_]*) \s* ([:] \s* (?P<UNIT>[a-zA-Z0-9/()]*) )? """, re.VERBOSE)
    r = re.compile( r"""<=> \s* (?P<MODE>[a-zA-Z]+) \s* (?P<DEFS>.*) $""", re.VERBOSE)
    m = r.match(line)

    if not m:
        raise ParsingError('Unable to parse line: "%s"'%line)
    g = m.groupdict()

    mode = g['MODE']


    if mode in ('INPUT', 'OUTPUT', 'PARAMETER'):
        defs = []

        data = g['DEFS']
        for d in data.split(','):
            pDef = d.split(':')
            if len(pDef) == 1:
                (symbol, dimension_str) = (pDef[0], None)
            elif len(pDef) == 2:
                (symbol, dimension_str) = pDef
            else:
                raise ParsingError("Can't interpret line: %s" % line)

            symbol = symbol.strip()
            dimension_str = (dimension_str.strip() if dimension_str else dimension_str)

            # Allow units to be specified in '{' '}' too. This is hacky and should be better
            # integrated.
            if dimension_str:
                if dimension_str[0] == '{' and dimension_str[-1] == '}':
                    dimension_str = '(' + dimension_str[1:-1] + ')'

            dimension = NeuroUnitParser.Unit(dimension_str) if dimension_str is not None else None
            dimension = dimension.with_no_powerten() if dimension is not None else dimension

            io_data = IODataDimensionSpec(symbol=symbol.strip(),
                    iotype=IOType.LUT[mode], dimension=dimension,
                    metadata=metadata)
            defs.append(io_data)
        return defs

    elif mode == "INITIAL":
        defs = []
        data = g['DEFS']
        for d in data.split(','):
            pDef = d.split(':')

            ic = IODataInitialCondition(symbol=pDef[0], value=pDef[1])
            defs.append(ic)
        return defs
    else:
        raise ParsingError('Unexpected Mode: %s' % mode)