release commit
This commit is contained in:
40
graphCreation/node_typing.py
Normal file
40
graphCreation/node_typing.py
Normal file
@ -0,0 +1,40 @@
|
||||
import networkx as nx
|
||||
|
||||
class Resource:
|
||||
def __init__(self, resource_type):
|
||||
self.resource_type = resource_type
|
||||
|
||||
def create_resource_class(resource_type):
|
||||
return type(resource_type, (Resource,), {})
|
||||
|
||||
def set_resource_type(graph):
|
||||
for node, data in graph.nodes(data=True):
|
||||
print(node, data)
|
||||
|
||||
print("-----------------------------")
|
||||
|
||||
nodes_to_replace = []
|
||||
for node, data in graph.nodes(data=True):
|
||||
print(isinstance(node, Resource), node, type(node))
|
||||
if isinstance(node, Resource):
|
||||
print("Found a resource: ", node)
|
||||
resource_type = node.resource_type
|
||||
if resource_type:
|
||||
# Dynamically create a new class based on the resource_type
|
||||
NewResourceClass = create_resource_class(resource_type)
|
||||
new_node = NewResourceClass(resource_type)
|
||||
nodes_to_replace.append((node, new_node, data))
|
||||
else:
|
||||
print(f"Warning: Node {node} is a resource but has no resource_type")
|
||||
|
||||
# Replace old nodes with new ones
|
||||
for old_node, new_node, data in nodes_to_replace:
|
||||
graph.add_node(new_node, **data)
|
||||
for pred in graph.predecessors(old_node):
|
||||
graph.add_edge(pred, new_node)
|
||||
for succ in graph.successors(old_node):
|
||||
graph.add_edge(new_node, succ)
|
||||
graph.remove_node(old_node)
|
||||
"""
|
||||
for node, data in graph.nodes(data=True):
|
||||
print(node, data) """
|
Reference in New Issue
Block a user