Singularity / scripts /2.2_test_graph_operation.py
SlappAI's picture
Dev Scripts
f5b1acc
raw
history blame
2.4 kB
import requests
def print_tree(node, prefix="", visited=None, is_inheritance=False):
"""Recursive function to print a tree structure with differentiation for inheritance vs. other relationships."""
if visited is None:
visited = set()
node_id = node["node_id"]
# Avoid printing duplicate nodes by checking if node has been visited
if node_id in visited:
print(f"{prefix}(already listed) {node_id}")
return
visited.add(node_id)
relationship_type = "inherited" if is_inheritance else "related"
print(f"{prefix}{node_id} ({relationship_type})")
# Traverse descendants (inheritance)
descendants = [desc for desc in node.get("descendants", []) if desc["relationship"] == "inherits_from"]
for i, child in enumerate(descendants):
new_prefix = f"{prefix}β”œβ”€β”€ " if i < len(descendants) - 1 else f"{prefix}└── "
print_tree(child, new_prefix, visited, is_inheritance=True)
# Display other relationships
other_relations = [rel for rel in node.get("descendants", []) if rel["relationship"] != "inherits_from"]
for j, rel in enumerate(other_relations):
new_prefix = f"{prefix}β”œβ”€β”€ " if j < len(other_relations) - 1 else f"{prefix}└── "
print_tree(rel, new_prefix, visited, is_inheritance=False)
# Test API Endpoints
base_url = "http://localhost:5000"
# Step 1: Load Graph
print("\n--- Testing Graph Loading ---")
response = requests.post(f"{base_url}/load_graph")
print("Load Graph Response:", response.json())
# Step 2: Create Node
print("\n--- Testing Node Creation ---")
create_data = {
"node_id": "patient_123",
"data": {"name": "John Doe", "age": 45, "medical_conditions": ["hypertension", "diabetes"]},
"domain": "Healthcare",
"type": "Patient"
}
response = requests.post(f"{base_url}/create_node", json=create_data)
print("Create Node Response:", response.json())
# Step 3: Inspect Relationships for Node (Healthcare)
print("\n--- Testing Inspect Relationships for Node (Healthcare) ---")
response = requests.get(f"{base_url}/inspect_relationships?node_id=Healthcare")
relationships = response.json()
print("Inspect Relationships for Healthcare:")
# Convert to tree-like structure
root_node = {
"node_id": relationships["node_id"],
"descendants": relationships["relationships"]["child_relations"]
}
print_tree(root_node)