pynestml.transformers package
Submodules
pynestml.transformers.illegal_variable_name_transformer module
- class pynestml.transformers.illegal_variable_name_transformer.IllegalVariableNameTransformer(options: Mapping[str, Any] | None = None)
Bases:
Transformer
Perform a model transformation step, for instance, rewriting disallowed variable names like “lambda” because it conflicts with a keyword.
- class VariableNameRewriterVisitor(forbidden_names: List[str], fix_name_func: Callable[[str], str])
Bases:
ASTVisitor
- visit_assignment(node)
Used to visit a single assignment. :param node: an assignment object. :type node: ASTAssignment
- visit_declaration(node)
Used to visit a single declaration. :param node: a declaration object. :type node: ASTDeclaration
- visit_expression(node)
Used to visit a single rhs. :param node: an rhs. :type node: ASTExpression
- visit_ode_equation(node)
Used to visit a single ode-equation. :param node: a single ode-equation. :type node: ASTOdeEquation
- visit_simple_expression(node)
Used to visit a single simple rhs. :param node: a simple rhs. :type node: ASTSimpleExpression
pynestml.transformers.synapse_post_neuron_transformer module
- class pynestml.transformers.synapse_post_neuron_transformer.SynapsePostNeuronTransformer(options: Mapping[str, Any] | None = None)
Bases:
Transformer
In a (pre neuron, synapse, post neuron) tuple, process (synapse, post_neuron) to move all variables that are only triggered by postsynaptic events to the postsynaptic neuron.
- get_all_variables_assigned_to(node)
Return a list of all variables that are assigned to in
node
.
- get_convolve_with_not_post_vars(nodes: ASTEquationsBlock | Sequence[ASTEquationsBlock], neuron_name: str, synapse_name: str, parent_node: ASTNode)
- get_neuron_var_name_from_syn_port_name(port_name: str, neuron_name: str, synapse_name: str) str | None
Check if a port by the given name is specified as connecting to the postsynaptic neuron. Only makes sense for synapses.
- is_special_port(special_type: str, port_name: str, neuron_name: str, synapse_name: str) bool
Check if a port by the given name is specified as connecting to the postsynaptic neuron. Only makes sense for synapses.
- transform_neuron_synapse_pair_(neuron, synapse)
“Co-generation” or in-tandem generation of neuron and synapse code.
Does not modify existing neurons or synapses, but returns lists with additional elements representing new pair neuron and synapse
pynestml.transformers.synapse_remove_post_port module
- class pynestml.transformers.synapse_remove_post_port.SynapseRemovePostPortTransformer(options: Mapping[str, Any] | None = None)
Bases:
Transformer
- is_special_port(special_type: str, port_name: str, neuron_name: str, synapse_name: str) bool
Check if a port by the given name is specified as connecting to the postsynaptic neuron. Only makes sense for synapses.
- transform_neuron_synapse_pair_(neuron, synapse)
pynestml.transformers.transformer module
- class pynestml.transformers.transformer.Transformer(options: Mapping[str, Any] | None = None)
Bases:
WithOptions
Perform a transformation step on models, for instance, rewriting disallowed variable names like “lambda” because it conflicts with a keyword.
Some transformers operate on individual models, and some operate on tuples of models (for instance, a pair (neuron, synapse)).