def main(): """ Program entry point. """ args = process_args() print('Parsing and resolving model: ' + args.lems_file) model = Model() if args.I is not None: for dir in args.I: model.add_include_directory(dir) model.import_from_file(args.lems_file) resolved_model = model.resolve() print('Building simulation') sim = SimulationBuilder(resolved_model).build() #sim.dump("Afterbuild:") if args.dlems: print('Exporting as: ' + dlems_info) from lems.dlems.exportdlems import export_component target = model.targets[0] sim_comp = model.components[target] target_net = sim_comp.parameters['target'] target_comp = model.components[target_net] dlems_file_name = args.lems_file.replace('.xml', '.json') if dlems_file_name == args.lems_file: dlems_file_name = args.lems_file + '.json' if target_comp.type == 'network': for child in target_comp.children: if child.type == 'population': comp = model.components[child.parameters['component']] export_component(model, comp, sim_comp, child.id, file_name=dlems_file_name) else: export_component(model, sim_comp, target_comp) else: print('Running simulation') sim.run() process_simulation_output(sim, args)
def main(args=None): """ Program entry point. """ if args is None: args = process_args() print('Parsing and resolving model: '+args.lems_file) model = Model() if args.I is not None: for dir in args.I: model.add_include_directory(dir) model.import_from_file(args.lems_file) resolved_model = model.resolve() print('Building simulation') sim = SimulationBuilder(resolved_model).build() #sim.dump("Afterbuild:") if args.dlems: print('Exporting as: '+dlems_info) from lems.dlems.exportdlems import export_component target = model.targets[0] sim_comp = model.components[target] target_net = sim_comp.parameters['target'] target_comp = model.components[target_net] dlems_file_name = args.lems_file.replace('.xml', '.json') if dlems_file_name == args.lems_file: dlems_file_name = args.lems_file + '.json' if target_comp.type == 'network': for child in target_comp.children: if child.type == 'population': comp = model.components[child.parameters['component']] export_component(model, comp, sim_comp, child.id, file_name=dlems_file_name) else: export_component(model, sim_comp, target_comp) else: print('Running simulation') sim.run() process_simulation_output(sim, model, args)
def validate_model(filename, name=None, config=None): """ Check that a model is valid Args: filename (:obj:`str`): path to model name (:obj:`str`, optional): name of model for use in error messages config (:obj:`Config`, optional): whether to fail on missing includes Returns: :obj:`tuple`: * nested :obj:`list` of :obj:`str`: nested list of errors (e.g., required ids missing or ids not unique) * nested :obj:`list` of :obj:`str`: nested list of errors (e.g., required ids missing or ids not unique) * :obj:`Model`: model """ config = config or get_config() errors = [] warnings = [] model = None with StandardOutputErrorCapturer(relay=False, level=StandardOutputErrorCapturerLevel.c): valid, output = validate_neuroml2_lems_file(filename, exit_on_fail=False, return_string=True) if not valid: errors.append(['`{}` is not a valid LEMS file.'.format(filename), [[output]]]) return (errors, warnings, model) core_types_dir = tempfile.mkdtemp() jar_filename = get_path_to_jnml_jar() with zipfile.ZipFile(jar_filename, 'r') as jar_file: neuroml2_core_type_members = (name for name in jar_file.namelist() if name.startswith('NeuroML2CoreTypes/')) jar_file.extractall(core_types_dir, members=neuroml2_core_type_members) model = Model(include_includes=True, fail_on_missing_includes=config.VALIDATE_IMPORTED_MODEL_FILES) model.add_include_directory(os.path.join(core_types_dir, 'NeuroML2CoreTypes')) model.import_from_file(filename) shutil.rmtree(core_types_dir) return (errors, warnings, model)
reopen = open(dlems_file_name, 'r') print(reopen.read()) reopen.close() print("Written to %s" % dlems_file_name) if __name__ == '__main__': model = Model() try: lems_file = sys.argv[1] except: lems_file = '../NeuroML2/LEMSexamples/LEMS_NML2_Ex9_FN.xml' model.add_include_directory('../NeuroML2/NeuroML2CoreTypes') print('Importing LEMS file from: %s' % lems_file) model.import_from_file(lems_file) target = model.targets[0] sim_comp = model.components[target] target_net = sim_comp.parameters['target'] target_comp = model.components[target_net] if target_comp.type == 'network': for child in target_comp.children:
dlems_file.close() print(open(dlems_file_name,'r').read()) print("Written to %s"%dlems_file_name) if __name__ == '__main__': model = Model() try: lems_file = sys.argv[1] except: lems_file = '../NeuroML2/LEMSexamples/LEMS_NML2_Ex9_FN.xml' model.add_include_directory('../NeuroML2/NeuroML2CoreTypes') print('Importing LEMS file from: %s'%lems_file) model.import_from_file(lems_file) target = model.targets[0] sim_comp = model.components[target] target_net = sim_comp.parameters['target'] target_comp = model.components[target_net] if target_comp.type == 'network':