def get_application_data(data): if data["method"] == "rpn_value": value, error = elegant_lattice_importer.parse_rpn_value(data["value"], data["variables"]) if error: data["error"] = error else: data["result"] = value return data if data["method"] == "recompute_rpn_cache_values": for k in data["cache"]: value, error = elegant_lattice_importer.parse_rpn_value(k, data["variables"]) if not error: data["cache"][k] = value return data raise RuntimeError("unknown application data method: {}".format(data["method"]))
def get_application_data(data): if data['method'] == 'rpn_value': value, error = elegant_lattice_importer.parse_rpn_value(data['value'], data['variables']) if error: data['error'] = error else: data['result'] = value return data if data['method'] == 'recompute_rpn_cache_values': for k in data['cache']: value, error = elegant_lattice_importer.parse_rpn_value(k, data['variables']) if not error: data['cache'][k] = value return data raise RuntimeError('unknown application data method: {}'.format(data['method']))
def _iterator_rpn_values(state, model, element_schema=None, field_name=None): if element_schema: if element_schema[ 1] == 'RPNValue' and elegant_lattice_importer.is_rpn_value( model[field_name]): v, err = elegant_lattice_importer.parse_rpn_value( model[field_name], state['rpnVariables']) if not err: state['cache'][model[field_name]] = v
def prepare_for_client(data): if "models" not in data: return data # evaluate rpn values into model.rpnCache cache = {} data["models"]["rpnCache"] = cache state = {"cache": cache, "rpnVariables": data["models"]["rpnVariables"]} _iterate_model_fields(data, state, _iterator_rpn_values) for rpn_var in data["models"]["rpnVariables"]: v, err = elegant_lattice_importer.parse_rpn_value(rpn_var["value"], data["models"]["rpnVariables"]) if not err: cache[rpn_var["name"]] = v if elegant_lattice_importer.is_rpn_value(rpn_var["value"]): cache[rpn_var["value"]] = v return data
def prepare_for_client(data): if 'models' not in data: return data # evaluate rpn values into model.rpnCache cache = {} data['models']['rpnCache'] = cache state = { 'cache': cache, 'rpnVariables': data['models']['rpnVariables'], } _iterate_model_fields(data, state, _iterator_rpn_values) for rpn_var in data['models']['rpnVariables']: v, err = elegant_lattice_importer.parse_rpn_value(rpn_var['value'], data['models']['rpnVariables']) if not err: cache[rpn_var['name']] = v if elegant_lattice_importer.is_rpn_value(rpn_var['value']): cache[rpn_var['value']] = v return data
def _parse_expr(expr, variables): """If not infix, default to rpn""" return elegant_lattice_importer.parse_rpn_value(_infix_to_postfix(expr), variables)
def _iterator_rpn_values(state, model, element_schema=None, field_name=None): if element_schema: if element_schema[1] == "RPNValue" and elegant_lattice_importer.is_rpn_value(model[field_name]): v, err = elegant_lattice_importer.parse_rpn_value(model[field_name], state["rpnVariables"]) if not err: state["cache"][model[field_name]] = v