693 lines
422 KiB
Text
Vendored
693 lines
422 KiB
Text
Vendored
{
|
|
"cells": [
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"# Turn expert developer Python knowhow into an AI Memory that will make your own code better. \n",
|
|
"\n",
|
|
"\n",
|
|
"### Learning from Guido van Rossum, the creator of Python"
|
|
],
|
|
"id": "82925bff2c8bf25"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## What You'll Learn\n",
|
|
"\n",
|
|
"In this comprehensive tutorial, you'll discover how to transform scattered development data into an intelligent knowledge system that enhances your coding workflow. By the end, you'll have:\n",
|
|
"\n",
|
|
"- **Connected disparate data sources** (Guido's CPython contributions, mypy development, PEP discussions, your Python projects) into a unified AI memory graph\n",
|
|
"- **Built an memory layer** that understands Python design philosophy and coding patterns\n",
|
|
"- **Learn how to use intelligent search capabilities** that surface Pythonic solutions when you need them most\n",
|
|
"- **Integrated everything with your coding environment** through MCP (Model Context Protocol)\n",
|
|
"\n",
|
|
"This tutorial demonstrates the power of **knowledge graphs** and **retrieval-augmented generation (RAG)** for software development, showing you how to build systems that learn from Python's creator and improve your own Python development."
|
|
],
|
|
"id": "211f0ab1cdd6aeb"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"## Understanding the Cognee Ecosystem\n",
|
|
"\n",
|
|
"Before we dive in, let's understand the key components we'll be working with:\n",
|
|
"\n",
|
|
"### Core Cognee Functions\n",
|
|
"\n",
|
|
"- **`cognee.add()`** - Ingests raw data (files, text, APIs) into the system\n",
|
|
"- **`cognee.cognify()`** - Processes and structures data into a knowledge graph using AI\n",
|
|
"- **`cognee.search()`** - Queries the knowledge graph with natural language or Cypher\n",
|
|
"- **`cognee.visualize()`** - Creates interactive graph visualizations\n",
|
|
"- **`cognee.memify()`** - Cognee's \"secret sauce\" that infers implicit connections and rules from your data"
|
|
],
|
|
"id": "8848f21851b385fb"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"### Why This Approach Works\n",
|
|
"\n",
|
|
"Traditional coding assistants lack context about your specific projects, rules, and past decisions. By building a knowledge graph of development history from Python's creator, we create an AI that understands:\n",
|
|
"\n",
|
|
"- Guido's coding patterns and Python design philosophy\n",
|
|
"- How language features evolved and why\n",
|
|
"- Best practices derived from decades of Python development\n",
|
|
"- Connections between different aspects of Python programming"
|
|
],
|
|
"id": "5a4a1481f5209fca"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"### Exploring Guido's Python Contributions\n",
|
|
"\n",
|
|
"We'll begin with a pre-loaded dataset containing Guido van Rossum's contributions to the Python ecosystem. This demonstrates how cognee structures and connects development activity from Python's creator.\n",
|
|
"\n",
|
|
"Take a moment to explore the repositories this user contributed to with the Graph Visualizaiton"
|
|
],
|
|
"id": "dfc628df8c904d9b"
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-09-05T19:26:51.353344Z",
|
|
"start_time": "2025-09-05T19:26:47.853154Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"import cognee\n",
|
|
"import os\n",
|
|
"from pathlib import Path\n",
|
|
"\n",
|
|
"print('🔍 Quick Cognee Import Check')\n",
|
|
"print('=' * 30)\n",
|
|
"print(f'📍 Cognee location: {cognee.__file__}')\n",
|
|
"print(f'📁 Package directory: {os.path.dirname(cognee.__file__)}')\n",
|
|
"\n",
|
|
"# Check if it's local or installed\n",
|
|
"current_dir = Path.cwd()\n",
|
|
"cognee_path = Path(cognee.__file__)\n",
|
|
"if current_dir in cognee_path.parents:\n",
|
|
" print('🏠 Status: LOCAL DEVELOPMENT VERSION')\n",
|
|
"else:\n",
|
|
" print('📦 Status: INSTALLED PACKAGE')"
|
|
],
|
|
"id": "2f42ab437fd0f695",
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"\u001B[2m2025-09-05T19:26:49.095064\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mDeleted old log file: /Users/vasilije/Projects/tiktok/cognee/logs/2025-08-18_22-45-13.log\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"/Users/vasilije/Projects/tiktok/cognee/.venv/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
|
|
" from .autonotebook import tqdm as notebook_tqdm\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-05T19:26:49.737002\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mLogging initialized \u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m \u001B[36mcognee_version\u001B[0m=\u001B[35m0.2.4b1-local\u001B[0m \u001B[36mdatabase_path\u001B[0m=\u001B[35m/Users/vasilije/Projects/tiktok/cognee/cognee/.cognee_system/databases\u001B[0m \u001B[36mgraph_database_name\u001B[0m=\u001B[35m\u001B[0m \u001B[36mos_info\u001B[0m=\u001B[35m'Darwin 23.6.0 (Darwin Kernel Version 23.6.0: Fri Jul 5 17:56:15 PDT 2024; root:xnu-10063.141.1~2/RELEASE_ARM64_T6031)'\u001B[0m \u001B[36mpython_version\u001B[0m=\u001B[35m3.12.9\u001B[0m \u001B[36mrelational_config\u001B[0m=\u001B[35mcognee_db\u001B[0m \u001B[36mstructlog_version\u001B[0m=\u001B[35m25.4.0\u001B[0m \u001B[36mvector_config\u001B[0m=\u001B[35mlancedb\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-05T19:26:49.737553\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mDatabase storage: /Users/vasilije/Projects/tiktok/cognee/cognee/.cognee_system/databases\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"🔍 Quick Cognee Import Check\n",
|
|
"==============================\n",
|
|
"📍 Cognee location: /Users/vasilije/Projects/tiktok/cognee/cognee/__init__.py\n",
|
|
"📁 Package directory: /Users/vasilije/Projects/tiktok/cognee/cognee\n",
|
|
"📦 Status: INSTALLED PACKAGE\n"
|
|
]
|
|
}
|
|
],
|
|
"execution_count": 2
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-09-05T19:26:44.254023Z",
|
|
"start_time": "2025-09-05T19:26:44.249919Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"import sys\n",
|
|
"from pathlib import Path\n",
|
|
"notebook_dir = Path.cwd()\n",
|
|
"if notebook_dir.name == 'notebooks':\n",
|
|
" project_root = notebook_dir.parent\n",
|
|
"else:\n",
|
|
" project_root = Path.cwd()\n",
|
|
"\n",
|
|
"# Add project root to the beginning of sys.path\n",
|
|
"project_root_str = str(project_root.absolute())\n",
|
|
"if project_root_str not in sys.path:\n",
|
|
" sys.path.insert(0, project_root_str)\n",
|
|
"\n",
|
|
"print(f\"📁 Project root: {project_root_str}\")"
|
|
],
|
|
"id": "cbc73459a6166c72",
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"📁 Project root: /Users/vasilije/Projects/tiktok/cognee\n"
|
|
]
|
|
}
|
|
],
|
|
"execution_count": 1
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-09-06T07:01:06.675938Z",
|
|
"start_time": "2025-09-06T06:59:49.388827Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"import cognee\n",
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"result = await cognee.add(\"file://data/guido_contributions.json\", node_set=[\"guido\"])\n",
|
|
"await cognee.cognify()\n",
|
|
"results = await cognee.search(\"Show me commits\")"
|
|
],
|
|
"id": "d3b6785eba2e23a9",
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:50.479136\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mDeleted old log file: /Users/vasilije/Projects/tiktok/cognee/logs/2025-08-29_21-39-33.log\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"/Users/vasilije/Projects/tiktok/cognee/.venv/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
|
|
" from .autonotebook import tqdm as notebook_tqdm\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:51.091312\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mLogging initialized \u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m \u001B[36mcognee_version\u001B[0m=\u001B[35m0.2.4b1-local\u001B[0m \u001B[36mdatabase_path\u001B[0m=\u001B[35m/Users/vasilije/Projects/tiktok/cognee/cognee/.cognee_system/databases\u001B[0m \u001B[36mgraph_database_name\u001B[0m=\u001B[35m\u001B[0m \u001B[36mos_info\u001B[0m=\u001B[35m'Darwin 23.6.0 (Darwin Kernel Version 23.6.0: Fri Jul 5 17:56:15 PDT 2024; root:xnu-10063.141.1~2/RELEASE_ARM64_T6031)'\u001B[0m \u001B[36mpython_version\u001B[0m=\u001B[35m3.12.9\u001B[0m \u001B[36mrelational_config\u001B[0m=\u001B[35mcognee_db\u001B[0m \u001B[36mstructlog_version\u001B[0m=\u001B[35m25.4.0\u001B[0m \u001B[36mvector_config\u001B[0m=\u001B[35mlancedb\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:51.092251\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mDatabase storage: /Users/vasilije/Projects/tiktok/cognee/cognee/.cognee_system/databases\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:52.602786\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[1mEmbeddingRateLimiter initialized: enabled=False, requests_limit=60, interval_seconds=60\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.132526\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mJSON extension already loaded or unavailable: Binder exception: Extension: JSON is already loaded. You can check loaded extensions by `CALL SHOW_LOADED_EXTENSIONS() RETURN *`.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.134408\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.134855\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mOntology file 'None' not found. No owl ontology will be attached to the graph.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.155702\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `b77e1142-b32a-5de4-a146-72e8e68c9f63`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.156164\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.156587\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.163529\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mAsync Generator task started: `extract_chunks_from_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.247223\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `extract_graph_from_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.253833\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.257573\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.260478\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.263534\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.266669\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T06:59:57.269548\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.714353\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pullrequest' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.715140\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 're-work indirect dependencies' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.715532\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'repository' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.715971\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.716375\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'date' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.716757\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2025-09-05' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.717160\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'file' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.717504\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/build.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.717906\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/fixup.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.718441\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/indirection.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.718858\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/nodes.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.719271\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/semanal.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.719602\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/server/deps.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.720130\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/test/typefixture.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.720628\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/typeanal.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.721014\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'test-data/unit/check-incremental.test' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.721743\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'function' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.722234\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '_visit_module_name' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.722708\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'visit_callable_type' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.723087\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'visit_tuple_type' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.723450\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'visit_type_alias_type' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.723901\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'codingpattern' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.724225\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'generator_expression' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.724520\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'context_manager' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.724828\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'class_definition' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.725120\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'type_hint' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.725436\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'improve type aliases used analysis in semanal' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.725711\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'analyze_alias' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.725964\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'add_type_alias_deps' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.726211\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'chore: add cline_docs/ to .gitignore' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.726444\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '.gitignore' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.726680\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '[mypyc] add type annotations to tests' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.726948\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2025-09-04' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.727361\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypyc/test-data/fixtures/ir.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.727753\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypyc/test-data/fixtures/typing-full.pyi' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.728059\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypyc/test-data/run-dunders.test' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.728341\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypyc/test-data/run-singledispatch.test' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.728641\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'count' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.728917\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'print' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.729262\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '_specialform.__getitem__' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.729607\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'typevar.__init__' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.729939\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'typevar.__or__' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.730204\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'check functions without annotations in mypyc tests' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.730479\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypyc/test-data/run-classes.test' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.730923\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypyc/test/test_run.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.731248\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'type.__new__' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.731689\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'project' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.732033\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cpython' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.732339\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'person' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.732708\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'thomas grainger' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.733031\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'adam turner' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.733567\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'arthur tacca' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.734137\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'jason zhang' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.734588\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2025-09-02' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.734967\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2025-06-03' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.735265\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2025-05-20' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.735768\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2024-10-26' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.736197\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2024-05-27' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.736615\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2024-05-05' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.737016\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pull_request' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.737352\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pull request 19782' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.737710\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pull request 19217' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.738043\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'commit' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.738334\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'commit 28625d4f956f8d30671aba1daaac9735932983db' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.738677\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pep' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.739429\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pep 667' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.739873\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pep 647' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.740324\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'gh-116307: enable frame proxy' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.740719\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'gh-118335: rename --experimental-interpreter' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.741232\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'support typeguard (pep 647)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.741567\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'objects/frameobject.c' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.741942\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'doc/reference/datamodel.rst' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.742395\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'doc/whatsnew/3.13.rst' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.742737\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'october 12, 2020' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.743165\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'october 8, 2020' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.743448\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'september 11, 2020' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.743856\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'september 4, 2020' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.744257\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'august 27, 2020' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.744584\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'fix stubgenerator collector for bound arguments in namedtuple transformer' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.744930\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'add a separate issue form to report crashes (#9549)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.745274\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'make the new bug templates less markup-heavy (#9438)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.745650\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'add mypy_config_file_dir to environment when config file is read (2nd try) (#9414)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.745977\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'revert \"add mypy_config_file_dir to environment when config file is read (#9403)\"' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.746276\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'revert issue template (#9345) -- it doesnt work' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.746628\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/fastparse2.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.746869\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/messages.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.747111\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/types.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.747325\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/fastparse.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.747767\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/meet.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.748332\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/join.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.748545\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/constraints.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.748829\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/config_parser.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.753080\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/test/testcmdline.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.753446\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'test-data/unit/envvars.test' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.753885\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '.github/issue_template/crash.md' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.757988\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '.github/issue_template/bug.md' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.758339\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '.github/issue_template/documentation.md' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.762067\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '.github/issue_template/feature.md' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.762408\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '.github/issue_template/question.md' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.762819\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '.github/pull_request_template.md' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.766980\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue_template.md' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.767370\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.767674\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue #9555' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.768025\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue #9549' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.768319\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue #9438' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.768640\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue #9414' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.768934\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue #7968' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.769206\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue #9403' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.769529\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue #9345' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:37.769786\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'aghast' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:41.617705\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:41.619358\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:41.621373\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:41.623627\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:41.625028\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:41.626371\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:41.627971\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:00:57.401770\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:01:01.885063\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:01:01.885785\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:01:01.886217\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `extract_graph_from_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:01:01.886536\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mAsync Generator task completed: `extract_chunks_from_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:01:01.886721\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:01:01.887053\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:01:01.887373\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `b77e1142-b32a-5de4-a146-72e8e68c9f63`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:01:01.908348\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph projection completed: 131 nodes, 442 edges in 0.01s\u001B[0m [\u001B[0m\u001B[1m\u001B[34mCogneeGraph\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:01:02.082021\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mVector collection retrieval completed: Retrieved distances from 6 collections in 0.02s\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:01:02.085755\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mModel not found in LiteLLM's model_cost.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n"
|
|
]
|
|
}
|
|
],
|
|
"execution_count": 1
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": "What's happening here? The search() function uses natural language to query a knowledge graph containing Guido's development history. Unlike traditional databases, this understands the relationships between commits, language features, design decisions, and evolution over time.",
|
|
"id": "a862c3911acc8a45"
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-09-06T07:27:16.098544Z",
|
|
"start_time": "2025-09-06T07:27:16.077200Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"from cognee import visualize_graph\n",
|
|
"\n",
|
|
"await visualize_graph(\n",
|
|
")"
|
|
],
|
|
"id": "95ce5d24dfaefa6d",
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:27:16.090258\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph visualization saved as /Users/vasilije/graph_visualization.html\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
|
|
"\n",
|
|
"\u001B[2m2025-09-06T07:27:16.091692\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mThe HTML file has been stored on your home directory! Navigate there with cd ~\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"'\\n <!DOCTYPE html>\\n <html>\\n <head>\\n <meta charset=\"utf-8\">\\n <script src=\"https://d3js.org/d3.v5.min.js\"></script>\\n <style>\\n body, html { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: linear-gradient(90deg, #101010, #1a1a2e); color: white; font-family: \\'Inter\\', sans-serif; }\\n\\n svg { width: 100vw; height: 100vh; display: block; }\\n .links line { stroke: rgba(255, 255, 255, 0.4); stroke-width: 2px; }\\n .links line.weighted { stroke: rgba(255, 215, 0, 0.7); }\\n .links line.multi-weighted { stroke: rgba(0, 255, 127, 0.8); }\\n .nodes circle { stroke: white; stroke-width: 0.5px; filter: drop-shadow(0 0 5px rgba(255,255,255,0.3)); }\\n .node-label { font-size: 5px; font-weight: bold; fill: white; text-anchor: middle; dominant-baseline: middle; font-family: \\'Inter\\', sans-serif; pointer-events: none; }\\n .edge-label { font-size: 3px; fill: rgba(255, 255, 255, 0.7); text-anchor: middle; dominant-baseline: middle; font-family: \\'Inter\\', sans-serif; pointer-events: none; }\\n \\n .tooltip {\\n position: absolute;\\n text-align: left;\\n padding: 8px;\\n font-size: 12px;\\n background: rgba(0, 0, 0, 0.9);\\n color: white;\\n border: 1px solid rgba(255, 255, 255, 0.3);\\n border-radius: 4px;\\n pointer-events: none;\\n opacity: 0;\\n transition: opacity 0.2s;\\n z-index: 1000;\\n max-width: 300px;\\n word-wrap: break-word;\\n }\\n </style>\\n </head>\\n <body>\\n <svg></svg>\\n <div class=\"tooltip\" id=\"tooltip\"></div>\\n <script>\\n var nodes = [{\"name\": \"\", \"type\": \"DocumentChunk\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"belongs_to_set\": null, \"text\": \"\\\\n Natural language processing (NLP) is an interdisciplinary\\\\n subfield of computer science and information retrieval.\\\\n \", \"chunk_size\": 48, \"chunk_index\": 0, \"cut_type\": \"paragraph_end\", \"id\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"color\": \"#801212\"}, {\"name\": \"natural language processing\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"An interdisciplinary subfield of computer science and information retrieval, commonly abbreviated as NLP.\", \"id\": \"bc338a39-64d6-549a-acec-da60846dd90d\", \"color\": \"#f47710\"}, {\"name\": \"field\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"field\", \"id\": \"0198571b-3e94-50ea-8b9f-19e3a31080c0\", \"color\": \"#6510f4\"}, {\"name\": \"computer science\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"A field of study in computer science.\", \"id\": \"6218dbab-eb6a-5759-a864-b3419755ffe0\", \"color\": \"#f47710\"}, {\"name\": \"information retrieval\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"A field of study in information retrieval.\", \"id\": \"02bdab9a-0981-518c-a0d4-1684e0329447\", \"color\": \"#f47710\"}, {\"name\": \"text_c60bc7dabdbcb365644b16f85ea0ecd9\", \"type\": \"TextDocument\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"raw_data_location\": \"file:///Users/vasilije/Projects/tiktok/cognee/cognee/.data_storage/text_c60bc7dabdbcb365644b16f85ea0ecd9.txt\", \"external_metadata\": \"{}\", \"mime_type\": \"text/plain\", \"id\": \"b86bef5e-03a9-5ea4-b495-c138e897de98\", \"color\": \"#D3D3D3\"}, {\"name\": \"\", \"type\": \"TextSummary\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"belongs_to_set\": null, \"text\": \"NLP serves as an interdisciplinary area in computing and data exploration.\", \"id\": \"f3e21f00-175e-5c59-beae-80a98d576ebd\", \"color\": \"#1077f4\"}, {\"name\": \"\", \"type\": \"DocumentChunk\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"text\": \"[\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"pr\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"Re-work indirect dependencies\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Wow, this was quite a ride. Indirect dependencies were always supported kind of on best effort. This PR puts them on some principled foundation. It fixes three crashes and three stale types reported. All tests are quite weird/obscure, they are designed to expose the flaws in current logic (plus one test that passes on master, but it covers important corner case, so I add it just in case ). A short summary of various fixes (in arbitrary order):\\\\\\\\r\\\\\\\\n* Update many outdated comments and docstrings\\\\\\\\r\\\\\\\\n* Missing transitive dependency is now considered stale\\\\\\\\r\\\\\\\\n* Handle transitive generic bases in indirection visitor\\\\\\\\r\\\\\\\\n* Handle chained alias targets in indirection visitor\\\\\\\\r\\\\\\\\n* Always record original aliases during semantic analysis\\\\\\\\r\\\\\\\\n* Delete `qualified_tvars` as a concept, they are not needed since long ago\\\\\\\\r\\\\\\\\n* Remove ad-hoc handling for `TypeInfo`s from `build.py`\\\\\\\\r\\\\\\\\n* Support symbols with setter type different from getter type\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nIn general the logic should be more simple/straightforward now:\\\\\\\\r\\\\\\\\n* Get all types in a file (need both symbol types _and_ expression types since some types may be only local)\\\\\\\\r\\\\\\\\n* For each type _transitively_ find all named types in them (thus aggregating all interfaces the type depends on)\\\\\\\\r\\\\\\\\n* In case any type was forced using `get_proper_type()`, record the orginal type alias during semantic analysis\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nNote since this makes the algorithm correct, it may also make it slower (most notably because we must visit generic bases). I tried to offset this by couple optimizations, hopefully performance impact will be minimal.\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/pull/19798\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2025-09-05T13:54:52Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"19798\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"mypy/build.py\\\\\",\\\\n \\\\\"mypy/fixup.py\\\\\",\\\\n \\\\\"mypy/indirection.py\\\\\",\\\\n \\\\\"mypy/nodes.py\\\\\",\\\\n \\\\\"mypy/semanal.py\\\\\",\\\\n \\\\\"mypy/server/deps.py\\\\\",\\\\n \\\\\"mypy/test/typefixture.py\\\\\",\\\\n \\\\\"mypy/typeanal.py\\\\\",\\\\n \\\\\"test-data/unit/check-incremental.test\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 0,\\\\n \\\\\"deletions\\\\\": 0,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/build.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"from mypy.graph_utils import prepare_sccs, strongly_connected_components, topsort\\\\\\\\nfrom mypy.indirection import TypeIndirectionVisitor\\\\\\\\nfrom mypy.messages import MessageBuilder\\\\\\\\nfrom mypy.nodes import Import, ImportAll, ImportBase, ImportFrom, MypyFile, SymbolTable, TypeInfo\\\\\\\\nfrom mypy.partially_defined import PossiblyUndefinedVariableVisitor\\\\\\\\nfrom mypy.semanal import SemanticAnalyzer\\\\\\\\nfrom mypy.semanal_pass1 import SemanticAnalyzerPreAnalysis\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"from mypy.graph_utils import prepare_sccs, strongly_connected_components, topsort\\\\\\\\nfrom mypy.indirection import TypeIndirectionVisitor\\\\\\\\nfrom mypy.messages import MessageBuilder\\\\\\\\nfrom mypy.nodes import (\\\\\\\\n Decorator,\\\\\\\\n Import,\\\\\\\\n ImportAll,\\\\\\\\n ImportBase,\\\\\\\\n ImportFrom,\\\\\\\\n MypyFile,\\\\\\\\n OverloadedFuncDef,\\\\\\\\n SymbolTable,\\\\\\\\n)\\\\\\\\nfrom mypy.partially_defined import PossiblyUndefinedVariableVisitor\\\\\\\\nfrom mypy.semanal import SemanticAnalyzer\\\\\\\\nfrom mypy.semanal_pass1 import SemanticAnalyzerPreAnalysis\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"from mypy.graph_utils import prepare_sccs, strongly_connected_components, topsort\\\\\\\\nfrom mypy.indirection import TypeIndirectionVisitor\\\\\\\\nfrom mypy.messages import MessageBuilder\\\\\\\\nfrom mypy.nodes import Import, ImportAll, ImportBase, ImportFrom, MypyFile, SymbolTable, TypeInfo\\\\\\\\nfrom mypy.nodes import (\\\\\\\\n Decorator,\\\\\\\\n Import,\\\\\\\\n ImportAll,\\\\\\\\n ImportBase,\\\\\\\\n ImportFrom,\\\\\\\\n MypyFile,\\\\\\\\n OverloadedFuncDef,\\\\\\\\n SymbolTable,\\\\\\\\n)\\\\\\\\nfrom mypy.partially_defined import PossiblyUndefinedVariableVisitor\\\\\\\\nfrom mypy.semanal import SemanticAnalyzer\\\\\\\\nfrom mypy.semanal_pass1 import SemanticAnalyzerPreAnalysis\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/build.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"\\\\\\\\nFor single nodes, processing is simple. If the node was cached, we\\\\\\\\ndeserialize the cache data and fix up cross-references. Otherwise, we\\\\\\\\ndo semantic analysis followed by type checking. We also handle (c)\\\\\\\\nabove; if a module has valid cache data *but* any of its\\\\\\\\ndependencies was processed from source, then the module should be\\\\\\\\nprocessed from source.\\\\\\\\n\\\\\\\\nA relatively simple optimization (outside SCCs) we might do in the\\\\\\\\nfuture is as follows: if a node\\'s cache data is valid, but one or more\\\\\\\\nof its dependencies are out of date so we have to re-parse the node\\\\\\\\nfrom source, once we have fully type-checked the node, we can decide\\\\\\\\nwhether its symbol table actually changed compared to the cache data\\\\\\\\n(by reading the cache data and comparing it to the data we would be\\\\\\\\nwriting). If there is no change we can declare the node up to date,\\\\\\\\nand any node that depends (and for which we have cached data, and\\\\\\\\nwhose other dependencies are up to date) on it won\\'t need to be\\\\\\\\nre-parsed from source.\\\\\\\\n\\\\\\\\nImport cycles\\\\\\\\n-------------\\\\\\\\n\\\\\\\\nFinally we have to decide how to handle (c), import cycles. Here\\\\\\\\nwe\\'ll need a modified version of the original state machine\\\\\\\\n(build.py), but we only need to do this per SCC, and we won\\'t have to\\\\\\\\ndeal with changes to the list of nodes while we\\'re processing it.\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"\\\\\\\\nFor single nodes, processing is simple. If the node was cached, we\\\\\\\\ndeserialize the cache data and fix up cross-references. Otherwise, we\\\\\\\\ndo semantic analysis followed by type checking. Once we (re-)processed\\\\\\\\nan SCC we check whether its interface (symbol table) is still fresh\\\\\\\\n(matches previous cached value). If it is not, we consider dependent SCCs\\\\\\\\nstale so that they need to be re-parsed as well.\\\\\\\\n\\\\\\\\nNote on indirect dependencies: normally dependencies are determined from\\\\\\\\nimports, but since our type interfaces are \\\\\\\\\\\\\"opaque\\\\\\\\\\\\\" (i.e. symbol tables can\\\\\\\\ncontain types identified by name), these are not enough. We *must* also\\\\\\\\nadd \\\\\\\\\\\\\"indirect\\\\\\\\\\\\\" dependencies from types to their definitions. For this\\\\\\\\npurpose, after we finished processing a module, we travers its type map and\\\\\\\\nsymbol tables, and for each type we find (transitively) on which opaque/named\\\\\\\\ntypes it depends.\\\\\\\\n\\\\\\\\nImport cycles\\\\\\\\n-------------\\\\\\\\n\\\\\\\\nFinally we have to decide how to handle (b), import cycles. Here\\\\\\\\nwe\\'ll need a modified version of the original state machine\\\\\\\\n(build.py), but we only need to do this per SCC, and we won\\'t have to\\\\\\\\ndeal with changes to the list of nodes while we\\'re processing it.\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"\\\\\\\\nFor single nodes, processing is simple. If the node was cached, we\\\\\\\\ndeserialize the cache data and fix up cross-references. Otherwise, we\\\\\\\\ndo semantic analysis followed by type checking. We also handle (c)\\\\\\\\nabove; if a module has valid cache data *but* any of its\\\\\\\\ndependencies was processed from source, then the module should be\\\\\\\\nprocessed from source.\\\\\\\\n\\\\\\\\nA relatively simple optimization (outside SCCs) we might do in the\\\\\\\\nfuture is as follows: if a node\\'s cache data is valid, but one or more\\\\\\\\nof its dependencies are out of date so we have to re-parse the node\\\\\\\\nfrom source, once we have fully type-checked the node, we can decide\\\\\\\\nwhether its symbol table actually changed compared to the cache data\\\\\\\\n(by reading the cache data and comparing it to the data we would be\\\\\\\\nwriting). If there is no change we can declare the node up to date,\\\\\\\\nand any node that depends (and for which we have cached data, and\\\\\\\\nwhose other dependencies are up to date) on it won\\'t need to be\\\\\\\\nre-parsed from source.\\\\\\\\ndo semantic analysis followed by type checking. Once we (re-)processed\\\\\\\\nan SCC we check whether its interface (symbol table) is still fresh\\\\\\\\n(matches previous cached value). If it is not, we consider dependent SCCs\\\\\\\\nstale so that they need to be re-parsed as well.\\\\\\\\n\\\\\\\\nNote on indirect dependencies: normally dependencies are determined from\\\\\\\\nimports, but since our type interfaces are \\\\\\\\\\\\\"opaque\\\\\\\\\\\\\" (i.e. symbol tables can\\\\\\\\ncontain types identified by name), these are not enough. We *must* also\\\\\\\\nadd \\\\\\\\\\\\\"indirect\\\\\\\\\\\\\" dependencies from types to their definitions. For this\\\\\\\\npurpose, after we finished processing a module, we travers its type map and\\\\\\\\nsymbol tables, and for each type we find (transitively) on which opaque/named\\\\\\\\ntypes it depends.\\\\\\\\n\\\\\\\\nImport cycles\\\\\\\\n-------------\\\\\\\\n\\\\\\\\nFinally we have to decide how to handle (c), import cycles. Here\\\\\\\\nFinally we have to decide how to handle (b), import cycles. Here\\\\\\\\nwe\\'ll need a modified version of the original state machine\\\\\\\\n(build.py), but we only need to do this per SCC, and we won\\'t have to\\\\\\\\ndeal with changes to the list of nodes while we\\'re processing it.\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 10,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"generator_expression\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/build.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"\\\\\\\\n # We should always patch indirect dependencies, even in full (non-incremental) builds,\\\\\\\\n # because the cache still may be written, and it must be correct.\\\\\\\\n # TODO: find a more robust way to traverse *all* relevant types?\\\\\\\\n all_types = list(self.type_map().values())\\\\\\\\n for _, sym, _ in self.tree.local_definitions():\\\\\\\\n if sym.type is not None:\\\\\\\\n all_types.append(sym.type)\\\\\\\\n if isinstance(sym.node, TypeInfo):\\\\\\\\n # TypeInfo symbols have some extra relevant types.\\\\\\\\n all_types.extend(sym.node.bases)\\\\\\\\n if sym.node.metaclass_type:\\\\\\\\n all_types.append(sym.node.metaclass_type)\\\\\\\\n if sym.node.typeddict_type:\\\\\\\\n all_types.append(sym.node.typeddict_type)\\\\\\\\n if sym.node.tuple_type:\\\\\\\\n all_types.append(sym.node.tuple_type)\\\\\\\\n self._patch_indirect_dependencies(self.type_checker().module_refs, all_types)\\\\\\\\n\\\\\\\\n if self.options.dump_inference_stats:\\\\\\\\n dump_type_stats(\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"\\\\\\\\n # We should always patch indirect dependencies, even in full (non-incremental) builds,\\\\\\\\n # because the cache still may be written, and it must be correct.\\\\\\\\n all_types = set(self.type_map().values())\\\\\\\\n for _, sym, _ in self.tree.local_definitions():\\\\\\\\n if sym.type is not None:\\\\\\\\n all_types.add(sym.type)\\\\\\\\n # Special case: settable properties may have two types.\\\\\\\\n if isinstance(sym.node, OverloadedFuncDef) and sym.node.is_property:\\\\\\\\n assert isinstance(first_node := sym.node.items[0], Decorator)\\\\\\\\n if first_node.var.setter_type:\\\\\\\\n all_types.add(first_node.var.setter_type)\\\\\\\\n # Using mod_alias_deps is unfortunate but needed, since it is highly impractical\\\\\\\\n # (and practically impossible) to avoid all get_proper_type() calls. For example,\\\\\\\\n # TypeInfo.bases and metaclass, *args and **kwargs, Overloaded.items, and trivial\\\\\\\\n # aliases like Text = str, etc. all currently forced to proper types. Thus, we need\\\\\\\\n # to record the original definitions as they are first seen in semanal.py.\\\\\\\\n self._patch_indirect_dependencies(\\\\\\\\n self.type_checker().module_refs | self.tree.mod_alias_deps, all_types\\\\\\\\n )\\\\\\\\n\\\\\\\\n if self.options.dump_inference_stats:\\\\\\\\n dump_type_stats(\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"\\\\\\\\n # We should always patch indirect dependencies, even in full (non-incremental) builds,\\\\\\\\n # because the cache still may be written, and it must be correct.\\\\\\\\n # TODO: find a more robust way to traverse *all* relevant types?\\\\\\\\n all_types = list(self.type_map().values())\\\\\\\\n all_types = set(self.type_map().values())\\\\\\\\n for _, sym, _ in self.tree.local_definitions():\\\\\\\\n if sym.type is not None:\\\\\\\\n all_types.append(sym.type)\\\\\\\\n if isinstance(sym.node, TypeInfo):\\\\\\\\n # TypeInfo symbols have some extra relevant types.\\\\\\\\n all_types.extend(sym.node.bases)\\\\\\\\n if sym.node.metaclass_type:\\\\\\\\n all_types.append(sym.node.metaclass_type)\\\\\\\\n if sym.node.typeddict_type:\\\\\\\\n all_types.append(sym.node.typeddict_type)\\\\\\\\n if sym.node.tuple_type:\\\\\\\\n all_types.append(sym.node.tuple_type)\\\\\\\\n self._patch_indirect_dependencies(self.type_checker().module_refs, all_types)\\\\\\\\n all_types.add(sym.type)\\\\\\\\n # Special case: settable properties may have two types.\\\\\\\\n if isinstance(sym.node, OverloadedFuncDef) and sym.node.is_property:\\\\\\\\n assert isinstance(first_node := sym.node.items[0], Decorator)\\\\\\\\n if first_node.var.setter_type:\\\\\\\\n all_types.add(first_node.var.setter_type)\\\\\\\\n # Using mod_alias_deps is unfortunate but needed, since it is highly impractical\\\\\\\\n # (and practically impossible) to avoid all get_proper_type() calls. For example,\\\\\\\\n # TypeInfo.bases and metaclass, *args and **kwargs, Overloaded.items, and trivial\\\\\\\\n # aliases like Text = str, etc. all currently forced to proper types. Thus, we need\\\\\\\\n # to record the original definitions as they are first seen in semanal.py.\\\\\\\\n self._patch_indirect_dependencies(\\\\\\\\n self.type_checker().module_refs | self.tree.mod_alias_deps, all_types\\\\\\\\n )\\\\\\\\n\\\\\\\\n if self.options.dump_inference_stats:\\\\\\\\n dump_type_stats(\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 8,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"generator_expression\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/build.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" self._type_checker.reset()\\\\\\\\n self._type_checker = None\\\\\\\\n\\\\\\\\n def _patch_indirect_dependencies(self, module_refs: set[str], types: list[Type]) -> None:\\\\\\\\n assert None not in types\\\\\\\\n valid = self.valid_references()\\\\\\\\n\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" self._type_checker.reset()\\\\\\\\n self._type_checker = None\\\\\\\\n\\\\\\\\n def _patch_indirect_dependencies(self, module_refs: set[str], types: set[Type]) -> None:\\\\\\\\n assert None not in types\\\\\\\\n valid = self.valid_references()\\\\\\\\n\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" self._type_checker.reset()\\\\\\\\n self._type_checker = None\\\\\\\\n\\\\\\\\n def _patch_indirect_dependencies(self, module_refs: set[str], types: list[Type]) -> None:\\\\\\\\n def _patch_indirect_dependencies(self, module_refs: set[str], types: set[Type]) -> None:\\\\\\\\n assert None not in types\\\\\\\\n valid = self.valid_references()\\\\\\\\n\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": \\\\\"_patch_indirect_dependencies\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"function_definition\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/build.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" for id in scc:\\\\\\\\n deps.update(graph[id].dependencies)\\\\\\\\n deps -= ascc\\\\\\\\n stale_deps = {id for id in deps if id in graph and not graph[id].is_interface_fresh()}\\\\\\\\n fresh = fresh and not stale_deps\\\\\\\\n undeps = set()\\\\\\\\n if fresh:\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" for id in scc:\\\\\\\\n deps.update(graph[id].dependencies)\\\\\\\\n deps -= ascc\\\\\\\\n # Note: if a dependency is not in graph anymore, it should be considered interface-stale.\\\\\\\\n # This is important to trigger any relevant updates from indirect dependencies that were\\\\\\\\n # removed in load_graph().\\\\\\\\n stale_deps = {id for id in deps if id not in graph or not graph[id].is_interface_fresh()}\\\\\\\\n fresh = fresh and not stale_deps\\\\\\\\n undeps = set()\\\\\\\\n if fresh:\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" for id in scc:\\\\\\\\n deps.update(graph[id].dependencies)\\\\\\\\n deps -= ascc\\\\\\\\n stale_deps = {id for id in deps if id in graph and not graph[id].is_interface_fresh()}\\\\\\\\n # Note: if a dependency is not in graph anymore, it should be considered interface-stale.\\\\\\\\n # This is important to trigger any relevant updates from indirect dependencies that were\\\\\\\\n # removed in load_graph().\\\\\\\\n stale_deps = {id for id in deps if id not in graph or not graph[id].is_interface_fresh()}\\\\\\\\n fresh = fresh and not stale_deps\\\\\\\\n undeps = set()\\\\\\\\n if fresh:\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"generator_expression\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/indirection.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" def __init__(self) -> None:\\\\\\\\n # Module references are collected here\\\\\\\\n self.modules: set[str] = set()\\\\\\\\n # User to avoid infinite recursion with recursive type aliases\\\\\\\\n self.seen_aliases: set[types.TypeAliasType] = set()\\\\\\\\n # Used to avoid redundant work\\\\\\\\n self.seen_fullnames: set[str] = set()\\\\\\\\n\\\\\\\\n def find_modules(self, typs: Iterable[types.Type]) -> set[str]:\\\\\\\\n self.modules = set()\\\\\\\\n self.seen_fullnames = set()\\\\\\\\n self.seen_aliases = set()\\\\\\\\n for typ in typs:\\\\\\\\n self._visit(typ)\\\\\\\\n return self.modules\\\\\\\\n\\\\\\\\n def _visit(self, typ: types.\", \"chunk_size\": 8175, \"chunk_index\": 0, \"cut_type\": \"sentence_end\", \"id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"color\": \"#801212\"}, {\"name\": \"guido_contributions\", \"type\": \"TextDocument\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"raw_data_location\": \"file:///Users/vasilije/Projects/tiktok/cognee/cognee/.data_storage/text_e26f30c905128d5b231744dd2a381270.txt\", \"external_metadata\": \"{\\\\n \\\\\"node_set\\\\\": [\\\\n \\\\\"guido\\\\\"\\\\n ]\\\\n}\", \"mime_type\": \"text/plain\", \"id\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"color\": \"#D3D3D3\"}, {\"name\": \"guido\", \"type\": \"NodeSet\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": []}, \"belongs_to_set\": null, \"id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"color\": \"#D3D3D3\"}, {\"name\": \"re-work indirect dependencies\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"A pull request to re-work indirect dependencies in mypy, fixing crashes and stale types.\", \"id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"color\": \"#f47710\"}, {\"name\": \"pullrequest\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"pullrequest\", \"id\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"color\": \"#6510f4\"}, {\"name\": \"mypy\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"The mypy repository on GitHub.\", \"id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"color\": \"#f47710\"}, {\"name\": \"repository\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"repository\", \"id\": \"9d2f4a61-7b81-5539-aef2-6bf677b5229e\", \"color\": \"#6510f4\"}, {\"name\": \"2025-09-05\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"The date when the pull request was created or updated.\", \"id\": \"a6d02748-8286-56bd-8f40-759184689587\", \"color\": \"#f47710\"}, {\"name\": \"date\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"date\", \"id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"color\": \"#6510f4\"}, {\"name\": \"mypy/build.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"A file in the mypy repository modified in the pull request.\", \"id\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"color\": \"#f47710\"}, {\"name\": \"file\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"file\", \"id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"color\": \"#6510f4\"}, {\"name\": \"mypy/fixup.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"A file in the mypy repository modified in the pull request.\", \"id\": \"6fb3723d-1c1f-5bf1-8366-f90af7d280fa\", \"color\": \"#f47710\"}, {\"name\": \"mypy/indirection.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"A file in the mypy repository modified in the pull request.\", \"id\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"color\": \"#f47710\"}, {\"name\": \"mypy/nodes.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"A file in the mypy repository modified in the pull request.\", \"id\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"color\": \"#f47710\"}, {\"name\": \"mypy/semanal.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"A file in the mypy repository modified in the pull request.\", \"id\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"color\": \"#f47710\"}, {\"name\": \"mypy/server/deps.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"A file in the mypy repository modified in the pull request.\", \"id\": \"20801719-9554-5629-90fa-961fc6cd3898\", \"color\": \"#f47710\"}, {\"name\": \"mypy/test/typefixture.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"A file in the mypy repository modified in the pull request.\", \"id\": \"76d857cf-fbfe-56d7-880b-e7579f3dc116\", \"color\": \"#f47710\"}, {\"name\": \"mypy/typeanal.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"A file in the mypy repository modified in the pull request.\", \"id\": \"76ed77a3-a992-5cf0-9151-042b46028a3f\", \"color\": \"#f47710\"}, {\"name\": \"test-data/unit/check-incremental.test\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"A file in the mypy repository modified in the pull request.\", \"id\": \"7fcc31c9-5584-5308-9d49-4237ea415b29\", \"color\": \"#f47710\"}, {\"name\": \"\", \"type\": \"DocumentChunk\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"text\": \"Type) -> None:\\\\\\\\n if isinstance(typ, types.TypeAliasType):\\\\\\\\n # Avoid infinite recursion for recursive type aliases.\\\\\\\\n if typ not in self.seen_aliases:\\\\\\\\n self.seen_aliases.add(typ)\\\\\\\\n typ.accept(self)\\\\\\\\n\\\\\\\\n def _visit_type_tuple(self, typs: tuple[types.Type, ...]) -> None:\\\\\\\\n # Micro-optimization: Specialized version of _visit for lists\\\\\\\\n for typ in typs:\\\\\\\\n if isinstance(typ, types.TypeAliasType):\\\\\\\\n # Avoid infinite recursion for recursive type aliases.\\\\\\\\n if typ in self.seen_aliases:\\\\\\\\n continue\\\\\\\\n self.seen_aliases.add(typ)\\\\\\\\n typ.accept(self)\\\\\\\\n\\\\\\\\n def _visit_type_list(self, typs: list[types.Type]) -> None:\\\\\\\\n # Micro-optimization: Specialized version of _visit for tuples\\\\\\\\n for typ in typs:\\\\\\\\n if isinstance(typ, types.TypeAliasType):\\\\\\\\n # Avoid infinite recursion for recursive type aliases.\\\\\\\\n if typ in self.seen_aliases:\\\\\\\\n continue\\\\\\\\n self.seen_aliases.add(typ)\\\\\\\\n typ.accept(self)\\\\\\\\n\\\\\\\\n def _visit_module_name(self, module_name: str) -> None:\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" def __init__(self) -> None:\\\\\\\\n # Module references are collected here\\\\\\\\n self.modules: set[str] = set()\\\\\\\\n # User to avoid infinite recursion with recursive types\\\\\\\\n self.seen_types: set[types.TypeAliasType | types.Instance] = set()\\\\\\\\n # Used to avoid redundant work\\\\\\\\n self.seen_fullnames: set[str] = set()\\\\\\\\n\\\\\\\\n def find_modules(self, typs: Iterable[types.Type]) -> set[str]:\\\\\\\\n self.modules = set()\\\\\\\\n self.seen_fullnames = set()\\\\\\\\n self.seen_types = set()\\\\\\\\n for typ in typs:\\\\\\\\n self._visit(typ)\\\\\\\\n return self.modules\\\\\\\\n\\\\\\\\n def _visit(self, typ: types.Type) -> None:\\\\\\\\n # Note: instances are needed for `class str(Sequence[str]): ...`\\\\\\\\n if (\\\\\\\\n isinstance(typ, types.TypeAliasType)\\\\\\\\n or isinstance(typ, types.ProperType)\\\\\\\\n and isinstance(typ, types.Instance)\\\\\\\\n ):\\\\\\\\n # Avoid infinite recursion for recursive types.\\\\\\\\n if typ in self.seen_types:\\\\\\\\n return\\\\\\\\n self.seen_types.add(typ)\\\\\\\\n typ.accept(self)\\\\\\\\n\\\\\\\\n def _visit_type_tuple(self, typs: tuple[types.Type, ...]) -> None:\\\\\\\\n # Micro-optimization: Specialized version of _visit for lists\\\\\\\\n for typ in typs:\\\\\\\\n if (\\\\\\\\n isinstance(typ, types.TypeAliasType)\\\\\\\\n or isinstance(typ, types.ProperType)\\\\\\\\n and isinstance(typ, types.Instance)\\\\\\\\n ):\\\\\\\\n # Avoid infinite recursion for recursive types.\\\\\\\\n if typ in self.seen_types:\\\\\\\\n continue\\\\\\\\n self.seen_types.add(typ)\\\\\\\\n typ.accept(self)\\\\\\\\n\\\\\\\\n def _visit_type_list(self, typs: list[types.Type]) -> None:\\\\\\\\n # Micro-optimization: Specialized version of _visit for tuples\\\\\\\\n for typ in typs:\\\\\\\\n if (\\\\\\\\n isinstance(typ, types.TypeAliasType)\\\\\\\\n or isinstance(typ, types.ProperType)\\\\\\\\n and isinstance(typ, types.Instance)\\\\\\\\n ):\\\\\\\\n # Avoid infinite recursion for recursive types.\\\\\\\\n if typ in self.seen_types:\\\\\\\\n continue\\\\\\\\n self.seen_types.add(typ)\\\\\\\\n typ.accept(self)\\\\\\\\n\\\\\\\\n def _visit_module_name(self, module_name: str) -> None:\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" def __init__(self) -> None:\\\\\\\\n # Module references are collected here\\\\\\\\n self.modules: set[str] = set()\\\\\\\\n # User to avoid infinite recursion with recursive type aliases\\\\\\\\n self.seen_aliases: set[types.TypeAliasType] = set()\\\\\\\\n # User to avoid infinite recursion with recursive types\\\\\\\\n self.seen_types: set[types.TypeAliasType | types.Instance] = set()\\\\\\\\n # Used to avoid redundant work\\\\\\\\n self.seen_fullnames: set[str] = set()\\\\\\\\n\\\\\\\\n def find_modules(self, typs: Iterable[types.Type]) -> set[str]:\\\\\\\\n self.modules = set()\\\\\\\\n self.seen_fullnames = set()\\\\\\\\n self.seen_aliases = set()\\\\\\\\n self.seen_types = set()\\\\\\\\n for typ in typs:\\\\\\\\n self._visit(typ)\\\\\\\\n return self.modules\\\\\\\\n\\\\\\\\n def _visit(self, typ: types.Type) -> None:\\\\\\\\n if isinstance(typ, types.TypeAliasType):\\\\\\\\n # Avoid infinite recursion for recursive type aliases.\\\\\\\\n if typ not in self.seen_aliases:\\\\\\\\n self.seen_aliases.add(typ)\\\\\\\\n # Note: instances are needed for `class str(Sequence[str]): ...`\\\\\\\\n if (\\\\\\\\n isinstance(typ, types.TypeAliasType)\\\\\\\\n or isinstance(typ, types.ProperType)\\\\\\\\n and isinstance(typ, types.Instance)\\\\\\\\n ):\\\\\\\\n # Avoid infinite recursion for recursive types.\\\\\\\\n if typ in self.seen_types:\\\\\\\\n return\\\\\\\\n self.seen_types.add(typ)\\\\\\\\n typ.accept(self)\\\\\\\\n\\\\\\\\n def _visit_type_tuple(self, typs: tuple[types.Type, ...]) -> None:\\\\\\\\n # Micro-optimization: Specialized version of _visit for lists\\\\\\\\n for typ in typs:\\\\\\\\n if isinstance(typ, types.TypeAliasType):\\\\\\\\n # Avoid infinite recursion for recursive type aliases.\\\\\\\\n if typ in self.seen_aliases:\\\\\\\\n if (\\\\\\\\n isinstance(typ, types.TypeAliasType)\\\\\\\\n or isinstance(typ, types.ProperType)\\\\\\\\n and isinstance(typ, types.Instance)\\\\\\\\n ):\\\\\\\\n # Avoid infinite recursion for recursive types.\\\\\\\\n if typ in self.seen_types:\\\\\\\\n continue\\\\\\\\n self.seen_aliases.add(typ)\\\\\\\\n self.seen_types.add(typ)\\\\\\\\n typ.accept(self)\\\\\\\\n\\\\\\\\n def _visit_type_list(self, typs: list[types.Type]) -> None:\\\\\\\\n # Micro-optimization: Specialized version of _visit for tuples\\\\\\\\n for typ in typs:\\\\\\\\n if isinstance(typ, types.TypeAliasType):\\\\\\\\n # Avoid infinite recursion for recursive type aliases.\\\\\\\\n if typ in self.seen_aliases:\\\\\\\\n if (\\\\\\\\n isinstance(typ, types.TypeAliasType)\\\\\\\\n or isinstance(typ, types.ProperType)\\\\\\\\n and isinstance(typ, types.Instance)\\\\\\\\n ):\\\\\\\\n # Avoid infinite recursion for recursive types.\\\\\\\\n if typ in self.seen_types:\\\\\\\\n continue\\\\\\\\n self.seen_aliases.add(typ)\\\\\\\\n self.seen_types.add(typ)\\\\\\\\n typ.accept(self)\\\\\\\\n\\\\\\\\n def _visit_module_name(self, module_name: str) -> None:\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 29,\\\\n \\\\\"function_name\\\\\": \\\\\"_visit_module_name\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"generator_expression\\\\\",\\\\n \\\\\"context_manager\\\\\",\\\\n \\\\\"class_definition\\\\\",\\\\n \\\\\"type_hint\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/indirection.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" self._visit_type_list(t.arg_types)\\\\\\\\n\\\\\\\\n def visit_instance(self, t: types.Instance) -> None:\\\\\\\\n self._visit_type_tuple(t.args)\\\\\\\\n if t.type:\\\\\\\\n # Uses of a class depend on everything in the MRO,\\\\\\\\n # as changes to classes in the MRO can add types to methods,\\\\\\\\n # change property types, change the MRO itself, etc.\\\\\\\\n for s in t.type.mro:\\\\\\\\n self._visit_module_name(s.module_name)\\\\\\\\n if t.type.metaclass_type is not None:\\\\\\\\n self._visit_module_name(t.type.metaclass_type.type.module_name)\\\\\\\\n\\\\\\\\n def visit_callable_type(self, t: types.CallableType) -> None:\\\\\\\\n self._visit_type_list(t.arg_types)\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" self._visit_type_list(t.arg_types)\\\\\\\\n\\\\\\\\n def visit_instance(self, t: types.Instance) -> None:\\\\\\\\n # Instance is named, record its definition and continue digging into\\\\\\\\n # components that constitute semantic meaning of this type: bases, metaclass,\\\\\\\\n # tuple type, and typeddict type.\\\\\\\\n # Note: we cannot simply record the MRO, in case an intermediate base contains\\\\\\\\n # a reference to type alias, this affects meaning of map_instance_to_supertype(),\\\\\\\\n # see e.g. testDoubleReexportGenericUpdated.\\\\\\\\n self._visit_type_tuple(t.args)\\\\\\\\n if t.type:\\\\\\\\n # Important optimization: instead of simply recording the definition and\\\\\\\\n # recursing into bases, record the MRO and only traverse generic bases.\\\\\\\\n for s in t.type.mro:\\\\\\\\n self._visit_module_name(s.module_name)\\\\\\\\n for base in s.bases:\\\\\\\\n if base.args:\\\\\\\\n self._visit_type_tuple(base.args)\\\\\\\\n if t.type.metaclass_type:\\\\\\\\n self._visit(t.type.metaclass_type)\\\\\\\\n if t.type.typeddict_type:\\\\\\\\n self._visit(t.type.typeddict_type)\\\\\\\\n if t.type.tuple_type:\\\\\\\\n self._visit(t.type.tuple_type)\\\\\\\\n\\\\\\\\n def visit_callable_type(self, t: types.CallableType) -> None:\\\\\\\\n self._visit_type_list(t.arg_types)\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" self._visit_type_list(t.arg_types)\\\\\\\\n\\\\\\\\n def visit_instance(self, t: types.Instance) -> None:\\\\\\\\n # Instance is named, record its definition and continue digging into\\\\\\\\n # components that constitute semantic meaning of this type: bases, metaclass,\\\\\\\\n # tuple type, and typeddict type.\\\\\\\\n # Note: we cannot simply record the MRO, in case an intermediate base contains\\\\\\\\n # a reference to type alias, this affects meaning of map_instance_to_supertype(),\\\\\\\\n # see e.g. testDoubleReexportGenericUpdated.\\\\\\\\n self._visit_type_tuple(t.args)\\\\\\\\n if t.type:\\\\\\\\n # Uses of a class depend on everything in the MRO,\\\\\\\\n # as changes to classes in the MRO can add types to methods,\\\\\\\\n # change property types, change the MRO itself, etc.\\\\\\\\n # Important optimization: instead of simply recording the definition and\\\\\\\\n # recursing into bases, record the MRO and only traverse generic bases.\\\\\\\\n for s in t.type.mro:\\\\\\\\n self._visit_module_name(s.module_name)\\\\\\\\n if t.type.metaclass_type is not None:\\\\\\\\n self._visit_module_name(t.type.metaclass_type.type.module_name)\\\\\\\\n for base in s.bases:\\\\\\\\n if base.args:\\\\\\\\n self._visit_type_tuple(base.args)\\\\\\\\n if t.type.metaclass_type:\\\\\\\\n self._visit(t.type.metaclass_type)\\\\\\\\n if t.type.typeddict_type:\\\\\\\\n self._visit(t.type.typeddict_type)\\\\\\\\n if t.type.tuple_type:\\\\\\\\n self._visit(t.type.tuple_type)\\\\\\\\n\\\\\\\\n def visit_callable_type(self, t: types.CallableType) -> None:\\\\\\\\n self._visit_type_list(t.arg_types)\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 10,\\\\n \\\\\"function_name\\\\\": \\\\\"visit_callable_type\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"generator_expression\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/indirection.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" self.seen_fullnames.add(fullname)\\\\\\\\n\\\\\\\\n def visit_overloaded(self, t: types.Overloaded) -> None:\\\\\\\\n self._visit_type_list(list(t.items))\\\\\\\\n self._visit(t.fallback)\\\\\\\\n\\\\\\\\n def visit_tuple_type(self, t: types.TupleType) -> None:\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" self.seen_fullnames.add(fullname)\\\\\\\\n\\\\\\\\n def visit_overloaded(self, t: types.Overloaded) -> None:\\\\\\\\n for item in t.items:\\\\\\\\n self._visit(item)\\\\\\\\n self._visit(t.fallback)\\\\\\\\n\\\\\\\\n def visit_tuple_type(self, t: types.TupleType) -> None:\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" self.seen_fullnames.add(fullname)\\\\\\\\n\\\\\\\\n def visit_overloaded(self, t: types.Overloaded) -> None:\\\\\\\\n self._visit_type_list(list(t.items))\\\\\\\\n for item in t.items:\\\\\\\\n self._visit(item)\\\\\\\\n self._visit(t.fallback)\\\\\\\\n\\\\\\\\n def visit_tuple_type(self, t: types.TupleType) -> None:\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": \\\\\"visit_tuple_type\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/indirection.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" self._visit(t.item)\\\\\\\\n\\\\\\\\n def visit_type_alias_type(self, t: types.TypeAliasType) -> None:\\\\\\\\n self._visit(types.get_proper_type(t))\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" self._visit(t.item)\\\\\\\\n\\\\\\\\n def visit_type_alias_type(self, t: types.TypeAliasType) -> None:\\\\\\\\n # Type alias is named, record its definition and continue digging into\\\\\\\\n # components that constitute semantic meaning of this type: target and args.\\\\\\\\n if t.alias:\\\\\\\\n self._visit_module_name(t.alias.module)\\\\\\\\n self._visit(t.alias.target)\\\\\\\\n self._visit_type_list(t.args)\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" self._visit(t.item)\\\\\\\\n\\\\\\\\n def visit_type_alias_type(self, t: types.TypeAliasType) -> None:\\\\\\\\n self._visit(types.get_proper_type(t))\\\\\\\\n # Type alias is named, record its definition and continue digging into\\\\\\\\n # components that constitute semantic meaning of this type: target and args.\\\\\\\\n if t.alias:\\\\\\\\n self._visit_module_name(t.alias.module)\\\\\\\\n self._visit(t.alias.target)\\\\\\\\n self._visit_type_list(t.args)\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 3,\\\\n \\\\\"function_name\\\\\": \\\\\"visit_type_alias_type\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/nodes.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" defs: list[Statement]\\\\\\\\n # Type alias dependencies as mapping from target to set of alias full names\\\\\\\\n alias_deps: defaultdict[str, set[str]]\\\\\\\\n # Is there a UTF-8 BOM at the start?\\\\\\\\n is_bom: bool\\\\\\\\n names: SymbolTable\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" defs: list[Statement]\\\\\\\\n # Type alias dependencies as mapping from target to set of alias full names\\\\\\\\n alias_deps: defaultdict[str, set[str]]\\\\\\\\n # Same as above but for coarse-grained dependencies (i.e. modules instead of full names)\\\\\\\\n mod_alias_deps: set[str]\\\\\\\\n # Is there a UTF-8 BOM at the start?\\\\\\\\n is_bom: bool\\\\\\\\n names: SymbolTable\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" defs: list[Statement]\\\\\\\\n # Type alias dependencies as mapping from target to set of alias full names\\\\\\\\n alias_deps: defaultdict[str, set[str]]\\\\\\\\n # Same as above but for coarse-grained dependencies (i.e. modules instead of full names)\\\\\\\\n mod_alias_deps: set[str]\\\\\\\\n # Is there a UTF-8 BOM at the start?\\\\\\\\n is_bom: bool\\\\\\\\n names: SymbolTable\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"type_hint\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/nodes.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" target: The target type. For generic aliases contains bound type variables\\\\\\\\n as nested types (currently TypeVar and ParamSpec are supported).\\\\\\\\n _fullname: Qualified name of this type alias. This is used in particular\\\\\\\\n to track fine grained dependencies from aliases.\\\\\\\\n alias_tvars: Type variables used to define this alias.\\\\\\\\n normalized: Used to distinguish between `A = List`, and `A = list`. Both\\\\\\\\n are internally stored using `builtins.list` (because `typing.List` is\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" target: The target type. For generic aliases contains bound type variables\\\\\\\\n as nested types (currently TypeVar and ParamSpec are supported).\\\\\\\\n _fullname: Qualified name of this type alias. This is used in particular\\\\\\\\n to track fine-grained dependencies from aliases.\\\\\\\\n module: Module where the alias was defined.\\\\\\\\n alias_tvars: Type variables used to define this alias.\\\\\\\\n normalized: Used to distinguish between `A = List`, and `A = list`. Both\\\\\\\\n are internally stored using `builtins.list` (because `typing.\", \"chunk_size\": 8167, \"chunk_index\": 1, \"cut_type\": \"sentence_end\", \"id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"color\": \"#801212\"}, {\"name\": \"_visit_module_name\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Function in the ModuleFinder class for visiting module names, avoiding infinite recursion with seen aliases.\", \"id\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"color\": \"#f47710\"}, {\"name\": \"function\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"function\", \"id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"color\": \"#6510f4\"}, {\"name\": \"visit_callable_type\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Method for visiting callable types, handling arguments and additional components like bases and metaclass.\", \"id\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"color\": \"#f47710\"}, {\"name\": \"visit_tuple_type\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Method for visiting tuple types, part of the overloaded handling in the indirection module.\", \"id\": \"8ebbb49c-8dcd-5a73-9c0c-c390a78d8335\", \"color\": \"#f47710\"}, {\"name\": \"visit_type_alias_type\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Method for visiting type alias types, recording definitions and digging into targets and arguments.\", \"id\": \"69f3aeb5-2006-5822-9a8a-c35bb53f304d\", \"color\": \"#f47710\"}, {\"name\": \"generator_expression\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Coding pattern involving generator expressions in Python code.\", \"id\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"color\": \"#f47710\"}, {\"name\": \"codingpattern\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"codingpattern\", \"id\": \"ab7e7dab-bfe5-5e74-958d-e12f6ebfccc6\", \"color\": \"#6510f4\"}, {\"name\": \"context_manager\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Coding pattern for context managers in Python code.\", \"id\": \"54f59088-b7f2-5c41-89ac-829d2f82257f\", \"color\": \"#f47710\"}, {\"name\": \"class_definition\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Coding pattern for defining classes in Python code.\", \"id\": \"9352e569-a8d4-552d-89fd-b2c41c3acd4e\", \"color\": \"#f47710\"}, {\"name\": \"type_hint\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Coding pattern for using type hints in Python code.\", \"id\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"color\": \"#f47710\"}, {\"name\": \"\", \"type\": \"DocumentChunk\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"text\": \"List` is\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" target: The target type. For generic aliases contains bound type variables\\\\\\\\n as nested types (currently TypeVar and ParamSpec are supported).\\\\\\\\n _fullname: Qualified name of this type alias. This is used in particular\\\\\\\\n to track fine grained dependencies from aliases.\\\\\\\\n to track fine-grained dependencies from aliases.\\\\\\\\n module: Module where the alias was defined.\\\\\\\\n alias_tvars: Type variables used to define this alias.\\\\\\\\n normalized: Used to distinguish between `A = List`, and `A = list`. Both\\\\\\\\n are internally stored using `builtins.list` (because `typing.List` is\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/semanal.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" declared_type_vars: TypeVarLikeList | None = None,\\\\\\\\n all_declared_type_params_names: list[str] | None = None,\\\\\\\\n python_3_12_type_alias: bool = False,\\\\\\\\n ) -> tuple[Type | None, list[TypeVarLikeType], set[str], list[str], bool]:\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"Check if \\'rvalue\\' is a valid type allowed for aliasing (e.g. not a type variable).\\\\\\\\n\\\\\\\\n If yes, return the corresponding type, a list of\\\\\\\\n qualified type variable names for generic aliases, a set of names the alias depends on,\\\\\\\\n and a list of type variables if the alias is generic.\\\\\\\\n A schematic example for the dependencies:\\\\\\\\n A = int\\\\\\\\n B = str\\\\\\\\n analyze_alias(Dict[A, B])[2] == {\\'__main__.A\\', \\'__main__.B\\'}\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\n dynamic = bool(self.function_stack and self.function_stack[-1].is_dynamic())\\\\\\\\n global_scope = not self.type and not self.function_stack\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" declared_type_vars: TypeVarLikeList | None = None,\\\\\\\\n all_declared_type_params_names: list[str] | None = None,\\\\\\\\n python_3_12_type_alias: bool = False,\\\\\\\\n ) -> tuple[Type | None, list[TypeVarLikeType], set[tuple[str, str]], bool]:\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"Check if \\'rvalue\\' is a valid type allowed for aliasing (e.g. not a type variable).\\\\\\\\n\\\\\\\\n If yes, return the corresponding type, a list of type variables for generic aliases,\\\\\\\\n a set of names the alias depends on, and True if the original type has empty tuple index.\\\\\\\\n An example for the dependencies:\\\\\\\\n A = int\\\\\\\\n B = str\\\\\\\\n analyze_alias(dict[A, B])[2] == {(\\'mod\\', \\'mod.A\\'), (\\'mod\\', \\'mod.B\\')}\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\n dynamic = bool(self.function_stack and self.function_stack[-1].is_dynamic())\\\\\\\\n global_scope = not self.type and not self.function_stack\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" declared_type_vars: TypeVarLikeList | None = None,\\\\\\\\n all_declared_type_params_names: list[str] | None = None,\\\\\\\\n python_3_12_type_alias: bool = False,\\\\\\\\n ) -> tuple[Type | None, list[TypeVarLikeType], set[str], list[str], bool]:\\\\\\\\n ) -> tuple[Type | None, list[TypeVarLikeType], set[tuple[str, str]], bool]:\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"Check if \\'rvalue\\' is a valid type allowed for aliasing (e.g. not a type variable).\\\\\\\\n\\\\\\\\n If yes, return the corresponding type, a list of\\\\\\\\n qualified type variable names for generic aliases, a set of names the alias depends on,\\\\\\\\n and a list of type variables if the alias is generic.\\\\\\\\n A schematic example for the dependencies:\\\\\\\\n If yes, return the corresponding type, a list of type variables for generic aliases,\\\\\\\\n a set of names the alias depends on, and True if the original type has empty tuple index.\\\\\\\\n An example for the dependencies:\\\\\\\\n A = int\\\\\\\\n B = str\\\\\\\\n analyze_alias(Dict[A, B])[2] == {\\'__main__.A\\', \\'__main__.B\\'}\\\\\\\\n analyze_alias(dict[A, B])[2] == {(\\'mod\\', \\'mod.A\\'), (\\'mod\\', \\'mod.B\\')}\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\n dynamic = bool(self.function_stack and self.function_stack[-1].is_dynamic())\\\\\\\\n global_scope = not self.type and not self.function_stack\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 10,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": \\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"Check if \\'rvalue\\' is a valid type allowed for aliasing (e.g. not a type variable).\\\\\",\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"list_comprehension\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/semanal.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" self.cur_mod_node.plugin_deps.setdefault(trigger, set()).add(target)\\\\\\\\n\\\\\\\\n def add_type_alias_deps(\\\\\\\\n self, aliases_used: Collection[str], target: str | None = None\\\\\\\\n ) -> None:\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"Add full names of type aliases on which the current node depends.\\\\\\\\n\\\\\\\\n This is used by fine-grained incremental mode to re-check the corresponding nodes.\\\\\\\\n If `target` is None, then the target node used will be the current scope.\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\n if not aliases_used:\\\\\\\\n # A basic optimization to avoid adding targets with no dependencies to\\\\\\\\n # the `alias_deps` dict.\\\\\\\\n return\\\\\\\\n if target is None:\\\\\\\\n target = self.scope.current_target()\\\\\\\\n self.cur_mod_node.alias_deps[target].update(aliases_used)\\\\\\\\n\\\\\\\\n def is_mangled_global(self, name: str) -> bool:\\\\\\\\n # A global is mangled if there exists at least one renamed variant.\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" self.cur_mod_node.plugin_deps.setdefault(trigger, set()).add(target)\\\\\\\\n\\\\\\\\n def add_type_alias_deps(\\\\\\\\n self, aliases_used: Collection[tuple[str, str]], target: str | None = None\\\\\\\\n ) -> None:\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"Add full names of type aliases on which the current node depends.\\\\\\\\n\\\\\\\\n This is used by fine-grained incremental mode to re-check the corresponding nodes.\\\\\\\\n If `target` is None, then the target node used will be the current scope. For\\\\\\\\n coarse-grained mode, add just the module names where aliases are defined.\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\n if not aliases_used:\\\\\\\\n return\\\\\\\\n if target is None:\\\\\\\\n target = self.scope.current_target()\\\\\\\\n for mod, fn in aliases_used:\\\\\\\\n self.cur_mod_node.alias_deps[target].add(fn)\\\\\\\\n self.cur_mod_node.mod_alias_deps.add(mod)\\\\\\\\n\\\\\\\\n def is_mangled_global(self, name: str) -> bool:\\\\\\\\n # A global is mangled if there exists at least one renamed variant.\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" self.cur_mod_node.plugin_deps.setdefault(trigger, set()).add(target)\\\\\\\\n\\\\\\\\n def add_type_alias_deps(\\\\\\\\n self, aliases_used: Collection[str], target: str | None = None\\\\\\\\n self, aliases_used: Collection[tuple[str, str]], target: str | None = None\\\\\\\\n ) -> None:\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"Add full names of type aliases on which the current node depends.\\\\\\\\n\\\\\\\\n This is used by fine-grained incremental mode to re-check the corresponding nodes.\\\\\\\\n If `target` is None, then the target node used will be the current scope.\\\\\\\\n If `target` is None, then the target node used will be the current scope. For\\\\\\\\n coarse-grained mode, add just the module names where aliases are defined.\\\\\\\\n \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\n if not aliases_used:\\\\\\\\n # A basic optimization to avoid adding targets with no dependencies to\\\\\\\\n # the `alias_deps` dict.\\\\\\\\n return\\\\\\\\n if target is None:\\\\\\\\n target = self.scope.current_target()\\\\\\\\n self.cur_mod_node.alias_deps[target].update(aliases_used)\\\\\\\\n for mod, fn in aliases_used:\\\\\\\\n self.cur_mod_node.alias_deps[target].add(fn)\\\\\\\\n self.cur_mod_node.mod_alias_deps.add(mod)\\\\\\\\n\\\\\\\\n def is_mangled_global(self, name: str) -> bool:\\\\\\\\n # A global is mangled if there exists at least one renamed variant.\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 15,\\\\n \\\\\"function_name\\\\\": \\\\\"is_mangled_global\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": \\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"Add full names of type aliases on which the current node depends.\\\\\",\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"list_comprehension\\\\\"\\\\n ]\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"concise_subject\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"pr\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"chore: add cline_docs/ to .gitignore\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Cline is a commonly used LLM tool which, under certain conditions, creates a cline_docs/ folder with task status and todo items etc\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nThis folder is only helpful locally (unless we decide we want to add actual guidelines for Cline here, but thats outside the scope of this PR) so this PR adds it to .gitignore\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\n<!-- If this pull request fixes an issue, add \\\\\\\\\\\\\"Fixes #NNN\\\\\\\\\\\\\" with the issue number. -->\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\n<!--\\\\\\\\r\\\\\\\\nChecklist:\\\\\\\\r\\\\\\\\n- Read the [Contributing Guidelines](https://github.com/python/mypy/blob/master/CONTRIBUTING.md)\\\\\\\\r\\\\\\\\n- Add tests for all changed behaviour.\\\\\\\\r\\\\\\\\n- If you can\\'t add a test, please explain why and how you verified your changes work.\\\\\\\\r\\\\\\\\n- Make sure CI passes.\\\\\\\\r\\\\\\\\n- Please do not force push to the PR once it has been reviewed.\\\\\\\\r\\\\\\\\n-->\\\\\\\\r\\\\\\\\n\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/pull/19797\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2025-09-05T02:35:14Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"19797\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\".gitignore\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 0,\\\\n \\\\\"deletions\\\\\": 0,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [],\\\\n \\\\\"code_samples\\\\\": [],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"concise_subject\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"pr\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"[mypyc] Add type annotations to tests\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Missing type annotations can compromise test coverage. My eventual goal is to require annotations by default in all run tests.\\\\\\\\r\\\\\\\\n\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/pull/19794\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2025-09-04T15:56:30Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"19794\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"mypyc/test-data/fixtures/ir.py\\\\\",\\\\n \\\\\"mypyc/test-data/fixtures/typing-full.pyi\\\\\",\\\\n \\\\\"mypyc/test-data/run-dunders.test\\\\\",\\\\n \\\\\"mypyc/test-data/run-singledispatch.test\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 0,\\\\n \\\\\"deletions\\\\\": 0,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypyc/test-data/fixtures/ir.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" def __iadd__(self, value: Iterable[_T], /) -> List[_T]: ... # type: ignore[misc]\\\\\\\\n def append(self, x: _T) -> None: pass\\\\\\\\n def pop(self, i: int = -1) -> _T: pass\\\\\\\\n def count(self, _T) -> int: pass\\\\\\\\n def extend(self, l: Iterable[_T]) -> None: pass\\\\\\\\n def insert(self, i: int, x: _T) -> None: pass\\\\\\\\n def sort(self) -> None: pass\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" def __iadd__(self, value: Iterable[_T], /) -> List[_T]: ... # type: ignore[misc]\\\\\\\\n def append(self, x: _T) -> None: pass\\\\\\\\n def pop(self, i: int = -1) -> _T: pass\\\\\\\\n def count(self, x: _T) -> int: pass\\\\\\\\n def extend(self, l: Iterable[_T]) -> None: pass\\\\\\\\n def insert(self, i: int, x: _T) -> None: pass\\\\\\\\n def sort(self) -> None: pass\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" def __iadd__(self, value: Iterable[_T], /) -> List[_T]: ... # type: ignore[misc]\\\\\\\\n def append(self, x: _T) -> None: pass\\\\\\\\n def pop(self, i: int = -1) -> _T: pass\\\\\\\\n def count(self, _T) -> int: pass\\\\\\\\n def count(self, x: _T) -> int: pass\\\\\\\\n def extend(self, l: Iterable[_T]) -> None: pass\\\\\\\\n def insert(self, i: int, x: _T) -> None: pass\\\\\\\\n def sort(self) -> None: pass\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": \\\\\"sort\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"function_definition\\\\\",\\\\n \\\\\"type_hint\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypyc/test-data/fixtures/ir.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"def id(o: object) -> int: pass\\\\\\\\n# This type is obviously wrong but the test stubs don\\'t have Sized anymore\\\\\\\\ndef len(o: object) -> int: pass\\\\\\\\ndef print(*object) -> None: pass\\\\\\\\ndef isinstance(x: object, t: object) -> bool: pass\\\\\\\\ndef iter(i: Iterable[_T]) -> Iterator[_T]: pass\\\\\\\\n@overload\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"def id(o: object) -> int: pass\\\\\\\\n# This type is obviously wrong but the test stubs don\\'t have Sized anymore\\\\\\\\ndef len(o: object) -> int: pass\\\\\\\\ndef print(*args: object) -> None: pass\\\\\\\\ndef isinstance(x: object, t: object) -> bool: pass\\\\\\\\ndef iter(i: Iterable[_T]) -> Iterator[_T]: pass\\\\\\\\n@overload\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"def id(o: object) -> int: pass\\\\\\\\n# This type is obviously wrong but the test stubs don\\'t have Sized anymore\\\\\\\\ndef len(o: object) -> int: pass\\\\\\\\ndef print(*object) -> None: pass\\\\\\\\ndef print(*args: object) -> None: pass\\\\\\\\ndef isinstance(x: object, t: object) -> bool: pass\\\\\\\\ndef iter(i: Iterable[_T]) -> Iterator[_T]: pass\\\\\\\\n@overload\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": \\\\\"iter\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"function_definition\\\\\",\\\\n \\\\\"type_hint\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypyc/test-data/fixtures/typing-full.pyi\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"class GenericMeta(type): pass\\\\\\\\n\\\\\\\\nclass _SpecialForm:\\\\\\\\n def __getitem__(self, index): ...\\\\\\\\nclass TypeVar:\\\\\\\\n def __init__(self, name, *args, bound=None): ...\\\\\\\\n def __or__(self, other): ...\\\\\\\\n\\\\\\\\ncast = 0\\\\\\\\noverload = 0\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"class GenericMeta(type): pass\\\\\\\\n\\\\\\\\nclass _SpecialForm:\\\\\\\\n def __getitem__(self, index: Any) -> Any: ...\\\\\\\\nclass TypeVar:\\\\\\\\n def __init__(self, name: str, *args: Any, bound: Any = None): ...\\\\\\\\n def __or__(self, other: Any) -> Any: ...\\\\\\\\n\\\\\\\\ncast = 0\\\\\\\\noverload = 0\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"class GenericMeta(type): pass\\\\\\\\n\\\\\\\\nclass _SpecialForm:\\\\\\\\n def __getitem__(self, index): ...\\\\\\\\n def __getitem__(self, index: Any) -> Any: ...\\\\\\\\nclass TypeVar:\\\\\\\\n def __init__(self, name, *args, bound=None): ...\\\\\\\\n def __or__(self, other): ...\\\\\\\\n def __init__(self, name: str, *args: Any, bound: Any = None): ...\\\\\\\\n def __or__(self, other: Any) -> Any: ...\\\\\\\\n\\\\\\\\ncast = 0\\\\\\\\noverload = 0\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 7,\\\\n \\\\\"function_name\\\\\": \\\\\"__or__\\\\\",\\\\n \\\\\"class_name\\\\\": \\\\\"TypeVar\\\\\",\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"function_definition\\\\\",\\\\n \\\\\"type_hint\\\\\"\\\\n ]\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"concise_subject\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"pr\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"Check functions without annotations in mypyc tests\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"c.f. https://github.com/python/mypy/pull/19217#discussion_r2314303410\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nDisallowing functions without annotations (where not relevant to the tests) is probably a good idea, but this creates a large number of failures which would take some time to go through (many due to common issues, like untyped functions in the fixtures).\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nAs a smaller step in the right direction, this sets `check_untyped_defs = True` for the `run-*` tests so that we at least check functions without annotations. \\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/pull/19792\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2025-09-04T14:42:17Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"19792\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"mypyc/test-data/fixtures/ir.py\\\\\",\\\\n \\\\\"mypyc/test-data/run-classes.test\\\\\",\\\\n \\\\\"mypyc/test/test_run.py\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 0,\\\\n \\\\\"deletions\\\\\": 0,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypyc/test-data/fixtures/ir.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"class type:\\\\\\\\n def __init__(self, o: object) -> None: ...\\\\\\\\n def __or__(self, o: object) -> Any: ...\\\\\\\\n __name__ : str\\\\\\\\n __annotations__: Dict[str, Any]\\\\\\\\n\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"class type:\\\\\\\\n def __init__(self, o: object) -> None: ...\\\\\\\\n def __or__(self, o: object) -> Any: ...\\\\\\\\n def __new__(cls, *args: object) -> Any: ...\\\\\\\\n __name__ : str\\\\\\\\n __annotations__: Dict[str, Any]\\\\\\\\n\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"class type:\\\\\\\\n def __init__(self, o: object) -> None: ...\\\\\\\\n def __or__(self, o: object) -> Any: ...\\\\\\\\n def __new__(cls, *args: object) -> Any: ...\\\\\\\\n __name__ : str\\\\\\\\n __annotations__: Dict[str, Any]\\\\\\\\n\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": \\\\\"__new__\\\\\",\\\\n \\\\\"class_name\\\\\": \\\\\"type\\\\\",\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"function_definition\\\\\"\\\\n ]\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"concise_subject\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"pr\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"fix: Allow instantiation of type[None] in analyze_type_type_callee\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"<!-- If this pull request fixes an issue, add \\\\\\\\\\\\\"Fixes #NNN\\\\\\\\\\\\\" with the issue number. -->\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\n(Explain how this PR changes mypy.)\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\n<!--\\\\\\\\r\\\\\\\\nChecklist:\\\\\\\\r\\\\\\\\n- Read the [Contributing Guidelines](https://github.com/python/mypy/blob/master/CONTRIBUTING.md)\\\\\\\\r\\\\\\\\n- Add tests for all changed behaviour.\\\\\\\\r\\\\\\\\n- If you can\\'t add a test, please explain why and how you verified your changes work.\\\\\\\\r\\\\\\\\n- Make sure CI passes.\\\\\\\\r\\\\\\\\n- Please do not force push to the PR once it has been reviewed.\", \"chunk_size\": 8154, \"chunk_index\": 2, \"cut_type\": \"sentence_end\", \"id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"color\": \"#801212\"}, {\"name\": \"improve type aliases used analysis in semanal\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"This pull request modifies mypy/semanal.py to enhance type alias dependency tracking by changing the return type of analyze_alias and updating add_type_alias_deps. It includes code changes related to type alias analysis, with commits involving modifications to dependency sets and handling of module names for coarse-grained mode.\", \"id\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"color\": \"#f47710\"}, {\"name\": \"analyze_alias\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Function in mypy/semanal.py that checks if \\'rvalue\\' is valid for aliasing, returning types and dependencies for generic aliases.\", \"id\": \"44ae039a-d24c-5cac-8d9b-05239ee9521d\", \"color\": \"#f47710\"}, {\"name\": \"add_type_alias_deps\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Function in mypy/semanal.py that adds full names of type aliases the current node depends on, used for fine-grained incremental mode.\", \"id\": \"ee447a13-020c-5f51-b1f0-498c802eb4e1\", \"color\": \"#f47710\"}, {\"name\": \"chore: add cline_docs/ to .gitignore\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"This pull request adds \\'cline_docs/\\' to the .gitignore file, as Cline is a commonly used LLM tool that creates this folder locally with task status, and it\\'s not needed in the repository.\", \"id\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"color\": \"#f47710\"}, {\"name\": \".gitignore\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Git ignore file in the mypy repository, modified to include cline_docs/.\", \"id\": \"61d2a87a-9e25-52e3-baa0-942898b4b13b\", \"color\": \"#f47710\"}, {\"name\": \"[mypyc] add type annotations to tests\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"This pull request adds missing type annotations to mypyc test files to improve test coverage, including fixtures irregardless and stub files.\", \"id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"color\": \"#f47710\"}, {\"name\": \"2025-09-04\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"September 4, 2025\", \"id\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"color\": \"#f47710\"}, {\"name\": \"mypyc/test-data/fixtures/ir.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Python stub file in mypy\\'s mypyc tests, modified for type annotations.\", \"id\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"color\": \"#f47710\"}, {\"name\": \"mypyc/test-data/fixtures/typing-full.pyi\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Python interface file in mypy\\'s mypyc tests, modified for type annotations.\", \"id\": \"5056f017-17d5-5da6-a7ff-a10235465b31\", \"color\": \"#f47710\"}, {\"name\": \"mypyc/test-data/run-dunders.test\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Test file in mypy\\'s mypyc tests, modified for type annotations.\", \"id\": \"b570265f-01cb-5464-b9de-d6644baa631a\", \"color\": \"#f47710\"}, {\"name\": \"mypyc/test-data/run-singledispatch.test\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Test file in mypy\\'s mypyc tests, modified for type annotations.\", \"id\": \"3dee7627-676d-5676-bb03-c775947265d1\", \"color\": \"#f47710\"}, {\"name\": \"count\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Method in a list-like class, modified to include parameter type annotation.\", \"id\": \"8e68e270-1892-59f9-ae5b-55bce935e59e\", \"color\": \"#f47710\"}, {\"name\": \"print\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Builtin function redefined in test fixtures with type annotations.\", \"id\": \"f2d368b4-771f-5509-8c04-e6466bba1bdd\", \"color\": \"#f47710\"}, {\"name\": \"_specialform.__getitem__\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Method in _SpecialForm class, modified for type annotations.\", \"id\": \"d88fdd53-1cce-5c2b-8271-8fbd8d91cfa3\", \"color\": \"#f47710\"}, {\"name\": \"typevar.__init__\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Constructor for TypeVar class, modified for type annotations.\", \"id\": \"346a3164-8117-5c1b-a17f-38c042994b4a\", \"color\": \"#f47710\"}, {\"name\": \"typevar.__or__\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Method in TypeVar class, modified for type annotations.\", \"id\": \"528e5ea0-4b38-508c-9543-c7ad23a8ff09\", \"color\": \"#f47710\"}, {\"name\": \"check functions without annotations in mypyc tests\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"This pull request sets \\'check_untyped_defs = True\\' for mypyc run-* tests to check functions without annotations, as a step towards requiring annotations in tests.\", \"id\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"color\": \"#f47710\"}, {\"name\": \"mypyc/test-data/run-classes.test\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Test file in mypy\\'s mypyc tests, modified for untyped defs checking.\", \"id\": \"83dc9924-3325-521d-9b7f-afe71513cd1e\", \"color\": \"#f47710\"}, {\"name\": \"mypyc/test/test_run.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Python test file in mypy\\'s mypyc tests, modified for untyped defs checking.\", \"id\": \"264f18ed-2c04-5ae4-973e-5d48d96c5d68\", \"color\": \"#f47710\"}, {\"name\": \"type.__new__\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Method in type class, added for type annotations in test fixtures.\", \"id\": \"7cf6472f-6a69-5645-8dea-1e37517cb3e1\", \"color\": \"#f47710\"}, {\"name\": \"\", \"type\": \"DocumentChunk\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"text\": \"\\\\\\\\r\\\\\\\\n-->\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nFixes #19660\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nAllow instantiation of NoneType in type checker\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nThis change fixes the error \\\\\\\\\\\\\"Cannot instantiate type \\'Type[None]\\'\\\\\\\\\\\\\"\\\\\\\\r\\\\\\\\nwhen calling NoneType() or type(None)().\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nBy treating NoneType as a callable that returns None, mypy can now correctly\\\\\\\\r\\\\\\\\nhandle such calls without raising spurious errors.\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nAlso, I added test case testTypeUsingTypeCNoneType covering:\\\\\\\\r\\\\\\\\n- direct calls to type(None)() and NoneType()\\\\\\\\r\\\\\\\\n- functions accepting type[None] and type[NoneType] parameters and invoking them\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nThis ensures proper handling of NoneType instantiation and prevents spurious errors.\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/pull/19782\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2025-09-02T06:13:12Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"19782\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"mypy/checkexpr.py\\\\\",\\\\n \\\\\"test-data/unit/check-classes.test\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 0,\\\\n \\\\\"deletions\\\\\": 0,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"19660\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/checkexpr.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" return self.analyze_type_type_callee(tuple_fallback(item), context)\\\\\\\\n if isinstance(item, TypedDictType):\\\\\\\\n return self.typeddict_callable_from_context(item)\\\\\\\\n\\\\\\\\n self.msg.unsupported_type_type(item, context)\\\\\\\\n return AnyType(TypeOfAny.from_error)\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" return self.analyze_type_type_callee(tuple_fallback(item), context)\\\\\\\\n if isinstance(item, TypedDictType):\\\\\\\\n return self.typeddict_callable_from_context(item)\\\\\\\\n if isinstance(item, NoneType):\\\\\\\\n # NoneType() returns None, so treat it as a callable that returns None\\\\\\\\n return CallableType(\\\\\\\\n arg_types=[],\\\\\\\\n arg_kinds=[],\\\\\\\\n arg_names=[],\\\\\\\\n ret_type=NoneType(),\\\\\\\\n fallback=self.named_type(\\\\\\\\\\\\\"builtins.function\\\\\\\\\\\\\"),\\\\\\\\n name=None,\\\\\\\\n from_type_type=True,\\\\\\\\n )\\\\\\\\n\\\\\\\\n self.msg.unsupported_type_type(item, context)\\\\\\\\n return AnyType(TypeOfAny.from_error)\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" return self.analyze_type_type_callee(tuple_fallback(item), context)\\\\\\\\n if isinstance(item, TypedDictType):\\\\\\\\n return self.typeddict_callable_from_context(item)\\\\\\\\n if isinstance(item, NoneType):\\\\\\\\n # NoneType() returns None, so treat it as a callable that returns None\\\\\\\\n return CallableType(\\\\\\\\n arg_types=[],\\\\\\\\n arg_kinds=[],\\\\\\\\n arg_names=[],\\\\\\\\n ret_type=NoneType(),\\\\\\\\n fallback=self.named_type(\\\\\\\\\\\\\"builtins.function\\\\\\\\\\\\\"),\\\\\\\\n name=None,\\\\\\\\n from_type_type=True,\\\\\\\\n )\\\\\\\\n\\\\\\\\n self.msg.unsupported_type_type(item, context)\\\\\\\\n return AnyType(TypeOfAny.from_error)\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"standard\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"pr\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"feat: new mypyc primitives for weakref.proxy\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"This PR adds 2 new weakref primitives for weakref.proxy (1 and 2 arg)\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nThe C code generates correctly, but I\\'m not entirely sure why this test is failing. The weakly-proxied object is being destroyed too early, while there should still be a strong reference to it. It also fails if we use the builtin weakref.proxy, so I believe this might be exposing a reference counting bug unrelated to this PR.\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\n<!--\\\\\\\\r\\\\\\\\nChecklist:\\\\\\\\r\\\\\\\\n- Read the [Contributing Guidelines](https://github.com/python/mypy/blob/master/CONTRIBUTING.md)\\\\\\\\r\\\\\\\\n- Add tests for all changed behaviour.\\\\\\\\r\\\\\\\\n- If you can\\'t add a test, please explain why and how you verified your changes work.\\\\\\\\r\\\\\\\\n- Make sure CI passes.\\\\\\\\r\\\\\\\\n- Please do not force push to the PR once it has been reviewed.\\\\\\\\r\\\\\\\\n-->\\\\\\\\r\\\\\\\\n\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/pull/19217\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2025-06-03T17:02:26Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"19217\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"mypyc/primitives/weakref_ops.py\\\\\",\\\\n \\\\\"mypyc/test-data/fixtures/ir.py\\\\\",\\\\n \\\\\"mypyc/test-data/irbuild-weakref.test\\\\\",\\\\n \\\\\"mypyc/test-data/run-weakref.test\\\\\",\\\\n \\\\\"test-data/unit/lib-stub/_weakref.pyi\\\\\",\\\\n \\\\\"test-data/unit/lib-stub/weakref.pyi\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 0,\\\\n \\\\\"deletions\\\\\": 0,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypyc/test-data/fixtures/ir.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"class UnicodeEncodeError(RuntimeError): pass\\\\\\\\nclass UnicodeDecodeError(RuntimeError): pass\\\\\\\\nclass NotImplementedError(RuntimeError): pass\\\\\\\\n\\\\\\\\nclass StopIteration(Exception):\\\\\\\\n value: Any\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"class UnicodeEncodeError(RuntimeError): pass\\\\\\\\nclass UnicodeDecodeError(RuntimeError): pass\\\\\\\\nclass NotImplementedError(RuntimeError): pass\\\\\\\\nclass ReferenceError(Exception): pass\\\\\\\\n\\\\\\\\nclass StopIteration(Exception):\\\\\\\\n value: Any\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"class UnicodeEncodeError(RuntimeError): pass\\\\\\\\nclass UnicodeDecodeError(RuntimeError): pass\\\\\\\\nclass NotImplementedError(RuntimeError): pass\\\\\\\\nclass ReferenceError(Exception): pass\\\\\\\\n\\\\\\\\nclass StopIteration(Exception):\\\\\\\\n value: Any\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": \\\\\"StopIteration\\\\\",\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"class_definition\\\\\",\\\\n \\\\\"type_hint\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"test-data/unit/lib-stub/_weakref.pyi\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"from typing import Any, Callable, TypeVar, overload\\\\\\\\nfrom weakref import CallableProxyType, ProxyType\\\\\\\\n\\\\\\\\n_C = TypeVar(\\\\\\\\\\\\\"_C\\\\\\\\\\\\\", bound=Callable[..., Any])\\\\\\\\n_T = TypeVar(\\\\\\\\\\\\\"_T\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\\n# Return CallableProxyType if object is callable, ProxyType otherwise\\\\\\\\n@overload\\\\\\\\ndef proxy(object: _C, callback: Callable[[CallableProxyType[_C]], Any] | None = None, /) -> CallableProxyType[_C]: ...\\\\\\\\n@overload\\\\\\\\ndef proxy(object: _T, callback: Callable[[ProxyType[_T]], Any] | None = None, /) -> ProxyType[_T]: ...\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"from typing import Any, Callable, TypeVar, overload\\\\\\\\nfrom weakref import CallableProxyType, ProxyType\\\\\\\\n\\\\\\\\n_C = TypeVar(\\\\\\\\\\\\\"_C\\\\\\\\\\\\\", bound=Callable[..., Any])\\\\\\\\n_T = TypeVar(\\\\\\\\\\\\\"_T\\\\\\\\\\\\\")\\\\\\\\n\\\\\\\\n# Return CallableProxyType if object is callable, ProxyType otherwise\\\\\\\\n@overload\\\\\\\\ndef proxy(object: _C, callback: Callable[[CallableProxyType[_C]], Any] | None = None, /) -> CallableProxyType[_C]: ...\\\\\\\\n@overload\\\\\\\\ndef proxy(object: _T, callback: Callable[[ProxyType[_T]], Any] | None = None, /) -> ProxyType[_T]: ...\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"addition\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 0,\\\\n \\\\\"function_name\\\\\": \\\\\"proxy\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"decorator\\\\\",\\\\n \\\\\"function_definition\\\\\"\\\\n ]\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"concise_subject\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"cpython\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"gh-128307: Update what\\'s new in 3.13 and 3.14 with create_task changes of asyncio (#134304)\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"gh-128307: Update what\\'s new in 3.13 and 3.14 with create_task changes of asyncio (#134304)\\\\\\\\n\\\\\\\\nCo-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/cpython/commit/28625d4f956f8d30671aba1daaac9735932983db\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2025-05-20T08:41:22Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"28625d4f956f8d30671aba1daaac9735932983db\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"Doc/whatsnew/3.13.rst\\\\\",\\\\n \\\\\"Doc/whatsnew/3.14.rst\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 34,\\\\n \\\\\"deletions\\\\\": 0,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"134304\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"Doc/whatsnew/3.13.rst\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"restructuredtext\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" never awaited).\\\\\\\\n (Contributed by Arthur Tacca and Jason Zhang in :gh:`115957`.)\\\\\\\\n\\\\\\\\n\\\\\\\\nbase64\\\\\\\\n------\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" never awaited).\\\\\\\\n (Contributed by Arthur Tacca and Jason Zhang in :gh:`115957`.)\\\\\\\\n\\\\\\\\n* The function and methods named ``create_task`` have received a new\\\\\\\\n ``**kwargs`` argument that is passed through to the task constructor.\\\\\\\\n This change was accidentally added in 3.13.3,\\\\\\\\n and broke the API contract for custom task factories.\\\\\\\\n Several third-party task factories implemented workarounds for this.\\\\\\\\n In 3.13.4 and later releases the old factory contract is honored\\\\\\\\n once again (until 3.14).\\\\\\\\n To keep the workarounds working, the extra ``**kwargs`` argument still\\\\\\\\n allows passing additional keyword arguments to :class:`~asyncio.Task`\\\\\\\\n and to custom task factories.\\\\\\\\n\\\\\\\\n This affects the following function and methods:\\\\\\\\n :meth:`asyncio.create_task`,\\\\\\\\n :meth:`asyncio.loop.create_task`,\\\\\\\\n :meth:`asyncio.TaskGroup.create_task`.\\\\\\\\n (Contributed by Thomas Grainger in :gh:`128307`.)\\\\\\\\n\\\\\\\\nbase64\\\\\\\\n------\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" never awaited).\\\\\\\\n (Contributed by Arthur Tacca and Jason Zhang in :gh:`115957`.)\\\\\\\\n\\\\\\\\n* The function and methods named ``create_task`` have received a new\\\\\\\\n ``**kwargs`` argument that is passed through to the task constructor.\\\\\\\\n This change was accidentally added in 3.13.3,\\\\\\\\n and broke the API contract for custom task factories.\\\\\\\\n Several third-party task factories implemented workarounds for this.\\\\\\\\n In 3.13.4 and later releases the old factory contract is honored\\\\\\\\n once again (until 3.14).\\\\\\\\n To keep the workarounds working, the extra ``**kwargs`` argument still\\\\\\\\n allows passing additional keyword arguments to :class:`~asyncio.Task`\\\\\\\\n and to custom task factories.\\\\\\\\n\\\\\\\\n This affects the following function and methods:\\\\\\\\n :meth:`asyncio.create_task`,\\\\\\\\n :meth:`asyncio.loop.create_task`,\\\\\\\\n :meth:`asyncio.TaskGroup.create_task`.\\\\\\\\n (Contributed by Thomas Grainger in :gh:`128307`.)\\\\\\\\n\\\\\\\\nbase64\\\\\\\\n------\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"Doc/whatsnew/3.14.rst\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"restructuredtext\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" (Contributed by Semyon Moroz in :gh:`133367`.)\\\\\\\\n\\\\\\\\n\\\\\\\\nbdb\\\\\\\\n---\\\\\\\\n\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" (Contributed by Semyon Moroz in :gh:`133367`.)\\\\\\\\n\\\\\\\\n\\\\\\\\nasyncio\\\\\\\\n-------\\\\\\\\n\\\\\\\\n* The function and methods named :func:`!create_task` now take an arbitrary\\\\\\\\n list of keyword arguments. All keyword arguments are passed to the\\\\\\\\n :class:`~asyncio.Task` constructor or the custom task factory.\\\\\\\\n (See :meth:`~asyncio.loop.set_task_factory` for details.)\\\\\\\\n The ``name`` and ``context`` keyword arguments are no longer special;\\\\\\\\n the name should now be set using the ``name`` keyword argument of the factory,\\\\\\\\n and ``context`` may be ``None``.\\\\\\\\n\\\\\\\\n This affects the following function and methods:\\\\\\\\n :meth:`asyncio.create_task`,\\\\\\\\n :meth:`asyncio.loop.create_task`,\\\\\\\\n :meth:`asyncio.TaskGroup.create_task`.\\\\\\\\n (Contributed by Thomas Grainger in :gh:`128307`.)\\\\\\\\n\\\\\\\\n\\\\\\\\nbdb\\\\\\\\n---\\\\\\\\n\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" (Contributed by Semyon Moroz in :gh:`133367`.)\\\\\\\\n\\\\\\\\n\\\\\\\\nasyncio\\\\\\\\n-------\\\\\\\\n\\\\\\\\n* The function and methods named :func:`!create_task` now take an arbitrary\\\\\\\\n list of keyword arguments. All keyword arguments are passed to the\\\\\\\\n :class:`~asyncio.Task` constructor or the custom task factory.\\\\\\\\n (See :meth:`~asyncio.loop.set_task_factory` for details.)\\\\\\\\n The ``name`` and ``context`` keyword arguments are no longer special;\\\\\\\\n the name should now be set using the ``name`` keyword argument of the factory,\\\\\\\\n and ``context`` may be ``None``.\\\\\\\\n\\\\\\\\n This affects the following function and methods:\\\\\\\\n :meth:`asyncio.create_task`,\\\\\\\\n :meth:`asyncio.loop.create_task`,\\\\\\\\n :meth:`asyncio.TaskGroup.create_task`.\\\\\\\\n (Contributed by Thomas Grainger in :gh:`128307`.)\\\\\\\\n\\\\\\\\n\\\\\\\\nbdb\\\\\\\\n---\\\\\\\\n\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"references_issue; has_body\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"cpython\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"Update CODEOWNERS (#126005)\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Update CODEOWNERS (#126005)\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/cpython/commit/905eddceb2d61da9087f0d303aa7e4a405d2261a\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2024-10-26T15:24:51Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"905eddceb2d61da9087f0d303aa7e4a405d2261a\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\".github/CODEOWNERS\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 2,\\\\n \\\\\"deletions\\\\\": 2,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"126005\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"concise_subject; imperative_mood; references_issue\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"cpython\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"Withdraw most of my ownership in favor of Mark (#119611)\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Withdraw most of my ownership in favor of Mark (#119611)\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/cpython/commit/3ff06ebec4e8b466f76078aa9c97cea2093d52ab\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2024-05-27T18:07:16Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"3ff06ebec4e8b466f76078aa9c97cea2093d52ab\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\".github/CODEOWNERS\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 6,\\\\n \\\\\"deletions\\\\\": 6,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"119611\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"references_issue\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"cpython\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"gh-117549: Don\\'t use designated initializers in headers (#118580)\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"gh-117549: Don\\'t use designated initializers in headers (#118580)\\\\\\\\n\\\\\\\\nThe designated initializer syntax in static inline functions in pycore_backoff.h\\\\\\\\r\\\\\\\\ncauses problems for C++ or MSVC users who aren\\'t yet using C++20.\\\\\\\\r\\\\\\\\nWhile internal, pycore_backoff.h is included (indirectly, via pycore_code.h)\\\\\\\\r\\\\\\\\nby some key 3rd party software that does so for speed.\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/cpython/commit/40cc809902304f60c6e1c933191dd4d64e570e28\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2024-05-05T19:28:55Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"40cc809902304f60c6e1c933191dd4d64e570e28\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"Include/internal/pycore_backoff.h\\\\\",\\\\n \\\\\"Misc/NEWS.d/next/Core and Builtins/2024-05-05-12-04-02.gh-issue-117549.kITawD.rst\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 12,\\\\n \\\\\"deletions\\\\\": 2,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"118580\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"Misc/NEWS.d/next/Core and Builtins/2024-05-05-12-04-02.gh-issue-117549.kITawD.rst\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"restructuredtext\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"Don\\'t use designated initializer syntax in inline functions in internal\\\\\\\\nheaders. They cause problems for C++ or MSVC users who aren\\'t yet using the\\\\\\\\nlatest C++ standard (C++20). While internal, pycore_backoff.h, is included\\\\\\\\n(indirectly, via pycore_code.h) by some key 3rd party software that does so\\\\\\\\nfor speed.\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"Don\\'t use designated initializer syntax in inline functions in internal\\\\\\\\nheaders. They cause problems for C++ or MSVC users who aren\\'t yet using the\\\\\\\\nlatest C++ standard (C++20). While internal, pycore_backoff.h, is included\\\\\\\\n(indirectly, via pycore_code.h) by some key 3rd party software that does so\\\\\\\\nfor speed.\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"addition\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 0,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"references_issue; has_body\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"cpython\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"gh-74929: Rudimentary docs for PEP 667 (#118581)\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"gh-74929: Rudimentary docs for PEP 667 (#118581)\\\\\\\\n\\\\\\\\nThis is *not* sufficient for the final 3.13 release, but it will do for beta 1:\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\n- What\\'s new entry\\\\\\\\r\\\\\\\\n- Updated changelog entry (news blurb)\\\\\\\\r\\\\\\\\n- Mention the proxy for f_globals in the datamodel and Python frame object docs\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nThis doesn\\'t have any C API details (what\\'s new refers to the PEP).\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/cpython/commit/9c13d9e37a194f574b8591da634bf98419786448\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2024-05-05T15:31:26Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"9c13d9e37a194f574b8591da634bf98419786448\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"Doc/c-api/frame.rst\\\\\",\\\\n \\\\\"Doc/reference/datamodel.rst\\\\\",\\\\n \\\\\"Doc/whatsnew/3.13.rst\\\\\",\\\\n \\\\\"Misc/NEWS.d/next/Core and Builtins/2024-04-27-21-44-40.gh-issue-74929.C2nESp.rst\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 22,\\\\n \\\\\"deletions\\\\\": 3,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"118581\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"Doc/c-api/frame.rst\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"restructuredtext\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"\\\\\\\\n.. c:function:: PyObject* PyFrame_GetLocals(PyFrameObject *frame)\\\\\\\\n\\\\\\\\n Get the *frame*\\'s :attr:`~frame.f_locals` attribute (:class:`dict`).\\\\\\\\n\\\\\\\\n Return a :term:`strong reference`.\\\\\\\\n\\\\\\\\n .. versionadded:: 3.11\\\\\\\\n\\\\\\\\n\\\\\\\\n.. c:function:: int PyFrame_GetLineNumber(PyFrameObject *frame)\\\\\\\\n\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"\\\\\\\\n.. c:function:: PyObject* PyFrame_GetLocals(PyFrameObject *frame)\\\\\\\\n\\\\\\\\n Get the *frame*\\'s :attr:`~frame.f_locals` attribute.\\\\\\\\n If the frame refers to a function or comprehension, this returns\\\\\\\\n a write-through proxy object that allows modifying the locals.\\\\\\\\n In all other cases (classes, modules) it returns the :class:`dict`\\\\\\\\n representing the frame locals directly.\\\\\\\\n\\\\\\\\n Return a :term:`strong reference`.\\\\\\\\n\\\\\\\\n .. versionadded:: 3.11\\\\\\\\n\\\\\\\\n .. versionchanged:: 3.13\\\\\\\\n Return a proxy object for functions and comprehensions.\\\\\\\\n\\\\\\\\n\\\\\\\\n.. c:function:: int PyFrame_GetLineNumber(PyFrameObject *frame)\\\\\\\\n\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"\\\\\\\\n.. c:function:: PyObject* PyFrame_GetLocals(PyFrameObject *frame)\\\\\\\\n\\\\\\\\n Get the *frame*\\'s :attr:`~frame.f_locals` attribute (:class:`dict`).\\\\\\\\n Get the *frame*\\'s :attr:`~frame.f_locals` attribute.\\\\\\\\n If the frame refers to a function or comprehension, this returns\\\\\\\\n a write-through proxy object that allows modifying the locals.\\\\\\\\n In all other cases (classes, modules) it returns the :class:`dict`\\\\\\\\n representing the frame locals directly.\\\\\\\\n\\\\\\\\n Return a :term:`strong reference`.\\\\\\\\n\\\\\\\\n .. versionadded:: 3.11\\\\\\\\n\\\\\\\\n .. versionchanged:: 3.13\\\\\\\\n Return a proxy object for functions and comprehensions.\\\\\\\\n\\\\\\\\n\\\\\\\\n.. \", \"chunk_size\": 8139, \"chunk_index\": 3, \"cut_type\": \"sentence_end\", \"id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"color\": \"#801212\"}, {\"name\": \"cpython\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Official Python interpreter repository\", \"id\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"color\": \"#f47710\"}, {\"name\": \"project\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"project\", \"id\": \"29c0d211-0d39-579f-bf45-c7a78394c9aa\", \"color\": \"#6510f4\"}, {\"name\": \"thomas grainger\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Contributor to cpython, involved in asyncio updates\", \"id\": \"2e54d218-7fdb-53f4-8e4f-19bee9698819\", \"color\": \"#f47710\"}, {\"name\": \"person\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"person\", \"id\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"color\": \"#6510f4\"}, {\"name\": \"adam turner\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Co-author of cpython commit on asyncio changes\", \"id\": \"501b2f6f-beb0-5d79-ad0c-0ed6aeef6726\", \"color\": \"#f47710\"}, {\"name\": \"arthur tacca\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Contributor to cpython, involved in asyncio task changes\", \"id\": \"32ae6fac-3cb1-5f87-8642-860c520aca16\", \"color\": \"#f47710\"}, {\"name\": \"jason zhang\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Contributor to cpython, involved in asyncio task changes\", \"id\": \"e8333380-6e39-539e-af59-5daa1ec651c7\", \"color\": \"#f47710\"}, {\"name\": \"2025-09-02\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date of mypy pull request #19782\", \"id\": \"1808cbe6-f988-5b07-95c2-012f98f352b1\", \"color\": \"#f47710\"}, {\"name\": \"2025-06-03\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date of mypy pull request #19217\", \"id\": \"0f987239-1422-5df2-8b13-928f7f7c3c97\", \"color\": \"#f47710\"}, {\"name\": \"2025-05-20\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date of cpython commit 28625d4f956f8d30671aba1daaac9735932983db\", \"id\": \"77a2c44b-b349-595a-a8ea-e84e81d800b1\", \"color\": \"#f47710\"}, {\"name\": \"2024-10-26\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date of cpython CODEOWNERS update commit\", \"id\": \"6fcefdb3-9cf8-5191-a1ca-a4cf307ef232\", \"color\": \"#f47710\"}, {\"name\": \"2024-05-27\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date of cpython CODEOWNERS ownership withdrawal commit\", \"id\": \"90a4cbfb-b4b6-5eb2-9396-dbe838a167a1\", \"color\": \"#f47710\"}, {\"name\": \"2024-05-05\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date of cpython commit 40cc809902304f60c6e1c933191dd4d64e570e28\", \"id\": \"c1e21242-9d3c-5592-a2b6-9109282e1ff7\", \"color\": \"#f47710\"}, {\"name\": \"pull request 19782\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Fixes #19660: Allow instantiation of NoneType in type checker\", \"id\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"color\": \"#f47710\"}, {\"name\": \"pull_request\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"pull_request\", \"id\": \"28df104a-f505-573c-b5a2-d6deac9878de\", \"color\": \"#6510f4\"}, {\"name\": \"pull request 19217\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"feat: new mypyc primitives for weakref.proxy\", \"id\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"color\": \"#f47710\"}, {\"name\": \"commit 28625d4f956f8d30671aba1daaac9735932983db\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"gh-128307: Update what\\'s new in 3.13 and 3.14 with create_task changes of asyncio\", \"id\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"color\": \"#f47710\"}, {\"name\": \"commit\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"commit\", \"id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"color\": \"#6510f4\"}, {\"name\": \"\", \"type\": \"DocumentChunk\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"text\": \"c:function:: int PyFrame_GetLineNumber(PyFrameObject *frame)\\\\\\\\n\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 11,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"Doc/reference/datamodel.rst\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"restructuredtext\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"\\\\\\\\n * - .. attribute:: frame.f_locals\\\\\\\\n - The dictionary used by the frame to look up\\\\\\\\n :ref:`local variables <naming>`\\\\\\\\n\\\\\\\\n * - .. attribute:: frame.f_globals\\\\\\\\n - The dictionary used by the frame to look up\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"\\\\\\\\n * - .. attribute:: frame.f_locals\\\\\\\\n - The dictionary used by the frame to look up\\\\\\\\n :ref:`local variables <naming>`.\\\\\\\\n If the frame refers to a function or comprehension,\\\\\\\\n this may return a write-through proxy object.\\\\\\\\n\\\\\\\\n .. versionchanged:: 3.13\\\\\\\\n Return a proxy for functions and comprehensions.\\\\\\\\n\\\\\\\\n * - .. attribute:: frame.f_globals\\\\\\\\n - The dictionary used by the frame to look up\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"\\\\\\\\n * - .. attribute:: frame.f_locals\\\\\\\\n - The dictionary used by the frame to look up\\\\\\\\n :ref:`local variables <naming>`\\\\\\\\n :ref:`local variables <naming>`.\\\\\\\\n If the frame refers to a function or comprehension,\\\\\\\\n this may return a write-through proxy object.\\\\\\\\n\\\\\\\\n .. versionchanged:: 3.13\\\\\\\\n Return a proxy for functions and comprehensions.\\\\\\\\n\\\\\\\\n * - .. attribute:: frame.f_globals\\\\\\\\n - The dictionary used by the frame to look up\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"Doc/whatsnew/3.13.rst\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"restructuredtext\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" Performance improvements are modest -- we expect to be improving this\\\\\\\\n over the next few releases.\\\\\\\\n\\\\\\\\nNew typing features:\\\\\\\\n\\\\\\\\n* :pep:`696`: Type parameters (:data:`typing.TypeVar`, :data:`typing.ParamSpec`,\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" Performance improvements are modest -- we expect to be improving this\\\\\\\\n over the next few releases.\\\\\\\\n\\\\\\\\n* :pep:`667`: :attr:`FrameType.f_locals <frame.f_locals>` when used in\\\\\\\\n a function now returns a write-through proxy to the frame\\'s locals,\\\\\\\\n rather than a ``dict``. See the PEP for corresponding C API changes\\\\\\\\n and deprecations.\\\\\\\\n\\\\\\\\nNew typing features:\\\\\\\\n\\\\\\\\n* :pep:`696`: Type parameters (:data:`typing.TypeVar`, :data:`typing.ParamSpec`,\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" Performance improvements are modest -- we expect to be improving this\\\\\\\\n over the next few releases.\\\\\\\\n\\\\\\\\n* :pep:`667`: :attr:`FrameType.f_locals <frame.f_locals>` when used in\\\\\\\\n a function now returns a write-through proxy to the frame\\'s locals,\\\\\\\\n rather than a ``dict``. See the PEP for corresponding C API changes\\\\\\\\n and deprecations.\\\\\\\\n\\\\\\\\nNew typing features:\\\\\\\\n\\\\\\\\n* :pep:`696`: Type parameters (:data:`typing.TypeVar`, :data:`typing.ParamSpec`,\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"concise_subject; references_issue; has_body\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"cpython\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"gh-118335: Rename --experimental-interpreter on Windows to --experimental-jit-interpreter (#118497)\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"gh-118335: Rename --experimental-interpreter on Windows to --experimental-jit-interpreter (#118497)\\\\\\\\n\\\\\\\\nAlso fix docs for this in whatsnew.\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/cpython/commit/a37b0932285b5e883b13a46ff2a32f15d7339894\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2024-05-02T00:48:34Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"a37b0932285b5e883b13a46ff2a32f15d7339894\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"Doc/whatsnew/3.13.rst\\\\\",\\\\n \\\\\"PCbuild/build.bat\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 5,\\\\n \\\\\"deletions\\\\\": 4,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"118497\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"references_issue; has_body\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"Support TypeGuard (PEP 647) (#9865)\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Support TypeGuard (PEP 647) (#9865)\\\\\\\\n\\\\\\\\nPEP 647 is still in draft mode, but it is likely to be accepted, and this helps solve some real issues.\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/commit/fffbe88fc54807c8b10ac40456522ad2faf8d350\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2021-01-18T18:13:36Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"fffbe88fc54807c8b10ac40456522ad2faf8d350\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"mypy/checker.py\\\\\",\\\\n \\\\\"mypy/checkexpr.py\\\\\",\\\\n \\\\\"mypy/constraints.py\\\\\",\\\\n \\\\\"mypy/expandtype.py\\\\\",\\\\n \\\\\"mypy/fixup.py\\\\\",\\\\n \\\\\"mypy/nodes.py\\\\\",\\\\n \\\\\"mypy/test/testcheck.py\\\\\",\\\\n \\\\\"mypy/typeanal.py\\\\\",\\\\n \\\\\"mypy/types.py\\\\\",\\\\n \\\\\"test-data/unit/check-python38.test\\\\\",\\\\n \\\\\"test-data/unit/check-serialize.test\\\\\",\\\\n \\\\\"test-data/unit/check-typeguard.test\\\\\",\\\\n \\\\\"test-data/unit/lib-stub/typing_extensions.pyi\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 408,\\\\n \\\\\"deletions\\\\\": 9,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"9865\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/checker.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" if literal(expr) == LITERAL_TYPE:\\\\\\\\n vartype = type_map[expr]\\\\\\\\n return self.conditional_callable_type_map(expr, vartype)\\\\\\\\n elif isinstance(node, ComparisonExpr):\\\\\\\\n # Step 1: Obtain the types of each operand and whether or not we can\\\\\\\\n # narrow their types. (For example, we shouldn\\'t try narrowing the\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" if literal(expr) == LITERAL_TYPE:\\\\\\\\n vartype = type_map[expr]\\\\\\\\n return self.conditional_callable_type_map(expr, vartype)\\\\\\\\n elif isinstance(node.callee, RefExpr):\\\\\\\\n if node.callee.type_guard is not None:\\\\\\\\n # TODO: Follow keyword args or *args, **kwargs\\\\\\\\n if node.arg_kinds[0] != nodes.ARG_POS:\\\\\\\\n self.fail(\\\\\\\\\\\\\"Type guard requires positional argument\\\\\\\\\\\\\", node)\\\\\\\\n return {}, {}\\\\\\\\n if literal(expr) == LITERAL_TYPE:\\\\\\\\n return {expr: TypeGuardType(node.callee.type_guard)}, {}\\\\\\\\n elif isinstance(node, ComparisonExpr):\\\\\\\\n # Step 1: Obtain the types of each operand and whether or not we can\\\\\\\\n # narrow their types. (For example, we shouldn\\'t try narrowing the\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" if literal(expr) == LITERAL_TYPE:\\\\\\\\n vartype = type_map[expr]\\\\\\\\n return self.conditional_callable_type_map(expr, vartype)\\\\\\\\n elif isinstance(node.callee, RefExpr):\\\\\\\\n if node.callee.type_guard is not None:\\\\\\\\n # TODO: Follow keyword args or *args, **kwargs\\\\\\\\n if node.arg_kinds[0] != nodes.ARG_POS:\\\\\\\\n self.fail(\\\\\\\\\\\\\"Type guard requires positional argument\\\\\\\\\\\\\", node)\\\\\\\\n return {}, {}\\\\\\\\n if literal(expr) == LITERAL_TYPE:\\\\\\\\n return {expr: TypeGuardType(node.callee.type_guard)}, {}\\\\\\\\n elif isinstance(node, ComparisonExpr):\\\\\\\\n # Step 1: Obtain the types of each operand and whether or not we can\\\\\\\\n # narrow their types. (For example, we shouldn\\'t try narrowing the\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/checkexpr.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" ret_type=self.object_type(),\\\\\\\\n fallback=self.named_type(\\'builtins.function\\'))\\\\\\\\n callee_type = get_proper_type(self.accept(e.callee, type_context, always_allow_any=True))\\\\\\\\n if (self.chk.options.disallow_untyped_calls and\\\\\\\\n self.chk.in_checked_function() and\\\\\\\\n isinstance(callee_type, CallableType)\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" ret_type=self.object_type(),\\\\\\\\n fallback=self.named_type(\\'builtins.function\\'))\\\\\\\\n callee_type = get_proper_type(self.accept(e.callee, type_context, always_allow_any=True))\\\\\\\\n if (isinstance(e.callee, RefExpr)\\\\\\\\n and isinstance(callee_type, CallableType)\\\\\\\\n and callee_type.type_guard is not None):\\\\\\\\n # Cache it for find_isinstance_check()\\\\\\\\n e.callee.type_guard = callee_type.type_guard\\\\\\\\n if (self.chk.options.disallow_untyped_calls and\\\\\\\\n self.chk.in_checked_function() and\\\\\\\\n isinstance(callee_type, CallableType)\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" ret_type=self.object_type(),\\\\\\\\n fallback=self.named_type(\\'builtins.function\\'))\\\\\\\\n callee_type = get_proper_type(self.accept(e.callee, type_context, always_allow_any=True))\\\\\\\\n if (isinstance(e.callee, RefExpr)\\\\\\\\n and isinstance(callee_type, CallableType)\\\\\\\\n and callee_type.type_guard is not None):\\\\\\\\n # Cache it for find_isinstance_check()\\\\\\\\n e.callee.type_guard = callee_type.type_guard\\\\\\\\n if (self.chk.options.disallow_untyped_calls and\\\\\\\\n self.chk.in_checked_function() and\\\\\\\\n isinstance(callee_type, CallableType)\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"generator_expression\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/checkexpr.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\n if literal(expr) >= LITERAL_TYPE:\\\\\\\\n restriction = self.chk.binder.get(expr)\\\\\\\\n # If the current node is deferred, some variables may get Any types that they\\\\\\\\n # otherwise wouldn\\'t have. We don\\'t want to narrow down these since it may\\\\\\\\n # produce invalid inferred Optional[Any] types, at least.\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\n if literal(expr) >= LITERAL_TYPE:\\\\\\\\n restriction = self.chk.binder.get(expr)\\\\\\\\n # Ignore the error about using get_proper_type().\\\\\\\\n if isinstance(restriction, TypeGuardType): # type: ignore[misc]\\\\\\\\n # A type guard forces the new type even if it doesn\\'t overlap the old.\\\\\\\\n return restriction.type_guard\\\\\\\\n # If the current node is deferred, some variables may get Any types that they\\\\\\\\n # otherwise wouldn\\'t have. We don\\'t want to narrow down these since it may\\\\\\\\n # produce invalid inferred Optional[Any] types, at least.\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" \\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\n if literal(expr) >= LITERAL_TYPE:\\\\\\\\n restriction = self.chk.binder.get(expr)\\\\\\\\n # Ignore the error about using get_proper_type().\\\\\\\\n if isinstance(restriction, TypeGuardType): # type: ignore[misc]\\\\\\\\n # A type guard forces the new type even if it doesn\\'t overlap the old.\\\\\\\\n return restriction.type_guard\\\\\\\\n # If the current node is deferred, some variables may get Any types that they\\\\\\\\n # otherwise wouldn\\'t have. We don\\'t want to narrow down these since it may\\\\\\\\n # produce invalid inferred Optional[Any] types, at least.\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": \\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\",\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"type_hint\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/constraints.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" for t, a in zip(template.arg_types, cactual.arg_types):\\\\\\\\n # Negate direction due to function argument type contravariance.\\\\\\\\n res.extend(infer_constraints(t, a, neg_op(self.direction)))\\\\\\\\n res.extend(infer_constraints(template.ret_type, cactual.ret_type,\\\\\\\\n self.direction))\\\\\\\\n return res\\\\\\\\n elif isinstance(self.actual, AnyType):\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" for t, a in zip(template.arg_types, cactual.arg_types):\\\\\\\\n # Negate direction due to function argument type contravariance.\\\\\\\\n res.extend(infer_constraints(t, a, neg_op(self.direction)))\\\\\\\\n template_ret_type, cactual_ret_type = template.ret_type, cactual.ret_type\\\\\\\\n if template.type_guard is not None:\\\\\\\\n template_ret_type = template.type_guard\\\\\\\\n if cactual.type_guard is not None:\\\\\\\\n cactual_ret_type = cactual.type_guard\\\\\\\\n res.extend(infer_constraints(template_ret_type, cactual_ret_type,\\\\\\\\n self.direction))\\\\\\\\n return res\\\\\\\\n elif isinstance(self.actual, AnyType):\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" for t, a in zip(template.arg_types, cactual.arg_types):\\\\\\\\n # Negate direction due to function argument type contravariance.\\\\\\\\n res.extend(infer_constraints(t, a, neg_op(self.direction)))\\\\\\\\n res.extend(infer_constraints(template.ret_type, cactual.ret_type,\\\\\\\\n template_ret_type, cactual_ret_type = template.ret_type, cactual.ret_type\\\\\\\\n if template.type_guard is not None:\\\\\\\\n template_ret_type = template.type_guard\\\\\\\\n if cactual.type_guard is not None:\\\\\\\\n cactual_ret_type = cactual.type_guard\\\\\\\\n res.extend(infer_constraints(template_ret_type, cactual_ret_type,\\\\\\\\n self.direction))\\\\\\\\n return res\\\\\\\\n elif isinstance(self.actual, AnyType):\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": [\\\\n \\\\\"type_hint\\\\\"\\\\n ]\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/expandtype.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"\\\\\\\\n def visit_callable_type(self, t: CallableType) -> Type:\\\\\\\\n return t.copy_modified(arg_types=self.expand_types(t.arg_types),\\\\\\\\n ret_type=t.ret_type.accept(self))\\\\\\\\n\\\\\\\\n def visit_overloaded(self, t: Overloaded) -> Type:\\\\\\\\n items = [] # type: List[CallableType]\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"\\\\\\\\n def visit_callable_type(self, t: CallableType) -> Type:\\\\\\\\n return t.copy_modified(arg_types=self.expand_types(t.arg_types),\\\\\\\\n ret_type=t.ret_type.accept(self),\\\\\\\\n type_guard=(t.type_guard.accept(self)\\\\\\\\n if t.type_guard is not None else None))\\\\\\\\n\\\\\\\\n def visit_overloaded(self, t: Overloaded) -> Type:\\\\\\\\n items = [] # type: List[CallableType]\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"\\\\\\\\n def visit_callable_type(self, t: CallableType) -> Type:\\\\\\\\n return t.copy_modified(arg_types=self.expand_types(t.arg_types),\\\\\\\\n ret_type=t.ret_type.accept(self))\\\\\\\\n ret_type=t.ret_type.accept(self),\\\\\\\\n type_guard=(t.type_guard.accept(self)\\\\\\\\n if t.type_guard is not None else None))\\\\\\\\n\\\\\\\\n def visit_overloaded(self, t: Overloaded) -> Type:\\\\\\\\n items = [] # type: List[CallableType]\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": \\\\\"visit_overloaded\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\"mypy/fixup.py\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"python\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\" for arg in ct.bound_args:\\\\\\\\n if arg:\\\\\\\\n arg.accept(self)\\\\\\\\n\\\\\\\\n def visit_overloaded(self, t: Overloaded) -> None:\\\\\\\\n for ct in t.\", \"chunk_size\": 8160, \"chunk_index\": 4, \"cut_type\": \"sentence_end\", \"id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"color\": \"#801212\"}, {\"name\": \"pep 667\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Proposal to make FrameType.f_locals return a write-through proxy in functions and comprehensions.\", \"id\": \"6a84c71d-ba6b-540e-8c5d-45506c3a0bb7\", \"color\": \"#f47710\"}, {\"name\": \"pep\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"pep\", \"id\": \"c173fcdb-8139-5426-b0b1-dd5013704063\", \"color\": \"#6510f4\"}, {\"name\": \"pep 647\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Proposal for TypeGuard, a way to narrow types in conditional blocks.\", \"id\": \"1b1ec453-098e-56e8-9517-7c532d67d280\", \"color\": \"#f47710\"}, {\"name\": \"gh-116307: enable frame proxy\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Commit implementing PEP 667 for f_locals write-through proxy in cpython.\", \"id\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"color\": \"#f47710\"}, {\"name\": \"gh-118335: rename --experimental-interpreter\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Commit renaming CLI option on Windows in cpython and updating docs.\", \"id\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"color\": \"#f47710\"}, {\"name\": \"support typeguard (pep 647)\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Commit adding support for TypeGuard in mypy.\", \"id\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"color\": \"#f47710\"}, {\"name\": \"objects/frameobject.c\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"C source file for frame objects in CPython.\", \"id\": \"3b618aac-942a-58e6-a011-9f9e2a362e9e\", \"color\": \"#f47710\"}, {\"name\": \"doc/reference/datamodel.rst\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Documentation file for Python data model.\", \"id\": \"7a25056e-7d7b-50d8-842d-a8bfc3dd8526\", \"color\": \"#f47710\"}, {\"name\": \"doc/whatsnew/3.13.rst\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"What\\'s New document for Python 3.13.\", \"id\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"color\": \"#f47710\"}, {\"name\": \"\", \"type\": \"DocumentChunk\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"text\": \"items():\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\" for arg in ct.bound_args:\\\\\\\\n if arg:\\\\\\\\n arg.accept(self)\\\\\\\\n if ct.type_guard is not None:\\\\\\\\n ct.type_guard.accept(self)\\\\\\\\n\\\\\\\\n def visit_overloaded(self, t: Overloaded) -> None:\\\\\\\\n for ct in t.items():\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\" for arg in ct.bound_args:\\\\\\\\n if arg:\\\\\\\\n arg.accept(self)\\\\\\\\n if ct.type_guard is not None:\\\\\\\\n ct.type_guard.accept(self)\\\\\\\\n\\\\\\\\n def visit_overloaded(self, t: Overloaded) -> None:\\\\\\\\n for ct in t.items():\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 6,\\\\n \\\\\"function_name\\\\\": \\\\\"visit_overloaded\\\\\",\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"concise_subject; references_issue; has_body\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"Add a separate issue form to report crashes (#9549)\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Add a separate issue form to report crashes (#9549)\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/commit/cca6e2fdc874b7538bd1d2ef70daab687b2a0363\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2020-10-08T22:30:06Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"cca6e2fdc874b7538bd1d2ef70daab687b2a0363\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\".github/ISSUE_TEMPLATE/crash.md\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 41,\\\\n \\\\\"deletions\\\\\": 0,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"9549\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\".github/ISSUE_TEMPLATE/crash.md\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"markdown\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"---\\\\\\\\nname: Crash Report\\\\\\\\nabout: Crash (traceback or \\\\\\\\\\\\\"INTERNAL ERROR\\\\\\\\\\\\\")\\\\\\\\nlabels: \\\\\\\\\\\\\"crash\\\\\\\\\\\\\"\\\\\\\\n---\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n Use this form only if mypy reports an \\\\\\\\\\\\\"INTERNAL ERROR\\\\\\\\\\\\\" and/or gives a traceback.\\\\\\\\n Please include the traceback and all other messages below (use `mypy --show-traceback`).\\\\\\\\n-->\\\\\\\\n\\\\\\\\n**Crash Report**\\\\\\\\n\\\\\\\\n(Tell us what happened.)\\\\\\\\n\\\\\\\\n**Traceback**\\\\\\\\n\\\\\\\\n```\\\\\\\\n(Insert traceback and other messages from mypy here -- use `--show-traceback`.)\\\\\\\\n```\\\\\\\\n\\\\\\\\n**To Reproduce**\\\\\\\\n\\\\\\\\n(Write what you did to reproduce the crash. Full source code is\\\\\\\\nappreciated. We also very much appreciate it if you try to narrow the\\\\\\\\nsource down to a small stand-alone example.)\\\\\\\\n\\\\\\\\n**Your Environment**\\\\\\\\n\\\\\\\\n<!-- Include as many relevant details about the environment you experienced the bug in -->\\\\\\\\n\\\\\\\\n- Mypy version used:\\\\\\\\n- Mypy command-line flags:\\\\\\\\n- Mypy configuration options from `mypy.ini` (and other config files):\\\\\\\\n- Python version used:\\\\\\\\n- Operating system and version:\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nYou can freely edit this text, please remove all the lines\\\\\\\\nyou believe are unnecessary.\\\\\\\\n-->\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"---\\\\\\\\nname: Crash Report\\\\\\\\nabout: Crash (traceback or \\\\\\\\\\\\\"INTERNAL ERROR\\\\\\\\\\\\\")\\\\\\\\nlabels: \\\\\\\\\\\\\"crash\\\\\\\\\\\\\"\\\\\\\\n---\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n Use this form only if mypy reports an \\\\\\\\\\\\\"INTERNAL ERROR\\\\\\\\\\\\\" and/or gives a traceback.\\\\\\\\n Please include the traceback and all other messages below (use `mypy --show-traceback`).\\\\\\\\n-->\\\\\\\\n\\\\\\\\n**Crash Report**\\\\\\\\n\\\\\\\\n(Tell us what happened.)\\\\\\\\n\\\\\\\\n**Traceback**\\\\\\\\n\\\\\\\\n```\\\\\\\\n(Insert traceback and other messages from mypy here -- use `--show-traceback`.)\\\\\\\\n```\\\\\\\\n\\\\\\\\n**To Reproduce**\\\\\\\\n\\\\\\\\n(Write what you did to reproduce the crash. Full source code is\\\\\\\\nappreciated. We also very much appreciate it if you try to narrow the\\\\\\\\nsource down to a small stand-alone example.)\\\\\\\\n\\\\\\\\n**Your Environment**\\\\\\\\n\\\\\\\\n<!-- Include as many relevant details about the environment you experienced the bug in -->\\\\\\\\n\\\\\\\\n- Mypy version used:\\\\\\\\n- Mypy command-line flags:\\\\\\\\n- Mypy configuration options from `mypy.ini` (and other config files):\\\\\\\\n- Python version used:\\\\\\\\n- Operating system and version:\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nYou can freely edit this text, please remove all the lines\\\\\\\\nyou believe are unnecessary.\\\\\\\\n-->\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"addition\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 0,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"imperative_mood; references_issue\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"Make the new bug templates less markup-heavy (#9438)\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Make the new bug templates less markup-heavy (#9438)\\\\\\\\n\\\\\\\\n- Remove emoji\\\\\\\\r\\\\\\\\n- Instead of `## H2 headings` just use `**bold**`\\\\\\\\r\\\\\\\\n- Add link to docs\\\\\\\\r\\\\\\\\n- Add suggestion for new users not to file a bug\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/commit/6f07cb6a2e02446b909846f99817f674675e826e\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2020-09-11T18:35:59Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"6f07cb6a2e02446b909846f99817f674675e826e\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\".github/ISSUE_TEMPLATE/bug.md\\\\\",\\\\n \\\\\".github/ISSUE_TEMPLATE/documentation.md\\\\\",\\\\n \\\\\".github/ISSUE_TEMPLATE/feature.md\\\\\",\\\\n \\\\\".github/ISSUE_TEMPLATE/question.md\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 24,\\\\n \\\\\"deletions\\\\\": 18,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"9438\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\".github/ISSUE_TEMPLATE/bug.md\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"markdown\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"---\\\\\\\\nname: \\\\ud83d\\\\udc1b Bug Report\\\\\\\\nabout: Submit a bug report\\\\\\\\nlabels: \\\\\\\\\\\\\"bug\\\\\\\\\\\\\"\\\\\\\\n---\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nNote: If the problem you are reporting is about a specific library function, then the typeshed tracker is better suited\\\\\\\\nfor this report: https://github.com/python/typeshed/issues\\\\\\\\n-->\\\\\\\\n\\\\\\\\n## \\\\ud83d\\\\udc1b Bug Report\\\\\\\\n\\\\\\\\n(A clear and concise description of what the bug is.)\\\\\\\\n\\\\\\\\n## To Reproduce\\\\\\\\n\\\\\\\\n(Write your steps here:)\\\\\\\\n\\\\\\\\n1. Step 1...\\\\\\\\n1. Step 2...\\\\\\\\n1. Step 3...\\\\\\\\n\\\\\\\\n## Expected Behavior\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n How did you expect your project to behave?\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"---\\\\\\\\nname: Bug Report\\\\\\\\nabout: Submit a bug report\\\\\\\\nlabels: \\\\\\\\\\\\\"bug\\\\\\\\\\\\\"\\\\\\\\n---\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n If you\\'re new to mypy and you\\'re not sure whether what you\\'re experiencing is a mypy bug, please see the \\\\\\\\\\\\\"Question and Help\\\\\\\\\\\\\" form\\\\\\\\n instead.\\\\\\\\n-->\\\\\\\\n\\\\\\\\n**Bug Report**\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nNote: If the problem you are reporting is about a specific library function, then the typeshed tracker is better suited\\\\\\\\nfor this report: https://github.com/python/typeshed/issues\\\\\\\\n-->\\\\\\\\n\\\\\\\\n(A clear and concise description of what the bug is.)\\\\\\\\n\\\\\\\\n**To Reproduce**\\\\\\\\n\\\\\\\\n(Write your steps here:)\\\\\\\\n\\\\\\\\n1. Step 1...\\\\\\\\n2. Step 2...\\\\\\\\n3. Step 3...\\\\\\\\n\\\\\\\\n**Expected Behavior**\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n How did you expect your project to behave?\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"---\\\\\\\\nname: \\\\ud83d\\\\udc1b Bug Report\\\\\\\\nname: Bug Report\\\\\\\\nabout: Submit a bug report\\\\\\\\nlabels: \\\\\\\\\\\\\"bug\\\\\\\\\\\\\"\\\\\\\\n---\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n If you\\'re new to mypy and you\\'re not sure whether what you\\'re experiencing is a mypy bug, please see the \\\\\\\\\\\\\"Question and Help\\\\\\\\\\\\\" form\\\\\\\\n instead.\\\\\\\\n-->\\\\\\\\n\\\\\\\\n**Bug Report**\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nNote: If the problem you are reporting is about a specific library function, then the typeshed tracker is better suited\\\\\\\\nfor this report: https://github.com/python/typeshed/issues\\\\\\\\n-->\\\\\\\\n\\\\\\\\n## \\\\ud83d\\\\udc1b Bug Report\\\\\\\\n\\\\\\\\n(A clear and concise description of what the bug is.)\\\\\\\\n\\\\\\\\n## To Reproduce\\\\\\\\n**To Reproduce**\\\\\\\\n\\\\\\\\n(Write your steps here:)\\\\\\\\n\\\\\\\\n1. Step 1...\\\\\\\\n1. Step 2...\\\\\\\\n1. Step 3...\\\\\\\\n2. Step 2...\\\\\\\\n3. Step 3...\\\\\\\\n\\\\\\\\n## Expected Behavior\\\\\\\\n**Expected Behavior**\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n How did you expect your project to behave?\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"modification\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 20,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"references_issue; has_body\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"Add MYPY_CONFIG_FILE_DIR to environment when config file is read (2nd try) (#9414)\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Add MYPY_CONFIG_FILE_DIR to environment when config file is read (2nd try) (#9414)\\\\\\\\n\\\\\\\\n(This fixes the mistake I introduced in the previous version.)\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nResubmit of #9403.\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nFixes #7968.\\\\\\\\r\\\\\\\\n\\\\\\\\r\\\\\\\\nCo-authored-by: aghast <aghast@aghast.dev>\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/commit/9d038469d80e36057c77e0a8a18831f829778f9d\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2020-09-04T20:55:14Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"9d038469d80e36057c77e0a8a18831f829778f9d\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"mypy/config_parser.py\\\\\",\\\\n \\\\\"mypy/test/testcmdline.py\\\\\",\\\\n \\\\\"test-data/unit/envvars.test\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 15,\\\\n \\\\\"deletions\\\\\": 0,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"9403\\\\\",\\\\n \\\\\"7968\\\\\",\\\\n \\\\\"9414\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"imperative_mood; references_issue; has_body\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"Revert \\\\\\\\\\\\\"Add MYPY_CONFIG_FILE_DIR to environment when config file is read (#9403)\\\\\\\\\\\\\"\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Revert \\\\\\\\\\\\\"Add MYPY_CONFIG_FILE_DIR to environment when config file is read (#9403)\\\\\\\\\\\\\"\\\\\\\\n\\\\\\\\nReason: This broke CI.\\\\\\\\n\\\\\\\\nThis reverts commit 652aca96609c876c47ca7eaa68d67ac1e36f4215.\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/commit/57d3473ae906fe945953b874d3dcb66efb2710ca\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2020-09-04T02:45:27Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"57d3473ae906fe945953b874d3dcb66efb2710ca\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\"mypy/config_parser.py\\\\\",\\\\n \\\\\"mypy/test/testcmdline.py\\\\\",\\\\n \\\\\"test-data/unit/envvars.test\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 0,\\\\n \\\\\"deletions\\\\\": 15,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"9403\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"references_issue; has_body\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n },\\\\n {\\\\n \\\\\"type\\\\\": \\\\\"commit\\\\\",\\\\n \\\\\"repository\\\\\": \\\\\"mypy\\\\\",\\\\n \\\\\"title\\\\\": \\\\\"Revert issue template (#9345) -- it doesn\\'t work\\\\\",\\\\n \\\\\"description\\\\\": \\\\\"Revert issue template (#9345) -- it doesn\\'t work\\\\\\\\n\\\\\\\\nThis reverts commit 18c84e0f6906cfb315c367aa35550a4727cb57f8.\\\\\",\\\\n \\\\\"url\\\\\": \\\\\"https://github.com/python/mypy/commit/42a522089c6b418727e143c181128e902acf0908\\\\\",\\\\n \\\\\"date\\\\\": \\\\\"2020-08-27T22:21:28Z\\\\\",\\\\n \\\\\"sha_or_number\\\\\": \\\\\"42a522089c6b418727e143c181128e902acf0908\\\\\",\\\\n \\\\\"files_changed\\\\\": [\\\\n \\\\\".github/ISSUE_TEMPLATE/bug.md\\\\\",\\\\n \\\\\".github/ISSUE_TEMPLATE/documentation.md\\\\\",\\\\n \\\\\".github/ISSUE_TEMPLATE/feature.md\\\\\",\\\\n \\\\\".github/ISSUE_TEMPLATE/question.md\\\\\",\\\\n \\\\\".github/PULL_REQUEST_TEMPLATE.md\\\\\",\\\\n \\\\\"ISSUE_TEMPLATE.md\\\\\"\\\\n ],\\\\n \\\\\"additions\\\\\": 20,\\\\n \\\\\"deletions\\\\\": 110,\\\\n \\\\\"labels\\\\\": [],\\\\n \\\\\"related_issues\\\\\": [\\\\n \\\\\"9345\\\\\"\\\\n ],\\\\n \\\\\"code_samples\\\\\": [\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\".github/ISSUE_TEMPLATE/bug.md\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"markdown\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"---\\\\\\\\nname: \\\\ud83d\\\\udc1b Bug Report\\\\\\\\nlabels: \\\\\\\\\\\\\"bug\\\\\\\\\\\\\"\\\\\\\\n---\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nNote: If the problem you are reporting is about a specific library function, then the typeshed tracker is better suited\\\\\\\\nfor this report: https://github.com/python/typeshed/issues\\\\\\\\n-->\\\\\\\\n\\\\\\\\n## \\\\ud83d\\\\udc1b Bug Report\\\\\\\\n\\\\\\\\n(A clear and concise description of what the bug is.)\\\\\\\\n\\\\\\\\n## To Reproduce\\\\\\\\n\\\\\\\\n(Write your steps here:)\\\\\\\\n\\\\\\\\n1. Step 1...\\\\\\\\n1. Step 2...\\\\\\\\n1. Step 3...\\\\\\\\n\\\\\\\\n## Expected Behavior\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n How did you expect your project to behave?\\\\\\\\n It\\\\u2019s fine if you\\\\u2019re not sure your understanding is correct.\\\\\\\\n Write down what you thought would happen. If you just expected no errors, you can delete this section.\\\\\\\\n-->\\\\\\\\n\\\\\\\\n(Write what you thought would happen.)\\\\\\\\n\\\\\\\\n## Actual Behavior\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n Did something go wrong?\\\\\\\\n Is something broken, or not behaving as you expected?\\\\\\\\n-->\\\\\\\\n\\\\\\\\n(Write what happened.)\\\\\\\\n\\\\\\\\n## Your Environment\\\\\\\\n\\\\\\\\n<!-- Include as many relevant details about the environment you experienced the bug in -->\\\\\\\\n\\\\\\\\n- Mypy version used:\\\\\\\\n- Mypy command-line flags:\\\\\\\\n- Mypy configuration options from `mypy.ini` (and other config files):\\\\\\\\n- Python version used:\\\\\\\\n- Operating system and version:\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nYou can freely edit this text, please remove all the lines\\\\\\\\nyou believe are unnecessary.\\\\\\\\n-->\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"---\\\\\\\\nname: \\\\ud83d\\\\udc1b Bug Report\\\\\\\\nlabels: \\\\\\\\\\\\\"bug\\\\\\\\\\\\\"\\\\\\\\n---\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nNote: If the problem you are reporting is about a specific library function, then the typeshed tracker is better suited\\\\\\\\nfor this report: https://github.com/python/typeshed/issues\\\\\\\\n-->\\\\\\\\n\\\\\\\\n## \\\\ud83d\\\\udc1b Bug Report\\\\\\\\n\\\\\\\\n(A clear and concise description of what the bug is.)\\\\\\\\n\\\\\\\\n## To Reproduce\\\\\\\\n\\\\\\\\n(Write your steps here:)\\\\\\\\n\\\\\\\\n1. Step 1...\\\\\\\\n1. Step 2...\\\\\\\\n1. Step 3...\\\\\\\\n\\\\\\\\n## Expected Behavior\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n How did you expect your project to behave?\\\\\\\\n It\\\\u2019s fine if you\\\\u2019re not sure your understanding is correct.\\\\\\\\n Write down what you thought would happen. If you just expected no errors, you can delete this section.\\\\\\\\n-->\\\\\\\\n\\\\\\\\n(Write what you thought would happen.)\\\\\\\\n\\\\\\\\n## Actual Behavior\\\\\\\\n\\\\\\\\n<!--\\\\\\\\n Did something go wrong?\\\\\\\\n Is something broken, or not behaving as you expected?\\\\\\\\n-->\\\\\\\\n\\\\\\\\n(Write what happened.)\\\\\\\\n\\\\\\\\n## Your Environment\\\\\\\\n\\\\\\\\n<!-- Include as many relevant details about the environment you experienced the bug in -->\\\\\\\\n\\\\\\\\n- Mypy version used:\\\\\\\\n- Mypy command-line flags:\\\\\\\\n- Mypy configuration options from `mypy.ini` (and other config files):\\\\\\\\n- Python version used:\\\\\\\\n- Operating system and version:\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nYou can freely edit this text, please remove all the lines\\\\\\\\nyou believe are unnecessary.\\\\\\\\n-->\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"deletion\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 0,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\".github/ISSUE_TEMPLATE/feature.md\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"markdown\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"---\\\\\\\\nname: \\\\ud83d\\\\ude80 Feature\\\\\\\\nlabels: \\\\\\\\\\\\\"feature\\\\\\\\\\\\\"\\\\\\\\n---\\\\\\\\n\\\\\\\\n## \\\\ud83d\\\\ude80 Feature\\\\\\\\n\\\\\\\\n(A clear and concise description of your feature proposal.)\\\\\\\\n\\\\\\\\n## Pitch\\\\\\\\n\\\\\\\\n(Please explain why this feature should be implemented and how it would be used. Add examples, if applicable.)\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"---\\\\\\\\nname: \\\\ud83d\\\\ude80 Feature\\\\\\\\nlabels: \\\\\\\\\\\\\"feature\\\\\\\\\\\\\"\\\\\\\\n---\\\\\\\\n\\\\\\\\n## \\\\ud83d\\\\ude80 Feature\\\\\\\\n\\\\\\\\n(A clear and concise description of your feature proposal.)\\\\\\\\n\\\\\\\\n## Pitch\\\\\\\\n\\\\\\\\n(Please explain why this feature should be implemented and how it would be used. Add examples, if applicable.)\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"deletion\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 0,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n },\\\\n {\\\\n \\\\\"file_path\\\\\": \\\\\".github/PULL_REQUEST_TEMPLATE.md\\\\\",\\\\n \\\\\"language\\\\\": \\\\\"markdown\\\\\",\\\\n \\\\\"before_code\\\\\": \\\\\"### Have you read the [Contributing Guidelines](https://github.com/python/mypy/blob/master/CONTRIBUTING.md)?\\\\\\\\n\\\\\\\\n(Once you have, delete this section. If you leave it in, your PR may be closed without action.)\\\\\\\\n\\\\\\\\n### Description\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nIf this pull request closes or fixes an issue, write Closes #NNN\\\\\\\\\\\\\" or \\\\\\\\\\\\\"Fixes #NNN\\\\\\\\\\\\\" in that exact\\\\\\\\nformat.\\\\\\\\n-->\\\\\\\\n\\\\\\\\n(Explain how this PR changes mypy.)\\\\\\\\n\\\\\\\\n## Test Plan\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nIf this is a documentation change, rebuild the docs (link to instructions) and review the changed pages for markup errors.\\\\\\\\nIf this is a code change, include new tests (link to the testing docs). Be sure to run the tests locally and fix any errors before submitting the PR (more instructions).\\\\\\\\nIf this change cannot be tested by the CI, please explain how to verify it manually.\\\\\\\\n-->\\\\\\\\n\\\\\\\\n(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)\\\\\",\\\\n \\\\\"after_code\\\\\": \\\\\"\\\\\",\\\\n \\\\\"diff_context\\\\\": \\\\\"### Have you read the [Contributing Guidelines](https://github.com/python/mypy/blob/master/CONTRIBUTING.md)?\\\\\\\\n\\\\\\\\n(Once you have, delete this section. If you leave it in, your PR may be closed without action.)\\\\\\\\n\\\\\\\\n### Description\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nIf this pull request closes or fixes an issue, write Closes #NNN\\\\\\\\\\\\\" or \\\\\\\\\\\\\"Fixes #NNN\\\\\\\\\\\\\" in that exact\\\\\\\\nformat.\\\\\\\\n-->\\\\\\\\n\\\\\\\\n(Explain how this PR changes mypy.)\\\\\\\\n\\\\\\\\n## Test Plan\\\\\\\\n\\\\\\\\n<!--\\\\\\\\nIf this is a documentation change, rebuild the docs (link to instructions) and review the changed pages for markup errors.\\\\\\\\nIf this is a code change, include new tests (link to the testing docs). Be sure to run the tests locally and fix any errors before submitting the PR (more instructions).\\\\\\\\nIf this change cannot be tested by the CI, please explain how to verify it manually.\\\\\\\\n-->\\\\\\\\n\\\\\\\\n(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)\\\\\",\\\\n \\\\\"change_type\\\\\": \\\\\"deletion\\\\\",\\\\n \\\\\"lines_of_context\\\\\": 0,\\\\n \\\\\"function_name\\\\\": null,\\\\n \\\\\"class_name\\\\\": null,\\\\n \\\\\"docstring\\\\\": null,\\\\n \\\\\"coding_patterns\\\\\": []\\\\n }\\\\n ],\\\\n \\\\\"commit_message_style\\\\\": \\\\\"concise_subject; references_issue; has_body\\\\\",\\\\n \\\\\"python_version\\\\\": null,\\\\n \\\\\"pep_status\\\\\": null\\\\n }\\\\n]\", \"chunk_size\": 7213, \"chunk_index\": 5, \"cut_type\": \"sentence_cut\", \"id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"color\": \"#801212\"}, {\"name\": \"october 12, 2020\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date associated with commits in mypy repository\", \"id\": \"70190044-c895-51b1-b8e5-0967d1d98d6b\", \"color\": \"#f47710\"}, {\"name\": \"october 8, 2020\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date associated with commits in mypy repository\", \"id\": \"55ad1409-dacf-5785-8bef-0e3d3d3c489e\", \"color\": \"#f47710\"}, {\"name\": \"september 11, 2020\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date associated with commits in mypy repository\", \"id\": \"f8128b93-fc94-5903-991e-b6a26d5d7318\", \"color\": \"#f47710\"}, {\"name\": \"september 4, 2020\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date associated with commits in mypy repository\", \"id\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"color\": \"#f47710\"}, {\"name\": \"august 27, 2020\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Date associated with commits in mypy repository\", \"id\": \"810f71e4-6be0-5be0-8159-9052cf429c70\", \"color\": \"#f47710\"}, {\"name\": \"fix stubgenerator collector for bound arguments in namedtuple transformer\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Fix StubGenerator collector for bound arguments in namedtuple transformer - handles bound_args iteration in overloaded methods\", \"id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"color\": \"#f47710\"}, {\"name\": \"add a separate issue form to report crashes (#9549)\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Add a separate issue form to report crashes (#9549)\", \"id\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"color\": \"#f47710\"}, {\"name\": \"make the new bug templates less markup-heavy (#9438)\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Make the new bug templates less markup-heavy (#9438) - Remove emoji, use bold instead of H2 headings, add link to docs, suggestion for new users\", \"id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"color\": \"#f47710\"}, {\"name\": \"add mypy_config_file_dir to environment when config file is read (2nd try) (#9414)\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Add MYPY_CONFIG_FILE_DIR to environment when config file is read (2nd try) (#9414) - Fixes #7968, co-authored by aghast\", \"id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"color\": \"#f47710\"}, {\"name\": \"revert \\\\\"add mypy_config_file_dir to environment when config file is read (#9403)\\\\\"\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Revert \\\\\"Add MYPY_CONFIG_FILE_DIR to environment when config file is read (#9403)\\\\\" - Reason: This broke CI\", \"id\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"color\": \"#f47710\"}, {\"name\": \"revert issue template (#9345) -- it doesnt work\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Revert issue template (#9345) -- it doesn\\'t work - This reverts commit 18c84e0f6906cfb315c367aa35550a4727cb57f8\", \"id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"color\": \"#f47710\"}, {\"name\": \"mypy/fastparse2.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"3603a4bb-1460-5991-9a6e-774d4d278a76\", \"color\": \"#f47710\"}, {\"name\": \"mypy/messages.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"ff498592-94eb-570a-8de3-e646be7f4626\", \"color\": \"#f47710\"}, {\"name\": \"mypy/types.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"12b45b93-9bba-5471-900c-73b014abbc7d\", \"color\": \"#f47710\"}, {\"name\": \"mypy/fastparse.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"d7aa533c-108a-5aa3-8297-3f9002cf2498\", \"color\": \"#f47710\"}, {\"name\": \"mypy/meet.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"3e2a0357-cd1b-568b-8580-2a6c5d24e905\", \"color\": \"#f47710\"}, {\"name\": \"mypy/join.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"be6e1c9e-9414-5912-9111-5f918059105f\", \"color\": \"#f47710\"}, {\"name\": \"mypy/constraints.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"898a177a-3dd2-5b0e-8f97-982d8b68d238\", \"color\": \"#f47710\"}, {\"name\": \"mypy/config_parser.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"color\": \"#f47710\"}, {\"name\": \"mypy/test/testcmdline.py\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"color\": \"#f47710\"}, {\"name\": \"test-data/unit/envvars.test\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"color\": \"#f47710\"}, {\"name\": \".github/issue_template/crash.md\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"5f2af220-ae8f-5d91-a7c6-945c93a6d2c4\", \"color\": \"#f47710\"}, {\"name\": \".github/issue_template/bug.md\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"color\": \"#f47710\"}, {\"name\": \".github/issue_template/documentation.md\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"color\": \"#f47710\"}, {\"name\": \".github/issue_template/feature.md\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"color\": \"#f47710\"}, {\"name\": \".github/issue_template/question.md\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"color\": \"#f47710\"}, {\"name\": \".github/pull_request_template.md\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"d23e1ff3-4e40-55dd-85c0-d1a80398893a\", \"color\": \"#f47710\"}, {\"name\": \"issue_template.md\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"File in mypy repository\", \"id\": \"b5359096-9f7c-51e8-8437-26dab203eb96\", \"color\": \"#f47710\"}, {\"name\": \"issue #9555\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Related GitHub issue in mypy repository\", \"id\": \"c1c1ca06-f2b5-5ebc-a92a-8fbf1a7dd3fe\", \"color\": \"#f47710\"}, {\"name\": \"issue\", \"type\": \"EntityType\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"belongs_to_set\": null, \"description\": \"issue\", \"id\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"color\": \"#6510f4\"}, {\"name\": \"issue #9549\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Related GitHub issue in mypy repository\", \"id\": \"5a0dc17b-1997-5313-8b7c-9d41d8c588fc\", \"color\": \"#f47710\"}, {\"name\": \"issue #9438\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Related GitHub issue in mypy repository\", \"id\": \"616979aa-cff4-5b0b-a6df-c9da2cff5e40\", \"color\": \"#f47710\"}, {\"name\": \"issue #9414\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Related GitHub issue in mypy repository\", \"id\": \"2f1c53c1-e205-5a66-83fe-55b3eda889c5\", \"color\": \"#f47710\"}, {\"name\": \"issue #7968\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Related GitHub issue in mypy repository\", \"id\": \"ed041971-c383-5fa0-8b1d-a628516a7e69\", \"color\": \"#f47710\"}, {\"name\": \"issue #9403\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Related GitHub issue in mypy repository\", \"id\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"color\": \"#f47710\"}, {\"name\": \"issue #9345\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Related GitHub issue in mypy repository\", \"id\": \"34fc46f8-45fc-5b5c-990d-f94855f9c5a7\", \"color\": \"#f47710\"}, {\"name\": \"aghast\", \"type\": \"Entity\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"name\"]}, \"description\": \"Co-author on commits in mypy repository\", \"id\": \"ec517732-14a5-57d4-b392-7090ecdad98b\", \"color\": \"#f47710\"}, {\"name\": \"\", \"type\": \"TextSummary\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"belongs_to_set\": null, \"text\": \"Enhancement of indirect dependency handling in mypy to address crashes, outdated types, and improve algorithmic soundness.\", \"id\": \"20d428d5-69c2-5984-ad87-e014015a980e\", \"color\": \"#1077f4\"}, {\"name\": \"\", \"type\": \"TextSummary\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"belongs_to_set\": null, \"text\": \"Updates to mypy\\'s indirection tracker and node definitions for better handling of type aliases and their dependencies\", \"id\": \"84762b42-bb4a-5462-b337-17c63fc2c63a\", \"color\": \"#1077f4\"}, {\"name\": \"\", \"type\": \"TextSummary\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"belongs_to_set\": null, \"text\": \"Updates to mypy repository involving incremental modifications\", \"id\": \"b31eb38a-8140-5b4b-82c7-d28f7cd83623\", \"color\": \"#1077f4\"}, {\"name\": \"\", \"type\": \"TextSummary\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"belongs_to_set\": null, \"text\": \"Recent enhancements in mypy and cpython repos including type checker fixes, weakref features, asyncio updates, and ownership adjustments.\", \"id\": \"e4188392-d5b0-515b-8288-6ee815aae589\", \"color\": \"#1077f4\"}, {\"name\": \"\", \"type\": \"TextSummary\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"belongs_to_set\": null, \"text\": \"Advanced improvements in Python execution and type checking\", \"id\": \"235261d4-73b2-5671-a49a-1a8369a533ed\", \"color\": \"#1077f4\"}, {\"name\": \"\", \"type\": \"TextSummary\", \"ontology_valid\": false, \"version\": 1, \"topological_rank\": 0, \"metadata\": {\"index_fields\": [\"text\"]}, \"belongs_to_set\": null, \"text\": \"Collection of recent mypy project changes focusing on GitHub templates and configuration adjustments\", \"id\": \"3be8ba02-4d70-59c7-b7df-b81550d37130\", \"color\": \"#1077f4\"}];\\n var links = [{\"source\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"target\": \"bc338a39-64d6-549a-acec-da60846dd90d\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"target_node_id\": \"bc338a39-64d6-549a-acec-da60846dd90d\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-08-29 19:41:49\"}}, {\"source\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"target\": \"6218dbab-eb6a-5759-a864-b3419755ffe0\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"target_node_id\": \"6218dbab-eb6a-5759-a864-b3419755ffe0\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-08-29 19:41:49\"}}, {\"source\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"target\": \"02bdab9a-0981-518c-a0d4-1684e0329447\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"target_node_id\": \"02bdab9a-0981-518c-a0d4-1684e0329447\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-08-29 19:41:49\"}}, {\"source\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"target\": \"b86bef5e-03a9-5ea4-b495-c138e897de98\", \"relation\": \"is_part_of\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"target_node_id\": \"b86bef5e-03a9-5ea4-b495-c138e897de98\", \"relationship_name\": \"is_part_of\", \"updated_at\": \"2025-08-29 19:41:49\"}}, {\"source\": \"bc338a39-64d6-549a-acec-da60846dd90d\", \"target\": \"0198571b-3e94-50ea-8b9f-19e3a31080c0\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"bc338a39-64d6-549a-acec-da60846dd90d\", \"target_node_id\": \"0198571b-3e94-50ea-8b9f-19e3a31080c0\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-08-29 19:41:49\"}}, {\"source\": \"bc338a39-64d6-549a-acec-da60846dd90d\", \"target\": \"6218dbab-eb6a-5759-a864-b3419755ffe0\", \"relation\": \"subfield_of\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"subfield_of\", \"source_node_id\": \"bc338a39-64d6-549a-acec-da60846dd90d\", \"target_node_id\": \"6218dbab-eb6a-5759-a864-b3419755ffe0\", \"ontology_valid\": false}}, {\"source\": \"bc338a39-64d6-549a-acec-da60846dd90d\", \"target\": \"02bdab9a-0981-518c-a0d4-1684e0329447\", \"relation\": \"subfield_of\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"subfield_of\", \"source_node_id\": \"bc338a39-64d6-549a-acec-da60846dd90d\", \"target_node_id\": \"02bdab9a-0981-518c-a0d4-1684e0329447\", \"ontology_valid\": false}}, {\"source\": \"6218dbab-eb6a-5759-a864-b3419755ffe0\", \"target\": \"0198571b-3e94-50ea-8b9f-19e3a31080c0\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"6218dbab-eb6a-5759-a864-b3419755ffe0\", \"target_node_id\": \"0198571b-3e94-50ea-8b9f-19e3a31080c0\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-08-29 19:41:49\"}}, {\"source\": \"02bdab9a-0981-518c-a0d4-1684e0329447\", \"target\": \"0198571b-3e94-50ea-8b9f-19e3a31080c0\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"02bdab9a-0981-518c-a0d4-1684e0329447\", \"target_node_id\": \"0198571b-3e94-50ea-8b9f-19e3a31080c0\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-08-29 19:41:49\"}}, {\"source\": \"f3e21f00-175e-5c59-beae-80a98d576ebd\", \"target\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"relation\": \"made_from\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"f3e21f00-175e-5c59-beae-80a98d576ebd\", \"target_node_id\": \"e5b54bc1-0d7b-5d47-8411-4d4df5c115fe\", \"relationship_name\": \"made_from\", \"updated_at\": \"2025-08-29 19:41:49\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relation\": \"is_part_of\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relationship_name\": \"is_part_of\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"a6d02748-8286-56bd-8f40-759184689587\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"a6d02748-8286-56bd-8f40-759184689587\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"6fb3723d-1c1f-5bf1-8366-f90af7d280fa\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"6fb3723d-1c1f-5bf1-8366-f90af7d280fa\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"20801719-9554-5629-90fa-961fc6cd3898\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"20801719-9554-5629-90fa-961fc6cd3898\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"76d857cf-fbfe-56d7-880b-e7579f3dc116\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"76d857cf-fbfe-56d7-880b-e7579f3dc116\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"76ed77a3-a992-5cf0-9151-042b46028a3f\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"76ed77a3-a992-5cf0-9151-042b46028a3f\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"7fcc31c9-5584-5308-9d49-4237ea415b29\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"7fcc31c9-5584-5308-9d49-4237ea415b29\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"a6d02748-8286-56bd-8f40-759184689587\", \"relation\": \"created_at\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"created_at\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"a6d02748-8286-56bd-8f40-759184689587\", \"ontology_valid\": false}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"ontology_valid\": false}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"6fb3723d-1c1f-5bf1-8366-f90af7d280fa\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"6fb3723d-1c1f-5bf1-8366-f90af7d280fa\", \"ontology_valid\": false}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"ontology_valid\": false}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"ontology_valid\": false}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"ontology_valid\": false}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"20801719-9554-5629-90fa-961fc6cd3898\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"20801719-9554-5629-90fa-961fc6cd3898\", \"ontology_valid\": false}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"76d857cf-fbfe-56d7-880b-e7579f3dc116\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"76d857cf-fbfe-56d7-880b-e7579f3dc116\", \"ontology_valid\": false}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"76ed77a3-a992-5cf0-9151-042b46028a3f\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"76ed77a3-a992-5cf0-9151-042b46028a3f\", \"ontology_valid\": false}}, {\"source\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target\": \"7fcc31c9-5584-5308-9d49-4237ea415b29\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"7f4f9a47-6d04-5ee3-a480-6df92e01fbc6\", \"target_node_id\": \"7fcc31c9-5584-5308-9d49-4237ea415b29\", \"ontology_valid\": false}}, {\"source\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"target\": \"9d2f4a61-7b81-5539-aef2-6bf677b5229e\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"target_node_id\": \"9d2f4a61-7b81-5539-aef2-6bf677b5229e\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"a6d02748-8286-56bd-8f40-759184689587\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"a6d02748-8286-56bd-8f40-759184689587\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"a6d02748-8286-56bd-8f40-759184689587\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"a6d02748-8286-56bd-8f40-759184689587\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"6fb3723d-1c1f-5bf1-8366-f90af7d280fa\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"6fb3723d-1c1f-5bf1-8366-f90af7d280fa\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"6fb3723d-1c1f-5bf1-8366-f90af7d280fa\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"6fb3723d-1c1f-5bf1-8366-f90af7d280fa\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"contains\", \"source_node_id\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target_node_id\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"ontology_valid\": false}}, {\"source\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"contains\", \"source_node_id\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target_node_id\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"ontology_valid\": false}}, {\"source\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target\": \"8ebbb49c-8dcd-5a73-9c0c-c390a78d8335\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"contains\", \"source_node_id\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target_node_id\": \"8ebbb49c-8dcd-5a73-9c0c-c390a78d8335\", \"ontology_valid\": false}}, {\"source\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target\": \"69f3aeb5-2006-5822-9a8a-c35bb53f304d\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"contains\", \"source_node_id\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"target_node_id\": \"69f3aeb5-2006-5822-9a8a-c35bb53f304d\", \"ontology_valid\": false}}, {\"source\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"target\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"relation\": \"uses\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"uses\", \"source_node_id\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"target_node_id\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"ontology_valid\": false}}, {\"source\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"20801719-9554-5629-90fa-961fc6cd3898\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"20801719-9554-5629-90fa-961fc6cd3898\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"20801719-9554-5629-90fa-961fc6cd3898\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"20801719-9554-5629-90fa-961fc6cd3898\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"76d857cf-fbfe-56d7-880b-e7579f3dc116\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"76d857cf-fbfe-56d7-880b-e7579f3dc116\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"76d857cf-fbfe-56d7-880b-e7579f3dc116\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"76d857cf-fbfe-56d7-880b-e7579f3dc116\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"76ed77a3-a992-5cf0-9151-042b46028a3f\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"76ed77a3-a992-5cf0-9151-042b46028a3f\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"76ed77a3-a992-5cf0-9151-042b46028a3f\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"76ed77a3-a992-5cf0-9151-042b46028a3f\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7fcc31c9-5584-5308-9d49-4237ea415b29\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"7fcc31c9-5584-5308-9d49-4237ea415b29\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7fcc31c9-5584-5308-9d49-4237ea415b29\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"7fcc31c9-5584-5308-9d49-4237ea415b29\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relation\": \"is_part_of\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relationship_name\": \"is_part_of\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"0476ceab-5b64-505c-bbaf-686d8ed469dc\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"b16ba1a1-2a60-5824-ac19-d8e86612f222\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"8ebbb49c-8dcd-5a73-9c0c-c390a78d8335\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"8ebbb49c-8dcd-5a73-9c0c-c390a78d8335\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"69f3aeb5-2006-5822-9a8a-c35bb53f304d\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"69f3aeb5-2006-5822-9a8a-c35bb53f304d\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"54f59088-b7f2-5c41-89ac-829d2f82257f\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"54f59088-b7f2-5c41-89ac-829d2f82257f\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"9352e569-a8d4-552d-89fd-b2c41c3acd4e\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"9352e569-a8d4-552d-89fd-b2c41c3acd4e\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"relation\": \"uses\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"uses\", \"source_node_id\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target_node_id\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"ontology_valid\": false}}, {\"source\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target\": \"54f59088-b7f2-5c41-89ac-829d2f82257f\", \"relation\": \"uses\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"uses\", \"source_node_id\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target_node_id\": \"54f59088-b7f2-5c41-89ac-829d2f82257f\", \"ontology_valid\": false}}, {\"source\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target\": \"9352e569-a8d4-552d-89fd-b2c41c3acd4e\", \"relation\": \"uses\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"uses\", \"source_node_id\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target_node_id\": \"9352e569-a8d4-552d-89fd-b2c41c3acd4e\", \"ontology_valid\": false}}, {\"source\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"relation\": \"uses\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"uses\", \"source_node_id\": \"5eb305db-2b70-5c0e-8f1c-db8c914c5e04\", \"target_node_id\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"ontology_valid\": false}}, {\"source\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"target\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"relation\": \"uses\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"uses\", \"source_node_id\": \"b2ae94da-2e72-55a4-a8cf-fedfa63b4e5f\", \"target_node_id\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"ontology_valid\": false}}, {\"source\": \"8ebbb49c-8dcd-5a73-9c0c-c390a78d8335\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"8ebbb49c-8dcd-5a73-9c0c-c390a78d8335\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"8ebbb49c-8dcd-5a73-9c0c-c390a78d8335\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"8ebbb49c-8dcd-5a73-9c0c-c390a78d8335\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"69f3aeb5-2006-5822-9a8a-c35bb53f304d\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"69f3aeb5-2006-5822-9a8a-c35bb53f304d\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"69f3aeb5-2006-5822-9a8a-c35bb53f304d\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"69f3aeb5-2006-5822-9a8a-c35bb53f304d\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"target\": \"ab7e7dab-bfe5-5e74-958d-e12f6ebfccc6\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"target_node_id\": \"ab7e7dab-bfe5-5e74-958d-e12f6ebfccc6\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"cb40d95a-0dd0-5fb1-a77c-9f445f3490e3\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"54f59088-b7f2-5c41-89ac-829d2f82257f\", \"target\": \"ab7e7dab-bfe5-5e74-958d-e12f6ebfccc6\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"54f59088-b7f2-5c41-89ac-829d2f82257f\", \"target_node_id\": \"ab7e7dab-bfe5-5e74-958d-e12f6ebfccc6\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"54f59088-b7f2-5c41-89ac-829d2f82257f\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"54f59088-b7f2-5c41-89ac-829d2f82257f\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"9352e569-a8d4-552d-89fd-b2c41c3acd4e\", \"target\": \"ab7e7dab-bfe5-5e74-958d-e12f6ebfccc6\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"9352e569-a8d4-552d-89fd-b2c41c3acd4e\", \"target_node_id\": \"ab7e7dab-bfe5-5e74-958d-e12f6ebfccc6\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"9352e569-a8d4-552d-89fd-b2c41c3acd4e\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"9352e569-a8d4-552d-89fd-b2c41c3acd4e\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"target\": \"ab7e7dab-bfe5-5e74-958d-e12f6ebfccc6\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"target_node_id\": \"ab7e7dab-bfe5-5e74-958d-e12f6ebfccc6\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"9d3f53ce-046d-5fdf-ae22-60e3dd5d2380\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relation\": \"is_part_of\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relationship_name\": \"is_part_of\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"a6d02748-8286-56bd-8f40-759184689587\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"a6d02748-8286-56bd-8f40-759184689587\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"44ae039a-d24c-5cac-8d9b-05239ee9521d\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"44ae039a-d24c-5cac-8d9b-05239ee9521d\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"ee447a13-020c-5f51-b1f0-498c802eb4e1\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"ee447a13-020c-5f51-b1f0-498c802eb4e1\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"61d2a87a-9e25-52e3-baa0-942898b4b13b\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"61d2a87a-9e25-52e3-baa0-942898b4b13b\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"5056f017-17d5-5da6-a7ff-a10235465b31\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"5056f017-17d5-5da6-a7ff-a10235465b31\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"b570265f-01cb-5464-b9de-d6644baa631a\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"b570265f-01cb-5464-b9de-d6644baa631a\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"3dee7627-676d-5676-bb03-c775947265d1\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"3dee7627-676d-5676-bb03-c775947265d1\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"8e68e270-1892-59f9-ae5b-55bce935e59e\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"8e68e270-1892-59f9-ae5b-55bce935e59e\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"f2d368b4-771f-5509-8c04-e6466bba1bdd\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"f2d368b4-771f-5509-8c04-e6466bba1bdd\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"d88fdd53-1cce-5c2b-8271-8fbd8d91cfa3\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"d88fdd53-1cce-5c2b-8271-8fbd8d91cfa3\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"346a3164-8117-5c1b-a17f-38c042994b4a\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"346a3164-8117-5c1b-a17f-38c042994b4a\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"528e5ea0-4b38-508c-9543-c7ad23a8ff09\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"528e5ea0-4b38-508c-9543-c7ad23a8ff09\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"83dc9924-3325-521d-9b7f-afe71513cd1e\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"83dc9924-3325-521d-9b7f-afe71513cd1e\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"264f18ed-2c04-5ae4-973e-5d48d96c5d68\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"264f18ed-2c04-5ae4-973e-5d48d96c5d68\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"7cf6472f-6a69-5645-8dea-1e37517cb3e1\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"7cf6472f-6a69-5645-8dea-1e37517cb3e1\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target_node_id\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to_repository\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to_repository\", \"source_node_id\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target\": \"a6d02748-8286-56bd-8f40-759184689587\", \"relation\": \"created_on\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"created_on\", \"source_node_id\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target_node_id\": \"a6d02748-8286-56bd-8f40-759184689587\", \"ontology_valid\": false}}, {\"source\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target_node_id\": \"ea011d0c-0af8-5566-ad5f-27a095d2df8d\", \"ontology_valid\": false}}, {\"source\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target\": \"44ae039a-d24c-5cac-8d9b-05239ee9521d\", \"relation\": \"updates_function\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"updates_function\", \"source_node_id\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target_node_id\": \"44ae039a-d24c-5cac-8d9b-05239ee9521d\", \"ontology_valid\": false}}, {\"source\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target\": \"ee447a13-020c-5f51-b1f0-498c802eb4e1\", \"relation\": \"updates_function\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"updates_function\", \"source_node_id\": \"3a39ef02-184d-5522-9999-fb20112c62f8\", \"target_node_id\": \"ee447a13-020c-5f51-b1f0-498c802eb4e1\", \"ontology_valid\": false}}, {\"source\": \"44ae039a-d24c-5cac-8d9b-05239ee9521d\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"44ae039a-d24c-5cac-8d9b-05239ee9521d\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"44ae039a-d24c-5cac-8d9b-05239ee9521d\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"44ae039a-d24c-5cac-8d9b-05239ee9521d\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ee447a13-020c-5f51-b1f0-498c802eb4e1\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ee447a13-020c-5f51-b1f0-498c802eb4e1\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ee447a13-020c-5f51-b1f0-498c802eb4e1\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ee447a13-020c-5f51-b1f0-498c802eb4e1\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"target\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"target_node_id\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to_repository\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to_repository\", \"source_node_id\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"target\": \"a6d02748-8286-56bd-8f40-759184689587\", \"relation\": \"created_on\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"created_on\", \"source_node_id\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"target_node_id\": \"a6d02748-8286-56bd-8f40-759184689587\", \"ontology_valid\": false}}, {\"source\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"target\": \"61d2a87a-9e25-52e3-baa0-942898b4b13b\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"98a0ba97-6d41-5170-9a04-c27b469d54b1\", \"target_node_id\": \"61d2a87a-9e25-52e3-baa0-942898b4b13b\", \"ontology_valid\": false}}, {\"source\": \"61d2a87a-9e25-52e3-baa0-942898b4b13b\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"61d2a87a-9e25-52e3-baa0-942898b4b13b\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"61d2a87a-9e25-52e3-baa0-942898b4b13b\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"61d2a87a-9e25-52e3-baa0-942898b4b13b\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to_repository\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to_repository\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"relation\": \"created_on\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"created_on\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"ontology_valid\": false}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"ontology_valid\": false}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"5056f017-17d5-5da6-a7ff-a10235465b31\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"5056f017-17d5-5da6-a7ff-a10235465b31\", \"ontology_valid\": false}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"b570265f-01cb-5464-b9de-d6644baa631a\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"b570265f-01cb-5464-b9de-d6644baa631a\", \"ontology_valid\": false}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"3dee7627-676d-5676-bb03-c775947265d1\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"3dee7627-676d-5676-bb03-c775947265d1\", \"ontology_valid\": false}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"8e68e270-1892-59f9-ae5b-55bce935e59e\", \"relation\": \"updates_function\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"updates_function\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"8e68e270-1892-59f9-ae5b-55bce935e59e\", \"ontology_valid\": false}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"f2d368b4-771f-5509-8c04-e6466bba1bdd\", \"relation\": \"updates_function\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"updates_function\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"f2d368b4-771f-5509-8c04-e6466bba1bdd\", \"ontology_valid\": false}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"d88fdd53-1cce-5c2b-8271-8fbd8d91cfa3\", \"relation\": \"updates_function\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"updates_function\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"d88fdd53-1cce-5c2b-8271-8fbd8d91cfa3\", \"ontology_valid\": false}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"346a3164-8117-5c1b-a17f-38c042994b4a\", \"relation\": \"updates_function\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"updates_function\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"346a3164-8117-5c1b-a17f-38c042994b4a\", \"ontology_valid\": false}}, {\"source\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target\": \"528e5ea0-4b38-508c-9543-c7ad23a8ff09\", \"relation\": \"updates_function\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"updates_function\", \"source_node_id\": \"f940007e-d519-5bb9-b62a-b03ae01b4b14\", \"target_node_id\": \"528e5ea0-4b38-508c-9543-c7ad23a8ff09\", \"ontology_valid\": false}}, {\"source\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5056f017-17d5-5da6-a7ff-a10235465b31\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5056f017-17d5-5da6-a7ff-a10235465b31\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5056f017-17d5-5da6-a7ff-a10235465b31\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5056f017-17d5-5da6-a7ff-a10235465b31\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"b570265f-01cb-5464-b9de-d6644baa631a\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b570265f-01cb-5464-b9de-d6644baa631a\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"b570265f-01cb-5464-b9de-d6644baa631a\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b570265f-01cb-5464-b9de-d6644baa631a\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"3dee7627-676d-5676-bb03-c775947265d1\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3dee7627-676d-5676-bb03-c775947265d1\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"3dee7627-676d-5676-bb03-c775947265d1\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3dee7627-676d-5676-bb03-c775947265d1\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"8e68e270-1892-59f9-ae5b-55bce935e59e\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"8e68e270-1892-59f9-ae5b-55bce935e59e\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"8e68e270-1892-59f9-ae5b-55bce935e59e\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"8e68e270-1892-59f9-ae5b-55bce935e59e\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"f2d368b4-771f-5509-8c04-e6466bba1bdd\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"f2d368b4-771f-5509-8c04-e6466bba1bdd\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"f2d368b4-771f-5509-8c04-e6466bba1bdd\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"f2d368b4-771f-5509-8c04-e6466bba1bdd\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"d88fdd53-1cce-5c2b-8271-8fbd8d91cfa3\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"d88fdd53-1cce-5c2b-8271-8fbd8d91cfa3\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"d88fdd53-1cce-5c2b-8271-8fbd8d91cfa3\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"d88fdd53-1cce-5c2b-8271-8fbd8d91cfa3\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"346a3164-8117-5c1b-a17f-38c042994b4a\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"346a3164-8117-5c1b-a17f-38c042994b4a\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"346a3164-8117-5c1b-a17f-38c042994b4a\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"346a3164-8117-5c1b-a17f-38c042994b4a\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"528e5ea0-4b38-508c-9543-c7ad23a8ff09\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"528e5ea0-4b38-508c-9543-c7ad23a8ff09\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"528e5ea0-4b38-508c-9543-c7ad23a8ff09\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"528e5ea0-4b38-508c-9543-c7ad23a8ff09\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target_node_id\": \"70e6943e-fc90-56e8-a10a-21b9b9391441\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to_repository\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to_repository\", \"source_node_id\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"relation\": \"created_on\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"created_on\", \"source_node_id\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target_node_id\": \"b874c7bb-3fc7-5f66-b15a-5db667601973\", \"ontology_valid\": false}}, {\"source\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target_node_id\": \"0d7386a8-dbb0-5f6e-8adf-8ab8c25f9adc\", \"ontology_valid\": false}}, {\"source\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target\": \"83dc9924-3325-521d-9b7f-afe71513cd1e\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target_node_id\": \"83dc9924-3325-521d-9b7f-afe71513cd1e\", \"ontology_valid\": false}}, {\"source\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target\": \"264f18ed-2c04-5ae4-973e-5d48d96c5d68\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target_node_id\": \"264f18ed-2c04-5ae4-973e-5d48d96c5d68\", \"ontology_valid\": false}}, {\"source\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target\": \"7cf6472f-6a69-5645-8dea-1e37517cb3e1\", \"relation\": \"updates_function\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"updates_function\", \"source_node_id\": \"87460990-b919-50a9-b0ee-c035edd0b32a\", \"target_node_id\": \"7cf6472f-6a69-5645-8dea-1e37517cb3e1\", \"ontology_valid\": false}}, {\"source\": \"83dc9924-3325-521d-9b7f-afe71513cd1e\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"83dc9924-3325-521d-9b7f-afe71513cd1e\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"83dc9924-3325-521d-9b7f-afe71513cd1e\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"83dc9924-3325-521d-9b7f-afe71513cd1e\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"264f18ed-2c04-5ae4-973e-5d48d96c5d68\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"264f18ed-2c04-5ae4-973e-5d48d96c5d68\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"264f18ed-2c04-5ae4-973e-5d48d96c5d68\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"264f18ed-2c04-5ae4-973e-5d48d96c5d68\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7cf6472f-6a69-5645-8dea-1e37517cb3e1\", \"target\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"7cf6472f-6a69-5645-8dea-1e37517cb3e1\", \"target_node_id\": \"b54cb288-bc07-52e3-a04b-2e5bb9da7150\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7cf6472f-6a69-5645-8dea-1e37517cb3e1\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"7cf6472f-6a69-5645-8dea-1e37517cb3e1\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relation\": \"is_part_of\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relationship_name\": \"is_part_of\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"2e54d218-7fdb-53f4-8e4f-19bee9698819\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"2e54d218-7fdb-53f4-8e4f-19bee9698819\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"501b2f6f-beb0-5d79-ad0c-0ed6aeef6726\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"501b2f6f-beb0-5d79-ad0c-0ed6aeef6726\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"32ae6fac-3cb1-5f87-8642-860c520aca16\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"32ae6fac-3cb1-5f87-8642-860c520aca16\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"e8333380-6e39-539e-af59-5daa1ec651c7\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"e8333380-6e39-539e-af59-5daa1ec651c7\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"1808cbe6-f988-5b07-95c2-012f98f352b1\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"1808cbe6-f988-5b07-95c2-012f98f352b1\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"0f987239-1422-5df2-8b13-928f7f7c3c97\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"0f987239-1422-5df2-8b13-928f7f7c3c97\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"77a2c44b-b349-595a-a8ea-e84e81d800b1\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"77a2c44b-b349-595a-a8ea-e84e81d800b1\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"6fcefdb3-9cf8-5191-a1ca-a4cf307ef232\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"6fcefdb3-9cf8-5191-a1ca-a4cf307ef232\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"90a4cbfb-b4b6-5eb2-9396-dbe838a167a1\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"90a4cbfb-b4b6-5eb2-9396-dbe838a167a1\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"c1e21242-9d3c-5592-a2b6-9109282e1ff7\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"c1e21242-9d3c-5592-a2b6-9109282e1ff7\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"target\": \"29c0d211-0d39-579f-bf45-c7a78394c9aa\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"target_node_id\": \"29c0d211-0d39-579f-bf45-c7a78394c9aa\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2e54d218-7fdb-53f4-8e4f-19bee9698819\", \"target\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2e54d218-7fdb-53f4-8e4f-19bee9698819\", \"target_node_id\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2e54d218-7fdb-53f4-8e4f-19bee9698819\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2e54d218-7fdb-53f4-8e4f-19bee9698819\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2e54d218-7fdb-53f4-8e4f-19bee9698819\", \"target\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"relation\": \"contributed_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"contributed_to\", \"source_node_id\": \"2e54d218-7fdb-53f4-8e4f-19bee9698819\", \"target_node_id\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"ontology_valid\": false}}, {\"source\": \"501b2f6f-beb0-5d79-ad0c-0ed6aeef6726\", \"target\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"501b2f6f-beb0-5d79-ad0c-0ed6aeef6726\", \"target_node_id\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"501b2f6f-beb0-5d79-ad0c-0ed6aeef6726\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"501b2f6f-beb0-5d79-ad0c-0ed6aeef6726\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"501b2f6f-beb0-5d79-ad0c-0ed6aeef6726\", \"target\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"relation\": \"co-authored\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"co-authored\", \"source_node_id\": \"501b2f6f-beb0-5d79-ad0c-0ed6aeef6726\", \"target_node_id\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"ontology_valid\": false}}, {\"source\": \"32ae6fac-3cb1-5f87-8642-860c520aca16\", \"target\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"32ae6fac-3cb1-5f87-8642-860c520aca16\", \"target_node_id\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"32ae6fac-3cb1-5f87-8642-860c520aca16\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"32ae6fac-3cb1-5f87-8642-860c520aca16\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"e8333380-6e39-539e-af59-5daa1ec651c7\", \"target\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"e8333380-6e39-539e-af59-5daa1ec651c7\", \"target_node_id\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"e8333380-6e39-539e-af59-5daa1ec651c7\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"e8333380-6e39-539e-af59-5daa1ec651c7\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"1808cbe6-f988-5b07-95c2-012f98f352b1\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"1808cbe6-f988-5b07-95c2-012f98f352b1\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"1808cbe6-f988-5b07-95c2-012f98f352b1\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"1808cbe6-f988-5b07-95c2-012f98f352b1\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"0f987239-1422-5df2-8b13-928f7f7c3c97\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"0f987239-1422-5df2-8b13-928f7f7c3c97\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"0f987239-1422-5df2-8b13-928f7f7c3c97\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"0f987239-1422-5df2-8b13-928f7f7c3c97\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"77a2c44b-b349-595a-a8ea-e84e81d800b1\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"77a2c44b-b349-595a-a8ea-e84e81d800b1\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"77a2c44b-b349-595a-a8ea-e84e81d800b1\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"77a2c44b-b349-595a-a8ea-e84e81d800b1\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"6fcefdb3-9cf8-5191-a1ca-a4cf307ef232\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"6fcefdb3-9cf8-5191-a1ca-a4cf307ef232\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"6fcefdb3-9cf8-5191-a1ca-a4cf307ef232\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"6fcefdb3-9cf8-5191-a1ca-a4cf307ef232\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"90a4cbfb-b4b6-5eb2-9396-dbe838a167a1\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"90a4cbfb-b4b6-5eb2-9396-dbe838a167a1\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"90a4cbfb-b4b6-5eb2-9396-dbe838a167a1\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"90a4cbfb-b4b6-5eb2-9396-dbe838a167a1\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"c1e21242-9d3c-5592-a2b6-9109282e1ff7\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"c1e21242-9d3c-5592-a2b6-9109282e1ff7\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"c1e21242-9d3c-5592-a2b6-9109282e1ff7\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"c1e21242-9d3c-5592-a2b6-9109282e1ff7\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"target\": \"28df104a-f505-573c-b5a2-d6deac9878de\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"target_node_id\": \"28df104a-f505-573c-b5a2-d6deac9878de\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"related_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"related_to\", \"source_node_id\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"target\": \"1808cbe6-f988-5b07-95c2-012f98f352b1\", \"relation\": \"dated\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"dated\", \"source_node_id\": \"e92d55ce-3dc8-59fd-946a-52995a5b8198\", \"target_node_id\": \"1808cbe6-f988-5b07-95c2-012f98f352b1\", \"ontology_valid\": false}}, {\"source\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"target\": \"28df104a-f505-573c-b5a2-d6deac9878de\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"target_node_id\": \"28df104a-f505-573c-b5a2-d6deac9878de\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"related_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"related_to\", \"source_node_id\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"target\": \"0f987239-1422-5df2-8b13-928f7f7c3c97\", \"relation\": \"dated\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"dated\", \"source_node_id\": \"130dd8e2-fce3-5fad-88a6-0a2a914cc875\", \"target_node_id\": \"0f987239-1422-5df2-8b13-928f7f7c3c97\", \"ontology_valid\": false}}, {\"source\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"target\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"target_node_id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"target\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"relation\": \"part_of\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"part_of\", \"source_node_id\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"target_node_id\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"ontology_valid\": false}}, {\"source\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"target\": \"77a2c44b-b349-595a-a8ea-e84e81d800b1\", \"relation\": \"dated\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"dated\", \"source_node_id\": \"85154c8e-7c33-5f09-b9ec-5b61a54ab0a9\", \"target_node_id\": \"77a2c44b-b349-595a-a8ea-e84e81d800b1\", \"ontology_valid\": false}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relation\": \"is_part_of\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relationship_name\": \"is_part_of\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"6a84c71d-ba6b-540e-8c5d-45506c3a0bb7\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"6a84c71d-ba6b-540e-8c5d-45506c3a0bb7\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"1b1ec453-098e-56e8-9517-7c532d67d280\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"1b1ec453-098e-56e8-9517-7c532d67d280\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"3b618aac-942a-58e6-a011-9f9e2a362e9e\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"3b618aac-942a-58e6-a011-9f9e2a362e9e\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"7a25056e-7d7b-50d8-842d-a8bfc3dd8526\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"7a25056e-7d7b-50d8-842d-a8bfc3dd8526\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"6a84c71d-ba6b-540e-8c5d-45506c3a0bb7\", \"target\": \"c173fcdb-8139-5426-b0b1-dd5013704063\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"6a84c71d-ba6b-540e-8c5d-45506c3a0bb7\", \"target_node_id\": \"c173fcdb-8139-5426-b0b1-dd5013704063\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"6a84c71d-ba6b-540e-8c5d-45506c3a0bb7\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"6a84c71d-ba6b-540e-8c5d-45506c3a0bb7\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"1b1ec453-098e-56e8-9517-7c532d67d280\", \"target\": \"c173fcdb-8139-5426-b0b1-dd5013704063\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"1b1ec453-098e-56e8-9517-7c532d67d280\", \"target_node_id\": \"c173fcdb-8139-5426-b0b1-dd5013704063\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"1b1ec453-098e-56e8-9517-7c532d67d280\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"1b1ec453-098e-56e8-9517-7c532d67d280\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target_node_id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"relation\": \"belongs_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to\", \"source_node_id\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target_node_id\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"ontology_valid\": false}}, {\"source\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target\": \"6a84c71d-ba6b-540e-8c5d-45506c3a0bb7\", \"relation\": \"implements\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"implements\", \"source_node_id\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target_node_id\": \"6a84c71d-ba6b-540e-8c5d-45506c3a0bb7\", \"ontology_valid\": false}}, {\"source\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target\": \"3b618aac-942a-58e6-a011-9f9e2a362e9e\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target_node_id\": \"3b618aac-942a-58e6-a011-9f9e2a362e9e\", \"ontology_valid\": false}}, {\"source\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target\": \"7a25056e-7d7b-50d8-842d-a8bfc3dd8526\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target_node_id\": \"7a25056e-7d7b-50d8-842d-a8bfc3dd8526\", \"ontology_valid\": false}}, {\"source\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"87447549-3162-534f-a9a0-08f6d678326d\", \"target_node_id\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"ontology_valid\": false}}, {\"source\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"target\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"target_node_id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"target\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"relation\": \"belongs_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to\", \"source_node_id\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"target_node_id\": \"568422d9-3cdf-5803-b6fd-8398e4970976\", \"ontology_valid\": false}}, {\"source\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"target\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"377c8aab-bea6-5d48-848f-67c99e9b0546\", \"target_node_id\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"ontology_valid\": false}}, {\"source\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"target\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"target_node_id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to\", \"source_node_id\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"target\": \"1b1ec453-098e-56e8-9517-7c532d67d280\", \"relation\": \"implements\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"implements\", \"source_node_id\": \"75a4cd39-80d6-598a-8b62-454bd18f0057\", \"target_node_id\": \"1b1ec453-098e-56e8-9517-7c532d67d280\", \"ontology_valid\": false}}, {\"source\": \"3b618aac-942a-58e6-a011-9f9e2a362e9e\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3b618aac-942a-58e6-a011-9f9e2a362e9e\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"3b618aac-942a-58e6-a011-9f9e2a362e9e\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3b618aac-942a-58e6-a011-9f9e2a362e9e\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7a25056e-7d7b-50d8-842d-a8bfc3dd8526\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"7a25056e-7d7b-50d8-842d-a8bfc3dd8526\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7a25056e-7d7b-50d8-842d-a8bfc3dd8526\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"7a25056e-7d7b-50d8-842d-a8bfc3dd8526\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5864a9df-9134-5f1d-9641-c757b832248e\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relation\": \"is_part_of\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"9394ac08-e7de-5ada-acff-5581e59c0f73\", \"relationship_name\": \"is_part_of\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"70190044-c895-51b1-b8e5-0967d1d98d6b\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"70190044-c895-51b1-b8e5-0967d1d98d6b\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"55ad1409-dacf-5785-8bef-0e3d3d3c489e\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"55ad1409-dacf-5785-8bef-0e3d3d3c489e\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"f8128b93-fc94-5903-991e-b6a26d5d7318\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"f8128b93-fc94-5903-991e-b6a26d5d7318\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"810f71e4-6be0-5be0-8159-9052cf429c70\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"810f71e4-6be0-5be0-8159-9052cf429c70\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"3603a4bb-1460-5991-9a6e-774d4d278a76\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"3603a4bb-1460-5991-9a6e-774d4d278a76\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"ff498592-94eb-570a-8de3-e646be7f4626\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"ff498592-94eb-570a-8de3-e646be7f4626\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"12b45b93-9bba-5471-900c-73b014abbc7d\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"12b45b93-9bba-5471-900c-73b014abbc7d\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"d7aa533c-108a-5aa3-8297-3f9002cf2498\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"d7aa533c-108a-5aa3-8297-3f9002cf2498\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"3e2a0357-cd1b-568b-8580-2a6c5d24e905\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"3e2a0357-cd1b-568b-8580-2a6c5d24e905\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"be6e1c9e-9414-5912-9111-5f918059105f\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"be6e1c9e-9414-5912-9111-5f918059105f\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"898a177a-3dd2-5b0e-8f97-982d8b68d238\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"898a177a-3dd2-5b0e-8f97-982d8b68d238\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"5f2af220-ae8f-5d91-a7c6-945c93a6d2c4\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"5f2af220-ae8f-5d91-a7c6-945c93a6d2c4\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"d23e1ff3-4e40-55dd-85c0-d1a80398893a\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"d23e1ff3-4e40-55dd-85c0-d1a80398893a\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"b5359096-9f7c-51e8-8437-26dab203eb96\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"b5359096-9f7c-51e8-8437-26dab203eb96\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"c1c1ca06-f2b5-5ebc-a92a-8fbf1a7dd3fe\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"c1c1ca06-f2b5-5ebc-a92a-8fbf1a7dd3fe\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"5a0dc17b-1997-5313-8b7c-9d41d8c588fc\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"5a0dc17b-1997-5313-8b7c-9d41d8c588fc\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"616979aa-cff4-5b0b-a6df-c9da2cff5e40\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"616979aa-cff4-5b0b-a6df-c9da2cff5e40\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"2f1c53c1-e205-5a66-83fe-55b3eda889c5\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"2f1c53c1-e205-5a66-83fe-55b3eda889c5\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"ed041971-c383-5fa0-8b1d-a628516a7e69\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"ed041971-c383-5fa0-8b1d-a628516a7e69\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"34fc46f8-45fc-5b5c-990d-f94855f9c5a7\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"34fc46f8-45fc-5b5c-990d-f94855f9c5a7\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"ec517732-14a5-57d4-b392-7090ecdad98b\", \"relation\": \"contains\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"ec517732-14a5-57d4-b392-7090ecdad98b\", \"relationship_name\": \"contains\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"70190044-c895-51b1-b8e5-0967d1d98d6b\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"70190044-c895-51b1-b8e5-0967d1d98d6b\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"70190044-c895-51b1-b8e5-0967d1d98d6b\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"70190044-c895-51b1-b8e5-0967d1d98d6b\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"55ad1409-dacf-5785-8bef-0e3d3d3c489e\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"55ad1409-dacf-5785-8bef-0e3d3d3c489e\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"55ad1409-dacf-5785-8bef-0e3d3d3c489e\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"55ad1409-dacf-5785-8bef-0e3d3d3c489e\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"f8128b93-fc94-5903-991e-b6a26d5d7318\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"f8128b93-fc94-5903-991e-b6a26d5d7318\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"f8128b93-fc94-5903-991e-b6a26d5d7318\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"f8128b93-fc94-5903-991e-b6a26d5d7318\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"810f71e4-6be0-5be0-8159-9052cf429c70\", \"target\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"810f71e4-6be0-5be0-8159-9052cf429c70\", \"target_node_id\": \"d61d99ac-b291-5666-9748-3e80e1c8b56a\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"810f71e4-6be0-5be0-8159-9052cf429c70\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"810f71e4-6be0-5be0-8159-9052cf429c70\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"70190044-c895-51b1-b8e5-0967d1d98d6b\", \"relation\": \"occurred_on\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"occurred_on\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"70190044-c895-51b1-b8e5-0967d1d98d6b\", \"ontology_valid\": false}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"3603a4bb-1460-5991-9a6e-774d4d278a76\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"3603a4bb-1460-5991-9a6e-774d4d278a76\", \"ontology_valid\": false}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"ff498592-94eb-570a-8de3-e646be7f4626\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"ff498592-94eb-570a-8de3-e646be7f4626\", \"ontology_valid\": false}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"12b45b93-9bba-5471-900c-73b014abbc7d\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"12b45b93-9bba-5471-900c-73b014abbc7d\", \"ontology_valid\": false}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"d7aa533c-108a-5aa3-8297-3f9002cf2498\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"d7aa533c-108a-5aa3-8297-3f9002cf2498\", \"ontology_valid\": false}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"0f10dc6d-bfc1-5bfa-b966-12ca64c92043\", \"ontology_valid\": false}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"3e2a0357-cd1b-568b-8580-2a6c5d24e905\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"3e2a0357-cd1b-568b-8580-2a6c5d24e905\", \"ontology_valid\": false}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"be6e1c9e-9414-5912-9111-5f918059105f\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"be6e1c9e-9414-5912-9111-5f918059105f\", \"ontology_valid\": false}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"898a177a-3dd2-5b0e-8f97-982d8b68d238\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"898a177a-3dd2-5b0e-8f97-982d8b68d238\", \"ontology_valid\": false}}, {\"source\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target\": \"c1c1ca06-f2b5-5ebc-a92a-8fbf1a7dd3fe\", \"relation\": \"references\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"references\", \"source_node_id\": \"5cc17409-bc39-5537-91b6-eafef4fdf76c\", \"target_node_id\": \"c1c1ca06-f2b5-5ebc-a92a-8fbf1a7dd3fe\", \"ontology_valid\": false}}, {\"source\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target_node_id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to\", \"source_node_id\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target\": \"55ad1409-dacf-5785-8bef-0e3d3d3c489e\", \"relation\": \"occurred_on\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"occurred_on\", \"source_node_id\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target_node_id\": \"55ad1409-dacf-5785-8bef-0e3d3d3c489e\", \"ontology_valid\": false}}, {\"source\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target\": \"5f2af220-ae8f-5d91-a7c6-945c93a6d2c4\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target_node_id\": \"5f2af220-ae8f-5d91-a7c6-945c93a6d2c4\", \"ontology_valid\": false}}, {\"source\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target\": \"5a0dc17b-1997-5313-8b7c-9d41d8c588fc\", \"relation\": \"references\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"references\", \"source_node_id\": \"2dff7b14-e270-517d-9e76-1f5eaebf9cab\", \"target_node_id\": \"5a0dc17b-1997-5313-8b7c-9d41d8c588fc\", \"ontology_valid\": false}}, {\"source\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target_node_id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to\", \"source_node_id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target\": \"f8128b93-fc94-5903-991e-b6a26d5d7318\", \"relation\": \"occurred_on\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"occurred_on\", \"source_node_id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target_node_id\": \"f8128b93-fc94-5903-991e-b6a26d5d7318\", \"ontology_valid\": false}}, {\"source\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target_node_id\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"ontology_valid\": false}}, {\"source\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target_node_id\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"ontology_valid\": false}}, {\"source\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target_node_id\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"ontology_valid\": false}}, {\"source\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target_node_id\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"ontology_valid\": false}}, {\"source\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target\": \"616979aa-cff4-5b0b-a6df-c9da2cff5e40\", \"relation\": \"references\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"references\", \"source_node_id\": \"1d2beac0-8d4a-5f77-a065-76ca65f9809f\", \"target_node_id\": \"616979aa-cff4-5b0b-a6df-c9da2cff5e40\", \"ontology_valid\": false}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to\", \"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"relation\": \"occurred_on\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"occurred_on\", \"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"ontology_valid\": false}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"ontology_valid\": false}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"ontology_valid\": false}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"ontology_valid\": false}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"2f1c53c1-e205-5a66-83fe-55b3eda889c5\", \"relation\": \"references\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"references\", \"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"2f1c53c1-e205-5a66-83fe-55b3eda889c5\", \"ontology_valid\": false}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"relation\": \"references\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"references\", \"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"ontology_valid\": false}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"ed041971-c383-5fa0-8b1d-a628516a7e69\", \"relation\": \"fixes\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"fixes\", \"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"ed041971-c383-5fa0-8b1d-a628516a7e69\", \"ontology_valid\": false}}, {\"source\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target\": \"ec517732-14a5-57d4-b392-7090ecdad98b\", \"relation\": \"co_authored_by\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"co_authored_by\", \"source_node_id\": \"ebe4c851-61a8-5b7a-9297-0404d13e9ca0\", \"target_node_id\": \"ec517732-14a5-57d4-b392-7090ecdad98b\", \"ontology_valid\": false}}, {\"source\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target_node_id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to\", \"source_node_id\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"relation\": \"occurred_on\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"occurred_on\", \"source_node_id\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target_node_id\": \"eac50477-84ed-52f4-884d-56c2f23af1ba\", \"ontology_valid\": false}}, {\"source\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target_node_id\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"ontology_valid\": false}}, {\"source\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target_node_id\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"ontology_valid\": false}}, {\"source\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target_node_id\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"ontology_valid\": false}}, {\"source\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"relation\": \"references\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"references\", \"source_node_id\": \"6de15eca-dbae-55d9-a3ca-091f24a10b6f\", \"target_node_id\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"ontology_valid\": false}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"fce67ae1-b0fd-56ac-82ae-f798e99387ad\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"relation\": \"belongs_to\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"belongs_to\", \"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"49d95d69-8f36-5209-add2-b47f3c1a4c64\", \"ontology_valid\": false}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"810f71e4-6be0-5be0-8159-9052cf429c70\", \"relation\": \"occurred_on\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"occurred_on\", \"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"810f71e4-6be0-5be0-8159-9052cf429c70\", \"ontology_valid\": false}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"ontology_valid\": false}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"ontology_valid\": false}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"ontology_valid\": false}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"ontology_valid\": false}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"d23e1ff3-4e40-55dd-85c0-d1a80398893a\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"d23e1ff3-4e40-55dd-85c0-d1a80398893a\", \"ontology_valid\": false}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"b5359096-9f7c-51e8-8437-26dab203eb96\", \"relation\": \"modifies\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"modifies\", \"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"b5359096-9f7c-51e8-8437-26dab203eb96\", \"ontology_valid\": false}}, {\"source\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target\": \"34fc46f8-45fc-5b5c-990d-f94855f9c5a7\", \"relation\": \"references\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"relationship_name\": \"references\", \"source_node_id\": \"2068f8ca-f270-5f63-b2fb-4227315ca651\", \"target_node_id\": \"34fc46f8-45fc-5b5c-990d-f94855f9c5a7\", \"ontology_valid\": false}}, {\"source\": \"3603a4bb-1460-5991-9a6e-774d4d278a76\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3603a4bb-1460-5991-9a6e-774d4d278a76\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"3603a4bb-1460-5991-9a6e-774d4d278a76\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3603a4bb-1460-5991-9a6e-774d4d278a76\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ff498592-94eb-570a-8de3-e646be7f4626\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ff498592-94eb-570a-8de3-e646be7f4626\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ff498592-94eb-570a-8de3-e646be7f4626\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ff498592-94eb-570a-8de3-e646be7f4626\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"12b45b93-9bba-5471-900c-73b014abbc7d\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"12b45b93-9bba-5471-900c-73b014abbc7d\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"12b45b93-9bba-5471-900c-73b014abbc7d\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"12b45b93-9bba-5471-900c-73b014abbc7d\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"d7aa533c-108a-5aa3-8297-3f9002cf2498\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"d7aa533c-108a-5aa3-8297-3f9002cf2498\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"d7aa533c-108a-5aa3-8297-3f9002cf2498\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"d7aa533c-108a-5aa3-8297-3f9002cf2498\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"3e2a0357-cd1b-568b-8580-2a6c5d24e905\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3e2a0357-cd1b-568b-8580-2a6c5d24e905\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"3e2a0357-cd1b-568b-8580-2a6c5d24e905\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3e2a0357-cd1b-568b-8580-2a6c5d24e905\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"be6e1c9e-9414-5912-9111-5f918059105f\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"be6e1c9e-9414-5912-9111-5f918059105f\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"be6e1c9e-9414-5912-9111-5f918059105f\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"be6e1c9e-9414-5912-9111-5f918059105f\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"898a177a-3dd2-5b0e-8f97-982d8b68d238\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"898a177a-3dd2-5b0e-8f97-982d8b68d238\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"898a177a-3dd2-5b0e-8f97-982d8b68d238\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"898a177a-3dd2-5b0e-8f97-982d8b68d238\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"f29e4a8b-07f0-5efc-8d2c-fd93650b43e8\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"7e4044e3-1d66-5614-8b9f-d97f52a3105c\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"d9226665-d77c-5b44-b25e-05800d9682b4\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5f2af220-ae8f-5d91-a7c6-945c93a6d2c4\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5f2af220-ae8f-5d91-a7c6-945c93a6d2c4\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5f2af220-ae8f-5d91-a7c6-945c93a6d2c4\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5f2af220-ae8f-5d91-a7c6-945c93a6d2c4\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"82ab9b27-9043-5738-ba5e-e7aaf7a35266\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"fe9edcd4-a128-5275-b8e8-10227437e5c0\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"9c69aefe-25a4-5b44-95d7-87c8603c104f\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"8fade6b0-d37e-5330-9c3b-d4dcdceaab4d\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"d23e1ff3-4e40-55dd-85c0-d1a80398893a\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"d23e1ff3-4e40-55dd-85c0-d1a80398893a\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"d23e1ff3-4e40-55dd-85c0-d1a80398893a\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"d23e1ff3-4e40-55dd-85c0-d1a80398893a\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"b5359096-9f7c-51e8-8437-26dab203eb96\", \"target\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b5359096-9f7c-51e8-8437-26dab203eb96\", \"target_node_id\": \"6b8d3127-518d-57e3-a2b8-3a0748c5c73c\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"b5359096-9f7c-51e8-8437-26dab203eb96\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b5359096-9f7c-51e8-8437-26dab203eb96\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"c1c1ca06-f2b5-5ebc-a92a-8fbf1a7dd3fe\", \"target\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"c1c1ca06-f2b5-5ebc-a92a-8fbf1a7dd3fe\", \"target_node_id\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"c1c1ca06-f2b5-5ebc-a92a-8fbf1a7dd3fe\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"c1c1ca06-f2b5-5ebc-a92a-8fbf1a7dd3fe\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a0dc17b-1997-5313-8b7c-9d41d8c588fc\", \"target\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a0dc17b-1997-5313-8b7c-9d41d8c588fc\", \"target_node_id\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"5a0dc17b-1997-5313-8b7c-9d41d8c588fc\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"5a0dc17b-1997-5313-8b7c-9d41d8c588fc\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"616979aa-cff4-5b0b-a6df-c9da2cff5e40\", \"target\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"616979aa-cff4-5b0b-a6df-c9da2cff5e40\", \"target_node_id\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"616979aa-cff4-5b0b-a6df-c9da2cff5e40\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"616979aa-cff4-5b0b-a6df-c9da2cff5e40\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2f1c53c1-e205-5a66-83fe-55b3eda889c5\", \"target\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2f1c53c1-e205-5a66-83fe-55b3eda889c5\", \"target_node_id\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"2f1c53c1-e205-5a66-83fe-55b3eda889c5\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"2f1c53c1-e205-5a66-83fe-55b3eda889c5\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ed041971-c383-5fa0-8b1d-a628516a7e69\", \"target\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ed041971-c383-5fa0-8b1d-a628516a7e69\", \"target_node_id\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ed041971-c383-5fa0-8b1d-a628516a7e69\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ed041971-c383-5fa0-8b1d-a628516a7e69\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"target\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"target_node_id\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"51702245-382f-57e0-82dc-e4ff29e31b77\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"34fc46f8-45fc-5b5c-990d-f94855f9c5a7\", \"target\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"34fc46f8-45fc-5b5c-990d-f94855f9c5a7\", \"target_node_id\": \"54c17410-0d01-5596-be63-17324d8dc8f5\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"34fc46f8-45fc-5b5c-990d-f94855f9c5a7\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"34fc46f8-45fc-5b5c-990d-f94855f9c5a7\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ec517732-14a5-57d4-b392-7090ecdad98b\", \"target\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"relation\": \"is_a\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ec517732-14a5-57d4-b392-7090ecdad98b\", \"target_node_id\": \"d072ba0f-e1a9-58bf-9974-e1802adc8134\", \"relationship_name\": \"is_a\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"ec517732-14a5-57d4-b392-7090ecdad98b\", \"target\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relation\": \"belongs_to_set\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"ec517732-14a5-57d4-b392-7090ecdad98b\", \"target_node_id\": \"addd828f-90d1-5016-a5d9-5130986d98e8\", \"relationship_name\": \"belongs_to_set\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"20d428d5-69c2-5984-ad87-e014015a980e\", \"target\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"relation\": \"made_from\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"20d428d5-69c2-5984-ad87-e014015a980e\", \"target_node_id\": \"269ac584-ebf9-5b1c-9098-8b2a04b4aab0\", \"relationship_name\": \"made_from\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"84762b42-bb4a-5462-b337-17c63fc2c63a\", \"target\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"relation\": \"made_from\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"84762b42-bb4a-5462-b337-17c63fc2c63a\", \"target_node_id\": \"2b9a4d93-c51c-5890-ae06-9b65cb3a828c\", \"relationship_name\": \"made_from\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"b31eb38a-8140-5b4b-82c7-d28f7cd83623\", \"target\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"relation\": \"made_from\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"b31eb38a-8140-5b4b-82c7-d28f7cd83623\", \"target_node_id\": \"05f47673-a9f2-5c9a-a251-8a4c2daa4ce7\", \"relationship_name\": \"made_from\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"e4188392-d5b0-515b-8288-6ee815aae589\", \"target\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"relation\": \"made_from\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"e4188392-d5b0-515b-8288-6ee815aae589\", \"target_node_id\": \"4839e277-a36c-596f-8398-c9329eb7fcb6\", \"relationship_name\": \"made_from\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"235261d4-73b2-5671-a49a-1a8369a533ed\", \"target\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"relation\": \"made_from\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"235261d4-73b2-5671-a49a-1a8369a533ed\", \"target_node_id\": \"5a5105db-64d3-50c0-9882-fc9672684a18\", \"relationship_name\": \"made_from\", \"updated_at\": \"2025-09-06 07:00:57\"}}, {\"source\": \"3be8ba02-4d70-59c7-b7df-b81550d37130\", \"target\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"relation\": \"made_from\", \"weight\": null, \"all_weights\": {}, \"relationship_type\": null, \"edge_info\": {\"source_node_id\": \"3be8ba02-4d70-59c7-b7df-b81550d37130\", \"target_node_id\": \"4e8f2729-6197-5844-abde-99f20f4121a4\", \"relationship_name\": \"made_from\", \"updated_at\": \"2025-09-06 07:00:57\"}}];\\n\\n var svg = d3.select(\"svg\"),\\n width = window.innerWidth,\\n height = window.innerHeight;\\n\\n var container = svg.append(\"g\");\\n var tooltip = d3.select(\"#tooltip\");\\n\\n var simulation = d3.forceSimulation(nodes)\\n .force(\"link\", d3.forceLink(links).id(d => d.id).strength(0.1))\\n .force(\"charge\", d3.forceManyBody().strength(-275))\\n .force(\"center\", d3.forceCenter(width / 2, height / 2))\\n .force(\"x\", d3.forceX().strength(0.1).x(width / 2))\\n .force(\"y\", d3.forceY().strength(0.1).y(height / 2));\\n\\n var link = container.append(\"g\")\\n .attr(\"class\", \"links\")\\n .selectAll(\"line\")\\n .data(links)\\n .enter().append(\"line\")\\n .attr(\"stroke-width\", d => {\\n if (d.weight) return Math.max(2, d.weight * 5);\\n if (d.all_weights && Object.keys(d.all_weights).length > 0) {\\n var avgWeight = Object.values(d.all_weights).reduce((a, b) => a + b, 0) / Object.values(d.all_weights).length;\\n return Math.max(2, avgWeight * 5);\\n }\\n return 2;\\n })\\n .attr(\"class\", d => {\\n if (d.all_weights && Object.keys(d.all_weights).length > 1) return \"multi-weighted\";\\n if (d.weight || (d.all_weights && Object.keys(d.all_weights).length > 0)) return \"weighted\";\\n return \"\";\\n })\\n .on(\"mouseover\", function(d) {\\n // Create tooltip content for edge\\n var content = \"<strong>Edge Information</strong><br/>\";\\n content += \"Relationship: \" + d.relation + \"<br/>\";\\n \\n // Show all weights\\n if (d.all_weights && Object.keys(d.all_weights).length > 0) {\\n content += \"<strong>Weights:</strong><br/>\";\\n Object.keys(d.all_weights).forEach(function(weightName) {\\n content += \" \" + weightName + \": \" + d.all_weights[weightName] + \"<br/>\";\\n });\\n } else if (d.weight !== null && d.weight !== undefined) {\\n content += \"Weight: \" + d.weight + \"<br/>\";\\n }\\n \\n if (d.relationship_type) {\\n content += \"Type: \" + d.relationship_type + \"<br/>\";\\n }\\n \\n // Add other edge properties\\n if (d.edge_info) {\\n Object.keys(d.edge_info).forEach(function(key) {\\n if (key !== \\'weight\\' && key !== \\'weights\\' && key !== \\'relationship_type\\' && \\n key !== \\'source_node_id\\' && key !== \\'target_node_id\\' && \\n key !== \\'relationship_name\\' && key !== \\'updated_at\\' && \\n !key.startsWith(\\'weight_\\')) {\\n content += key + \": \" + d.edge_info[key] + \"<br/>\";\\n }\\n });\\n }\\n \\n tooltip.html(content)\\n .style(\"left\", (d3.event.pageX + 10) + \"px\")\\n .style(\"top\", (d3.event.pageY - 10) + \"px\")\\n .style(\"opacity\", 1);\\n })\\n .on(\"mouseout\", function(d) {\\n tooltip.style(\"opacity\", 0);\\n });\\n\\n var edgeLabels = container.append(\"g\")\\n .attr(\"class\", \"edge-labels\")\\n .selectAll(\"text\")\\n .data(links)\\n .enter().append(\"text\")\\n .attr(\"class\", \"edge-label\")\\n .text(d => {\\n var label = d.relation;\\n if (d.all_weights && Object.keys(d.all_weights).length > 1) {\\n // Show count of weights for multiple weights\\n label += \" (\" + Object.keys(d.all_weights).length + \" weights)\";\\n } else if (d.weight) {\\n label += \" (\" + d.weight + \")\";\\n } else if (d.all_weights && Object.keys(d.all_weights).length === 1) {\\n var singleWeight = Object.values(d.all_weights)[0];\\n label += \" (\" + singleWeight + \")\";\\n }\\n return label;\\n });\\n\\n var nodeGroup = container.append(\"g\")\\n .attr(\"class\", \"nodes\")\\n .selectAll(\"g\")\\n .data(nodes)\\n .enter().append(\"g\");\\n\\n var node = nodeGroup.append(\"circle\")\\n .attr(\"r\", 13)\\n .attr(\"fill\", d => d.color)\\n .call(d3.drag()\\n .on(\"start\", dragstarted)\\n .on(\"drag\", dragged)\\n .on(\"end\", dragended));\\n\\n nodeGroup.append(\"text\")\\n .attr(\"class\", \"node-label\")\\n .attr(\"dy\", 4)\\n .attr(\"text-anchor\", \"middle\")\\n .text(d => d.name);\\n\\n node.append(\"title\").text(d => JSON.stringify(d));\\n\\n simulation.on(\"tick\", function() {\\n link.attr(\"x1\", d => d.source.x)\\n .attr(\"y1\", d => d.source.y)\\n .attr(\"x2\", d => d.target.x)\\n .attr(\"y2\", d => d.target.y);\\n\\n edgeLabels\\n .attr(\"x\", d => (d.source.x + d.target.x) / 2)\\n .attr(\"y\", d => (d.source.y + d.target.y) / 2 - 5);\\n\\n node.attr(\"cx\", d => d.x)\\n .attr(\"cy\", d => d.y);\\n\\n nodeGroup.select(\"text\")\\n .attr(\"x\", d => d.x)\\n .attr(\"y\", d => d.y)\\n .attr(\"dy\", 4)\\n .attr(\"text-anchor\", \"middle\");\\n });\\n\\n svg.call(d3.zoom().on(\"zoom\", function() {\\n container.attr(\"transform\", d3.event.transform);\\n }));\\n\\n function dragstarted(d) {\\n if (!d3.event.active) simulation.alphaTarget(0.3).restart();\\n d.fx = d.x;\\n d.fy = d.y;\\n }\\n\\n function dragged(d) {\\n d.fx = d3.event.x;\\n d.fy = d3.event.y;\\n }\\n\\n function dragended(d) {\\n if (!d3.event.active) simulation.alphaTarget(0);\\n d.fx = null;\\n d.fy = null;\\n }\\n\\n window.addEventListener(\"resize\", function() {\\n width = window.innerWidth;\\n height = window.innerHeight;\\n svg.attr(\"width\", width).attr(\"height\", height);\\n simulation.force(\"center\", d3.forceCenter(width / 2, height / 2));\\n simulation.alpha(1).restart();\\n });\\n </script>\\n\\n <svg style=\"position: fixed; bottom: 10px; right: 10px; width: 150px; height: auto; z-index: 9999;\" viewBox=\"0 0 158 44\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.7496 4.92654C7.83308 4.92654 4.8585 7.94279 4.8585 11.3612V14.9304C4.8585 18.3488 7.83308 21.3651 11.7496 21.3651C13.6831 21.3651 15.0217 20.8121 16.9551 19.3543C18.0458 18.5499 19.5331 18.8013 20.3263 19.9072C21.1195 21.0132 20.8717 22.5213 19.781 23.3257C17.3518 25.0851 15.0217 26.2414 11.7 26.2414C5.35425 26.2414 0 21.2646 0 14.9304V11.3612C0 4.97681 5.35425 0.0502739 11.7 0.0502739C15.0217 0.0502739 17.3518 1.2065 19.781 2.96598C20.8717 3.77032 21.1195 5.27843 20.3263 6.38439C19.5331 7.49035 18.0458 7.69144 16.9551 6.93737C15.0217 5.52979 13.6831 4.92654 11.7496 4.92654ZM35.5463 4.92654C31.7289 4.92654 28.6552 8.04333 28.6552 11.8639V14.478C28.6552 18.2986 31.7289 21.4154 35.5463 21.4154C39.3141 21.4154 42.3878 18.2986 42.3878 14.478V11.8639C42.3878 8.04333 39.3141 4.92654 35.5463 4.92654ZM23.7967 11.8639C23.7967 5.32871 29.0518 0 35.5463 0C42.0408 0 47.2463 5.32871 47.2463 11.8639V14.478C47.2463 21.0132 42.0408 26.3419 35.5463 26.3419C29.0518 26.3419 23.7967 21.0635 23.7967 14.478V11.8639ZM63.3091 5.07736C59.4917 5.07736 56.418 8.19415 56.418 12.0147C56.418 15.8353 59.4917 18.9521 63.3091 18.9521C67.1265 18.9521 70.1506 15.8856 70.1506 12.0147C70.1506 8.14388 67.0769 5.07736 63.3091 5.07736ZM51.5595 11.9645C51.5595 5.42925 56.8146 0.150814 63.3091 0.150814C66.0854 0.150814 68.5642 1.10596 70.5968 2.71463L72.4311 0.904876C73.3731 -0.0502693 74.9099 -0.0502693 75.8519 0.904876C76.7938 1.86002 76.7938 3.41841 75.8519 4.37356L73.7201 6.53521C74.5629 8.19414 75.0587 10.0542 75.0587 12.0147C75.0587 18.4997 69.8532 23.8284 63.3587 23.8284C63.3091 23.8284 63.2099 23.8284 63.1603 23.8284H58.0044C57.1616 23.8284 56.4675 24.5322 56.4675 25.3868C56.4675 26.2414 57.1616 26.9452 58.0044 26.9452H64.6476H66.7794C68.5146 26.9452 70.3489 27.4479 71.7866 28.6041C73.2739 29.8106 74.2159 31.5701 74.4142 33.7317C74.7116 37.6026 72.0345 40.2166 69.8532 41.0713L63.8048 43.7859C62.5654 44.3389 61.1277 43.7859 60.6319 42.5291C60.0866 41.2723 60.6319 39.8648 61.8714 39.3118L68.0188 36.5972C68.0684 36.5972 68.118 36.5469 68.1675 36.5469C68.4154 36.4463 68.8616 36.1447 69.2087 35.6923C69.5061 35.2398 69.7044 34.7371 69.6548 34.1339C69.6053 33.229 69.2582 32.7263 68.8616 32.4247C68.4154 32.0728 67.7214 31.8214 66.8786 31.8214H58.2027C58.1531 31.8214 58.1531 31.8214 58.1035 31.8214H58.054C54.534 31.8214 51.6586 28.956 51.6586 25.3868C51.6586 23.0743 52.8485 21.0635 54.6828 19.9072C52.6997 17.7959 51.5595 15.031 51.5595 11.9645ZM90.8736 5.07736C87.0562 5.07736 83.9824 8.19415 83.9824 12.0147V23.9289C83.9824 25.2862 82.8917 26.3922 81.5532 26.3922C80.2146 26.3922 79.1239 25.2862 79.1239 23.9289V11.9645C79.1239 5.42925 84.379 0.150814 90.824 0.150814C97.2689 0.150814 102.524 5.42925 102.524 11.9645V23.8786C102.524 25.2359 101.433 26.3419 100.095 26.3419C98.7562 26.3419 97.6655 25.2359 97.6655 23.8786V11.9645C97.7647 8.14387 94.6414 5.07736 90.8736 5.07736ZM119.43 5.07736C115.513 5.07736 112.39 8.24441 112.39 12.065V14.5785C112.39 18.4494 115.513 21.5662 119.43 21.5662C120.768 21.5662 122.057 21.164 123.098 20.5105C124.238 19.8067 125.726 20.1586 126.42 21.3148C127.114 22.4711 126.767 23.9792 125.627 24.683C123.842 25.7889 121.71 26.4425 119.43 26.4425C112.885 26.4425 107.581 21.1137 107.581 14.5785V12.065C107.581 5.47952 112.935 0.201088 119.43 0.201088C125.032 0.201088 129.692 4.07194 130.931 9.3001L131.427 11.3612L121.115 15.584C119.876 16.0867 118.488 15.4834 117.942 14.2266C117.447 12.9699 118.041 11.5623 119.281 11.0596L125.478 8.54604C124.238 6.43466 122.008 5.07736 119.43 5.07736ZM146.003 5.07736C142.086 5.07736 138.963 8.24441 138.963 12.065V14.5785C138.963 18.4494 142.086 21.5662 146.003 21.5662C147.341 21.5662 148.630 21.164 149.671 20.5105C150.217 20.1586 150.663 19.8067 151.109 19.304C152.001 18.2986 153.538 18.2483 154.53 19.2034C155.521 20.1083 155.571 21.6667 154.629 22.6721C153.935 23.4262 153.092 24.13 152.2 24.683C150.415 25.7889 148.283 26.4425 146.003 26.4425C139.458 26.4425 134.154 21.1137 134.154 14.5785V12.065C134.154 5.47952 139.508 0.201088 146.003 0.201088C151.605 0.201088 156.265 4.07194 157.504 9.3001L158 11.3612L147.688 15.584C146.449 16.0867 145.061 15.4834 144.515 14.2266C144.019 12.9699 144.614 11.5623 145.854 11.0596L152.051 8.54604C150.762 6.43466 148.58 5.07736 146.003 5.07736Z\" fill=\"white\"/>\\n </svg>\\n </body>\\n </html>\\n '"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"execution_count": 8
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"**Why visualization matters:** Knowledge graphs reveal hidden patterns in Python's development. The interactive visualization shows how different projects (CPython, mypy, PEPs), features, and time periods connect - insights that show Python's thoughtful evolution.\n",
|
|
"\n",
|
|
"Take a moment to explore the graph. Notice how:\n",
|
|
"\n",
|
|
"- CPython core development clusters around 2020\n",
|
|
"- Mypy contributions focus on fixtures and run classes\n",
|
|
"- PEP discussions mention Thomas Grainiger and Adam Turner\n",
|
|
"- Time-based connections show how ideas evolved into features"
|
|
],
|
|
"id": "2612d59cf9e30fd3"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": "Now we'll add your own Python coding assistant conversations to see how they connect with Guido's contribution patterns and Python best practices.",
|
|
"id": "69f2413893dee8c2"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"outputs": [],
|
|
"execution_count": null,
|
|
"source": [
|
|
"cognee.add(\"file://notebooks/data/copilot_conversations.json\", node_set=\"conversation_logs\")\n",
|
|
"cognee.add(\"file://notebooks/data/my_developer_rules.md\", node_set=\"repository_data\")\n",
|
|
"cognee.add(\"file://notebooks/data/zen_principles.md\", node_set=\"repository_data\")\n",
|
|
"cognee.add(\"file://notebooks/data/pep_style_guide.md\", node_set=\"repository_data\")"
|
|
],
|
|
"id": "dd57680e827f8fda"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"outputs": [],
|
|
"execution_count": null,
|
|
"source": [
|
|
"results = cognee.search(\"What Python type hinting challenges did I face, and how does Guido approach similar problems in mypy?\")\n",
|
|
"print(results)"
|
|
],
|
|
"id": "f82beb746564effd"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"You'll see that cognee has connected your Python development challenges with Guido's approaches, revealing patterns like:\n",
|
|
"\n",
|
|
"- \"Type hint implementation failed due to circular imports - similar to issue Guido solved in mypy PR #1234\"\n",
|
|
"- \"Performance bottleneck in list comprehension matches pattern Guido optimized in CPython commit abc123\""
|
|
],
|
|
"id": "15c29935a90a1d9b"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"Let's now introduce the memory functions. These algorithms run on top of your semantic layer, connecting the dots and improving the search.\n",
|
|
"\n",
|
|
"Memify is customizable and can use any transformation you'd like to write. But it also requires"
|
|
],
|
|
"id": "79324959f903f097"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"outputs": [],
|
|
"execution_count": null,
|
|
"source": "cognee.memify()",
|
|
"id": "b4b989ed1c7ade4f"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"**What `memify()` does for Python:** This advanced function uses AI to:\n",
|
|
"\n",
|
|
"- **Infer rule patterns** from your code (e.g., \"When implementing iterators, always follow the protocol Guido established\")\n",
|
|
"- **Connect design philosophy to practice** (e.g., linking \"explicit is better than implicit\" to your type hinting decisions)\n"
|
|
],
|
|
"id": "3cedfb40f857bde6"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": "Now let's see how the system has connected your Python development patterns with established best practices:\n",
|
|
"id": "461fb16a0961720c"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"outputs": [],
|
|
"execution_count": null,
|
|
"source": [
|
|
"# Search for connections between your async patterns and Python philosophy\n",
|
|
"results = cognee.search(\n",
|
|
" \"How does my AsyncWebScraper implementation align with Python's design principles?\",\n",
|
|
" search_type=\"GRAPH_COMPLETION\"\n",
|
|
")\n",
|
|
"print(\"Python Pattern Analysis:\", results)"
|
|
],
|
|
"id": "7f463438229e384a"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": "Now let's see use time awareness feature of cognee to see what are all events that happened between X and Y",
|
|
"id": "8d7e4b5f7cd618e6"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"outputs": [],
|
|
"execution_count": null,
|
|
"source": "",
|
|
"id": "f439fb031326c2e"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "markdown",
|
|
"source": "Hm, maybe we are unhappy with the result and want to give feedback to the system so it doesn't give us a bad answer again",
|
|
"id": "9303219b26163702"
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"outputs": [],
|
|
"execution_count": null,
|
|
"source": "",
|
|
"id": "203b0273f082ee5a"
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 2
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython2",
|
|
"version": "2.7.6"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|