# Simple precedence graph generator. Loads assembly tiers pickle file, loads into networkX graph and plots it.
from src.graph_utilities.graph_builder import *
import networkx as nx
import matplotlib.pyplot as plt
import pickle
import pandas as pd
def main():
product_name = 'centrifugal_pump'
with open('../out/assembly_tiers/' + product_name + '.pickle', 'rb') as handle:
disassembly_tiers = pickle.load(handle)
assembly_tiers = list(reversed(disassembly_tiers))
subset_sizes = create_subset_sizes(assembly_tiers)
G = create_multilayered_graph(*subset_sizes)
mapping = create_mapping_of_names_to_nodes(assembly_tiers)
G = nx.relabel_nodes(G, mapping)
pos = nx.multipartite_layout(G, subset_key='layer')
plt.figure(figsize=(8, 8))
nx.draw(G, pos, with_labels=True)
plt.axis("equal")
plt.show()
pickle_path = '../out/precedence_graph/' + product_name + '.pickle'
with open(pickle_path, 'wb') as handle:
pickle.dump(G, handle, protocol=pickle.HIGHEST_PROTOCOL)
if __name__ == '__main__':
main()