spawn.parsers¶
Parsers for spawn spec files
This module contains any classes, functions and utilities related to parsing data
-
class
spawn.parsers.DictSpecificationProvider(spec)[source]¶ Implementation of
SpecificationDescriptionProviderthat reads the specification from a provided dict
-
class
spawn.parsers.SpecificationDescriptionProvider[source]¶ Abstract base class for implementations that provide the specification description.
-
class
spawn.parsers.SpecificationFileReader(input_file)[source]¶ Implementation of
SpecificationDescriptionProviderthat reads the specification from a file
-
class
spawn.parsers.SpecificationNodeParser(value_proxy_parser, combinators=None, default_combinator=None)[source]¶ Expands the specification nodes, starting at the
node_specprovidedGiven a starting node_spec, the specification
node_specparser assesses child nodes and expands them according to their values.-
parse(node_spec, parent=None, node_policies=None, ghost_parameters=None)[source]¶ Parse the node_spec, and expand its children.
This iterates through a node_spec and expands it’s children.
- Parameters
node_spec (dict) – A node specification
parent (
SpecificationNode) – A specification node to add the new nodes to
- Returns
The expanded node_spec
- Return type
SpecificationNode
-
-
class
spawn.parsers.SpecificationParser(plugin_loader)[source]¶ Class for parsing specifications
Given a specification provider, the
SpecificationParserwill get the specification and produce a tree representation of the nodes.-
parse(description)[source]¶ Parse the specification description
Reads the metadata from the file and creates any required value libraries, before initialising a
SpecificationNodeParserto expand the nodes defined in the description.- Parameters
description (dict) – The specification description
- Returns
An object representing the expanded specification tree.
- Return type
SpecificationModel
-
-
class
spawn.parsers.ValueLibraries(generators=None, macros=None, evaluators=None)[source]¶ Container class for value libraries (generators, macros & evaluators)
-
property
evaluators¶ Evaluators library
-
property
generators¶ Generators library
-
property
macros¶ Macros library
-
property