Beispiel #1
0
 def generate_code(self, neurons):
     if self._target == "NEST":
         from pynestml.codegeneration.nest_codegenerator import NESTCodeGenerator
         _codeGenerator = NESTCodeGenerator()
         _codeGenerator.generate_code(neurons)
     elif self._target == "":
         # dummy/null target: user requested to not generate any code
         code, message = Messages.get_no_code_generated()
         Logger.log_message(None, code, message, None, LoggingLevel.INFO)
Beispiel #2
0
 def from_target_name(
         target_name: str,
         options: Optional[Mapping[str, Any]] = None) -> CodeGenerator:
     """Static factory method that returns a new instance of a child class of CodeGenerator"""
     assert target_name.upper() in CodeGenerator.get_known_targets(
     ), "Unknown target platform requested: \"" + str(target_name) + "\""
     if target_name.upper() == "NEST":
         from pynestml.codegeneration.nest_codegenerator import NESTCodeGenerator
         return NESTCodeGenerator(options)
     elif target_name.upper() == "AUTODOC":
         from pynestml.codegeneration.autodoc_codegenerator import AutoDocCodeGenerator
         assert options is None or options == {}, "\"autodoc\" code generator does not support options"
         return AutoDocCodeGenerator()
     elif target_name == "":
         # dummy/null target: user requested to not generate any code
         code, message = Messages.get_no_code_generated()
         Logger.log_message(None, code, message, None, LoggingLevel.INFO)
         return CodeGenerator("", options)
     assert False  # cannot reach here due to earlier assert -- silence static checker warnings
Beispiel #3
0
    def generate_code(self, neurons):
        """
        Generate code for the given neurons and (depending on the target) generate an index page, module entrypoint or
        similar that incorporates an enumeration of all neurons.

        :param neurons: a list of neurons.
        :type neurons: List[ASTNode]
        """
        if self._target.upper() == "NEST":
            from pynestml.codegeneration.nest_codegenerator import NESTCodeGenerator
            _codeGenerator = NESTCodeGenerator()
            _codeGenerator.generate_code(neurons)
        elif self._target.upper() == "AUTODOC":
            from pynestml.codegeneration.autodoc_codegenerator import AutoDocCodeGenerator
            _codeGenerator = AutoDocCodeGenerator()
            _codeGenerator.generate_code(neurons)
        else:
            # dummy/null target: user requested to not generate any code
            assert self._target == ""
            code, message = Messages.get_no_code_generated()
            Logger.log_message(None, code, message, None, LoggingLevel.INFO)