Skip to content

Commit d03b6bd

Browse files
committed
fix: Remove eager imports from services package to avoid dependency issues in tests
Changes: 1. services/__init__.py: - Removed eager imports of all subpackages to avoid triggering heavy dependencies (llama_index, etc.) when tests import services - Updated documentation with correct import examples 2. services/code/__init__.py: - Fixed incorrect export: GraphService → Neo4jGraphService - This matches the actual class name in graph_service.py 3. tests/conftest.py and tests/test_ingest.py: - Fixed import path: services.graph → services.code - Neo4jGraphService is in services.code, not services.graph - The services.graph package only contains schema.cypher This fixes the test import error where importing Neo4jGraphService was triggering the full dependency chain including llama_index which is not available in test environments.
1 parent 84b8d68 commit d03b6bd

File tree

4 files changed

+11
-17
lines changed

4 files changed

+11
-17
lines changed

src/codebase_rag/services/__init__.py

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,15 @@
1010
- utils: Utility functions (git, ranking, metrics)
1111
- pipeline: Data processing pipeline
1212
- graph: Graph schema and utilities
13-
"""
1413
15-
# Import subpackages
16-
from src.codebase_rag.services import (
17-
knowledge,
18-
memory,
19-
code,
20-
sql,
21-
tasks,
22-
utils,
23-
pipeline,
24-
graph,
25-
)
14+
Note: Subpackages are not eagerly imported to avoid triggering heavy dependencies.
15+
Import specific services from their subpackages as needed:
16+
from src.codebase_rag.services.code import Neo4jGraphService
17+
from src.codebase_rag.services.knowledge import Neo4jKnowledgeService
18+
from src.codebase_rag.services.memory import MemoryStore
19+
"""
2620

21+
# Declare subpackages without eager importing to avoid dependency issues
2722
__all__ = [
2823
"knowledge",
2924
"memory",
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Code analysis and ingestion services."""
22

33
from src.codebase_rag.services.code.code_ingestor import CodeIngestor, get_code_ingestor
4-
from src.codebase_rag.services.code.graph_service import GraphService
4+
from src.codebase_rag.services.code.graph_service import Neo4jGraphService
55
from src.codebase_rag.services.code.pack_builder import PackBuilder
66

7-
__all__ = ["CodeIngestor", "get_code_ingestor", "GraphService", "PackBuilder"]
7+
__all__ = ["CodeIngestor", "get_code_ingestor", "Neo4jGraphService", "PackBuilder"]

tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
sys.path.insert(0, str(Path(__file__).parent.parent))
1212

1313
from fastapi.testclient import TestClient
14-
from src.codebase_rag.services.graph import Neo4jGraphService
14+
from src.codebase_rag.services.code import Neo4jGraphService
1515

1616

1717
@pytest.fixture(scope="session")

tests/test_ingest.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
Tests POST /ingest/repo endpoint
44
"""
55
import pytest
6-
from src.codebase_rag.services.code import CodeIngestor
7-
from src.codebase_rag.services.graph import Neo4jGraphService
6+
from src.codebase_rag.services.code import CodeIngestor, Neo4jGraphService
87

98

109
class TestCodeIngestor:

0 commit comments

Comments
 (0)