def process(): """ Returns ------- errors_occurred : bool Flag indicating whether errors occurred during processing """ errors_occurred = False # init log dir create_report_dir() # The handed over parameters seem to be correct, proceed with the main routine init_predefined() # now proceed to parse all models compilation_units = list() nestml_files = FrontendConfiguration.get_files() if not type(nestml_files) is list: nestml_files = [nestml_files] for nestml_file in nestml_files: parsed_unit = ModelParser.parse_model(nestml_file) if parsed_unit is not None: compilation_units.append(parsed_unit) if len(compilation_units) > 0: # generate a list of all neurons neurons = list() for compilationUnit in compilation_units: neurons.extend(compilationUnit.get_neuron_list()) # check if across two files two neurons with same name have been defined CoCosManager.check_not_two_neurons_across_units(compilation_units) # now exclude those which are broken, i.e. have errors. if not FrontendConfiguration.is_dev: for neuron in neurons: if Logger.has_errors(neuron): code, message = Messages.get_neuron_contains_errors( neuron.get_name()) Logger.log_message( node=neuron, code=code, message=message, error_position=neuron.get_source_position(), log_level=LoggingLevel.INFO) neurons.remove(neuron) errors_occurred = True # perform code generation _codeGenerator = CodeGenerator( target=FrontendConfiguration.get_target()) _codeGenerator.generate_code(neurons) for neuron in neurons: if Logger.has_errors(neuron): errors_occurred = True break if FrontendConfiguration.store_log: store_log_to_file() return errors_occurred
def handle_target(cls, target): if target is None or target.upper() == "NONE": target = "" # make sure `target` is always a string if target not in CodeGenerator.get_known_targets(): code, message = Messages.get_unknown_target(target) Logger.log_message(None, code, message, None, LoggingLevel.ERROR) raise InvalidTargetException() cls.target = target
def handle_target(cls, target): if target is None or target.upper() == 'NONE': target = '' # make sure `target` is always a string from pynestml.codegeneration.codegenerator import CodeGenerator if target.upper() not in CodeGenerator.get_known_targets(): code, message = Messages.get_unknown_target(target) Logger.log_message(None, code, message, None, LoggingLevel.ERROR) raise InvalidTargetException() cls.target = target