cutcutcodec.core.compilation.tree_to_graph.tree_to_graph
- cutcutcodec.core.compilation.tree_to_graph.tree_to_graph(container_out: Node) MultiDiGraph[source]
Create the graph from an implicit dynamic tree.
The generated assembly graph abstracts and simplifies the modification of the pipeline. Gives a representation of the assembly tree in the form of a manipulable graph.
Parameters
- container_outcutcutcodec.core.classes.node.Node
The output of the dynamic graph.
Returns
- assembly_graphnetworkx.MultiDiGraph
The strictly equivalent assembly graph.
Examples
>>> from pprint import pprint >>> from cutcutcodec.core.classes.container import ContainerOutput >>> from cutcutcodec.core.compilation.tree_to_graph import tree_to_graph >>> from cutcutcodec.core.filter.audio.cat import FilterAudioCat >>> from cutcutcodec.core.filter.audio.subclip import FilterAudioSubclip >>> from cutcutcodec.core.generation.audio.noise import GeneratorAudioNoise >>> >>> (s_audio_0,) = FilterAudioSubclip(GeneratorAudioNoise(0).out_streams, 1, 2).out_streams >>> (s_audio_1,) = GeneratorAudioNoise(.5).out_streams >>> (s_chain_audio,) = FilterAudioCat([s_audio_0, s_audio_1]).out_streams >>> graph = tree_to_graph(ContainerOutput([s_chain_audio])) >>> >>> pprint(sorted(graph.nodes)) ['container_output_1', 'filter_audio_cat_1', 'filter_audio_subclip_1', 'generator_audio_noise_1', 'generator_audio_noise_2'] >>> pprint(sorted(graph.edges)) [('filter_audio_cat_1', 'container_output_1', '0->0'), ('filter_audio_subclip_1', 'filter_audio_cat_1', '0->0'), ('generator_audio_noise_1', 'filter_audio_subclip_1', '0->0'), ('generator_audio_noise_2', 'filter_audio_cat_1', '0->1')] >>>