{ "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 \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\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 }