Singularity / scripts /2.1_test_graph_operation.py
SlappAI's picture
Dev Scripts
f5b1acc
import requests
def print_tree(node, prefix="", visited=None):
"""Recursive function to print a refined tree structure without duplicates."""
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)
print(f"{prefix}{node_id}")
children = node.get("descendants", [])
for i, child in enumerate(children):
# Choose branch formatting based on child position
new_prefix = f"{prefix}β”œβ”€β”€ " if i < len(children) - 1 else f"{prefix}└── "
print_tree(child, new_prefix, visited)
# 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)