From 3a651608392de1eefe8cfcba82fd99b8530e8685 Mon Sep 17 00:00:00 2001 From: Daulet Amirkhanov Date: Sun, 7 Sep 2025 20:45:17 +0100 Subject: [PATCH] move check adapters scripts to /tools and update mypy workflow --- .../database_protocol_mypy_check.yml | 82 ++++--------------- .../check_all_adapters.sh | 10 +-- .../check_graph_adapters.sh | 4 +- .../check_hybrid_adapters.sh | 4 +- .../check_vector_adapters.sh | 4 +- 5 files changed, 25 insertions(+), 79 deletions(-) rename check_all_adapters.sh => tools/check_all_adapters.sh (87%) rename check_graph_adapters.sh => tools/check_graph_adapters.sh (93%) rename check_hybrid_adapters.sh => tools/check_hybrid_adapters.sh (93%) rename check_vector_adapters.sh => tools/check_vector_adapters.sh (93%) diff --git a/.github/workflows/database_protocol_mypy_check.yml b/.github/workflows/database_protocol_mypy_check.yml index a121d5dbd..484d03450 100644 --- a/.github/workflows/database_protocol_mypy_check.yml +++ b/.github/workflows/database_protocol_mypy_check.yml @@ -8,12 +8,14 @@ on: branches: [ main, dev ] paths: - 'cognee/infrastructure/databases/**' + - 'tools/check_*_adapters.sh' - 'mypy.ini' - '.github/workflows/database_protocol_mypy_check.yml' pull_request: branches: [ main, dev ] paths: - 'cognee/infrastructure/databases/**' + - 'tools/check_*_adapters.sh' - 'mypy.ini' - '.github/workflows/database_protocol_mypy_check.yml' @@ -38,76 +40,13 @@ jobs: python-version: '3.11.x' - name: Discover and Check Vector Database Adapters - run: | - echo "🔍 Discovering Vector Database Adapters..." - - # Find all *Adapter.py files in vector database directories - vector_adapters=$(find cognee/infrastructure/databases/vector -name "*Adapter.py" -type f | sort) - - if [ -z "$vector_adapters" ]; then - echo "No vector database adapters found" - else - echo "Found vector database adapters:" - echo "$vector_adapters" | sed 's/^/ • /' - echo "" - - echo "Running MyPy on vector database adapters..." - for adapter in $vector_adapters; do - echo "Checking: $adapter" - uv run mypy "$adapter" \ - --config-file mypy.ini \ - --show-error-codes \ - --no-error-summary - done - fi + run: ./tools/check_vector_adapters.sh - name: Discover and Check Graph Database Adapters - run: | - echo "🔍 Discovering Graph Database Adapters..." - - # Find all adapter.py and *adapter.py files in graph database directories, excluding utility files - graph_adapters=$(find cognee/infrastructure/databases/graph -name "*adapter.py" -o -name "adapter.py" | grep -v "use_graph_adapter.py" | sort) - - if [ -z "$graph_adapters" ]; then - echo "No graph database adapters found" - else - echo "Found graph database adapters:" - echo "$graph_adapters" | sed 's/^/ • /' - echo "" - - echo "Running MyPy on graph database adapters..." - for adapter in $graph_adapters; do - echo "Checking: $adapter" - uv run mypy "$adapter" \ - --config-file mypy.ini \ - --show-error-codes \ - --no-error-summary - done - fi + run: ./tools/check_graph_adapters.sh - name: Discover and Check Hybrid Database Adapters - run: | - echo "🔍 Discovering Hybrid Database Adapters..." - - # Find all *Adapter.py files in hybrid database directories - hybrid_adapters=$(find cognee/infrastructure/databases/hybrid -name "*Adapter.py" -type f | sort) - - if [ -z "$hybrid_adapters" ]; then - echo "No hybrid database adapters found" - else - echo "Found hybrid database adapters:" - echo "$hybrid_adapters" | sed 's/^/ • /' - echo "" - - echo "Running MyPy on hybrid database adapters..." - for adapter in $hybrid_adapters; do - echo "Checking: $adapter" - uv run mypy "$adapter" \ - --config-file mypy.ini \ - --show-error-codes \ - --no-error-summary - done - fi + run: ./tools/check_hybrid_adapters.sh - name: Protocol Compliance Summary run: | @@ -118,6 +57,12 @@ jobs: echo " • Graph Adapters: cognee/infrastructure/databases/graph/**/*adapter.py" echo " • Hybrid Adapters: cognee/infrastructure/databases/hybrid/**/*Adapter.py" echo "" + echo "🚀 Using Dedicated Scripts:" + echo " • Vector: ./tools/check_vector_adapters.sh" + echo " • Graph: ./tools/check_graph_adapters.sh" + echo " • Hybrid: ./tools/check_hybrid_adapters.sh" + echo " • All: ./tools/check_all_adapters.sh" + echo "" echo "🎯 Purpose: Enforce that database adapters are properly typed" echo "🔧 MyPy Configuration: mypy.ini (strict mode enabled)" echo "🚀 Maintenance-Free: Automatically discovers new adapters" @@ -126,5 +71,6 @@ jobs: echo " All database adapters must be properly typed." echo "" echo "🛠️ To fix type issues locally, run:" - echo " source .venv/bin/activate" - echo " mypy --config-file mypy.ini" + echo " ./tools/check_all_adapters.sh # Check all adapters" + echo " ./tools/check_vector_adapters.sh # Check vector adapters only" + echo " mypy --config-file mypy.ini # Check specific file" diff --git a/check_all_adapters.sh b/tools/check_all_adapters.sh similarity index 87% rename from check_all_adapters.sh rename to tools/check_all_adapters.sh index f2fb3e423..deca174a5 100755 --- a/check_all_adapters.sh +++ b/tools/check_all_adapters.sh @@ -7,26 +7,26 @@ set -e # Exit on any error echo "🚀 Running MyPy checks on all database adapters..." echo "" -# Ensure we're in the right directory -cd "$(dirname "$0")" +# Ensure we're in the project root directory +cd "$(dirname "$0")/.." # Run all three adapter checks echo "=========================================" echo "1️⃣ VECTOR DATABASE ADAPTERS" echo "=========================================" -./check_vector_adapters.sh +./tools/check_vector_adapters.sh echo "" echo "=========================================" echo "2️⃣ GRAPH DATABASE ADAPTERS" echo "=========================================" -./check_graph_adapters.sh +./tools/check_graph_adapters.sh echo "" echo "=========================================" echo "3️⃣ HYBRID DATABASE ADAPTERS" echo "=========================================" -./check_hybrid_adapters.sh +./tools/check_hybrid_adapters.sh echo "" echo "🎉 All Database Adapters MyPy Checks Complete!" diff --git a/check_graph_adapters.sh b/tools/check_graph_adapters.sh similarity index 93% rename from check_graph_adapters.sh rename to tools/check_graph_adapters.sh index 7c9e88687..4c4e1f82e 100755 --- a/check_graph_adapters.sh +++ b/tools/check_graph_adapters.sh @@ -6,8 +6,8 @@ set -e # Exit on any error echo "🔍 Discovering Graph Database Adapters..." -# Ensure we're in the right directory -cd "$(dirname "$0")" +# Ensure we're in the project root directory +cd "$(dirname "$0")/.." # Activate virtual environment source .venv/bin/activate diff --git a/check_hybrid_adapters.sh b/tools/check_hybrid_adapters.sh similarity index 93% rename from check_hybrid_adapters.sh rename to tools/check_hybrid_adapters.sh index 7e2568e40..63accfbf0 100755 --- a/check_hybrid_adapters.sh +++ b/tools/check_hybrid_adapters.sh @@ -6,8 +6,8 @@ set -e # Exit on any error echo "🔍 Discovering Hybrid Database Adapters..." -# Ensure we're in the right directory -cd "$(dirname "$0")" +# Ensure we're in the project root directory +cd "$(dirname "$0")/.." # Activate virtual environment source .venv/bin/activate diff --git a/check_vector_adapters.sh b/tools/check_vector_adapters.sh similarity index 93% rename from check_vector_adapters.sh rename to tools/check_vector_adapters.sh index a0be12b6e..45940cc20 100755 --- a/check_vector_adapters.sh +++ b/tools/check_vector_adapters.sh @@ -6,8 +6,8 @@ set -e # Exit on any error echo "🔍 Discovering Vector Database Adapters..." -# Ensure we're in the right directory -cd "$(dirname "$0")" +# Ensure we're in the project root directory +cd "$(dirname "$0")/.." # Activate virtual environment source .venv/bin/activate