cutcutcodec.core.compilation.json_to_graph

Help for deserialisation of a json representation of an assembly graph.

Functions

json_to_graph(json_graph)

Create the graph from a json dictionary.

Details

cutcutcodec.core.compilation.json_to_graph.json_to_graph(json_graph: dict[str]) MultiDiGraph[source]

Create the graph from a json dictionary.

Reverse operation with cutcutcodec.core.compilation.graph_to_json.graph_to_json function.

Parameters

json_graphdict[str]

The complete representation of the graph.

Returns

assembly_graphnetworkx.MultiDiGraph

The strictly equivalent assembly graph.

Examples

>>> from pprint import pprint
>>> from cutcutcodec.core.compilation.json_to_graph import json_to_graph
>>> json_graph = {
...     'edges': [['generator_audio_noise_1', 'container_output_1', '0->0']],
...     'nodes': {
...         'container_output_1': {
...             'class': 'classes.container.ContainerOutput',
...             'state': {},
...         },
...         'generator_audio_noise_1': {
...             'class': 'generation.audio.noise.GeneratorAudioNoise',
...             'display': {'position': [0, 0]},
...             'state': {'seed': 0.0},
...         },
...     },
... }
>>> graph = json_to_graph(json_graph)
>>> pprint(sorted(graph.nodes))
['container_output_1', 'generator_audio_noise_1']
>>> pprint(sorted(graph.edges))
[('generator_audio_noise_1', 'container_output_1', '0->0')]
>>> pprint(graph.nodes["container_output_1"])
{'class': <class 'cutcutcodec.core.classes.container.ContainerOutput'>,
 'state': {}}
>>> pprint(graph.nodes["generator_audio_noise_1"])
{'class': <class 'cutcutcodec.core.generation.audio.noise.GeneratorAudioNoise'>,
 'display': {'position': [0, 0]},
 'state': {'seed': 0.0}}
>>>