Пример #1
0
def import_file(text):
    commands = elegant_command_parser.parse_file(text)
    if not commands:
        raise IOError('no commands found in file')
    _verify_lattice_name(commands)
    rpn_variables = PKDict()
    # iterate commands, validate values and set defaults from schema
    for cmd in commands:
        cmd_type = cmd['_type']
        if not cmd_type in _TYPES:
            raise IOError('unknown command: {}'.format(cmd_type))
        elegant_lattice_importer.validate_fields(cmd, PKDict())
        # convert macro variables into rpnVariables
        n = lattice.LatticeUtil.model_name_for_data(cmd)
        for field in cmd:
            el_schema = _SCHEMA.model[n].get(field)
            if el_schema and el_schema[1] == 'RPNValue':
                m = re.search(r'^<(\w+)>$', str(cmd[field]))
                if m:
                    cmd[field] = m.group(1)
                    rpn_variables[cmd[field]] = _SIM_DATA.model_defaults(n).get(field, 0)

    data = simulation_db.default_data(SIM_TYPE)
    #TODO(pjm) javascript needs to set bunch, bunchSource, bunchFile values from commands
    data.models.commands = commands
    data.models.rpnVariables = [PKDict(name=k, value=v) for k, v in rpn_variables.items()]
    return data
Пример #2
0
def import_file(text):
    commands = elegant_command_parser.parse_file(text)
    if not len(commands):
        raise IOError('no commands found in file')
    _verify_lattice_name(commands)
    # iterate commands, validate values and set defaults from schema
    for cmd in commands:
        cmd_type = cmd['_type']
        if not cmd_type in _ELEGANT_TYPES:
            raise IOError('unknown command: {}'.format(cmd_type))
        elegant_lattice_importer.validate_fields(cmd, {}, {})
    data = elegant_lattice_importer.default_data()
    #TODO(pjm) javascript needs to set bunch, bunchSource, bunchFile values from commands
    data['models']['commands'] = commands
    return data
def import_file(text):
    commands = elegant_command_parser.parse_file(text)
    if not len(commands):
        raise IOError('no commands found in file')
    _verify_lattice_name(commands)
    # iterate commands, validate values and set defaults from schema
    for cmd in commands:
        cmd_type = cmd['_type']
        if not cmd_type in _ELEGANT_TYPES:
            raise IOError('unknown command: {}'.format(cmd_type))
        elegant_lattice_importer.validate_fields(cmd, {}, {})
    data = elegant_lattice_importer.default_data()
    #TODO(pjm) javascript needs to set bunch, bunchSource, bunchFile values from commands
    data['models']['commands'] = commands
    return data