cutcutcodec.core.compilation.graph_to_json.graph_to_json

cutcutcodec.core.compilation.graph_to_json.graph_to_json(graph: MultiDiGraph) dict[str][source]

Create the complete json serializable dictionary of the assembly graph.

Reverse operation with cutcutcodec.core.compilation.json_to_graph.json_to_graph function. Leave the “cache” of the nodes.

Parameters

graphnetworkx.MultiDiGraph

The assembly graph.

Returns

dict[str]

The equivalent graph (without cache) in the dictionary form.

Examples

>>> from pprint import pprint
>>> from cutcutcodec.core.classes.container import ContainerOutput
>>> from cutcutcodec.core.compilation.graph_to_json import graph_to_json
>>> from cutcutcodec.core.compilation.tree_to_graph import tree_to_graph
>>> from cutcutcodec.core.generation.audio.noise import GeneratorAudioNoise
>>> graph = tree_to_graph(ContainerOutput(GeneratorAudioNoise(0).out_streams))
>>> graph.nodes["container_output_1"]["cache"] = None
>>> graph.nodes["container_output_1"]["state"]["copy"] = False
>>> graph.nodes["container_output_1"]["display"] = {"position": [0, 0]}
>>> pprint(graph_to_json(graph))
{'edges': [['generator_audio_noise_1', 'container_output_1', '0->0']],
 'nodes': {'container_output_1': {'class': 'classes.container.ContainerOutput',
                                  'display': {'position': [0, 0]},
                                  'state': {'copy': False}},
           'generator_audio_noise_1': {'class': 'generation.audio.noise.GeneratorAudioNoise',
                                       'state': {'layout': 'stereo',
                                                 'seed': 0.0}}}}
>>>