cutcutcodec.core.opti.cache.hashes.graph.compute_graph_items_hash
- cutcutcodec.core.opti.cache.hashes.graph.compute_graph_items_hash(graph: MultiDiGraph) dict[str | tuple[str, str, str], str][source]
Compute a signature for each node and edge, which reflects its state in the graph.
This is mean to detecting a change of attributes in one of the upstream elements.
Parameters
- graphnetworkx.MultiDiGraph
The assembly graph.
Returns
- hashesdict[str | tuple[str, str, str], str]
To each node and edge name, associate its state as a string.
Notes
The graph must not contain any cycles because the function would never returns.
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.subclip import FilterAudioSubclip >>> from cutcutcodec.core.generation.audio.noise import GeneratorAudioNoise >>> from cutcutcodec.core.opti.cache.hashes.graph import compute_graph_items_hash >>> container_out = ContainerOutput( ... FilterAudioSubclip(GeneratorAudioNoise(0).out_streams, 0, 1).out_streams ... ) >>> graph = tree_to_graph(container_out) >>> pprint(compute_graph_items_hash(graph)) {'container_output_1': '099c022d457eb220c36ae22a75bf1998', 'filter_audio_subclip_1': '10355c7ad764f111b15798bed884a821', 'generator_audio_noise_1': '4dc3de85c734bfd23024c381599bfe3f', ('filter_audio_subclip_1', 'container_output_1', '0->0'): '10355c7ad764f111b15798bed884a821|0', ('generator_audio_noise_1', '...subclip_1', '0->0'): '4dc3de85c734bfd23024c381599bfe3f|0'} >>>