Skip to content

Commit b72c03b

Browse files
committed
refactor: use canonical imports inside pure_auto_codeql
Rewrite production imports under pure_auto_codeql/ (and examples/scripts) to pure_auto_codeql.* so the package no longer depends on top-level shims at runtime. Legacy flat imports remain available for external callers; document the internal import convention.
1 parent 5ae930a commit b72c03b

32 files changed

Lines changed: 84 additions & 75 deletions

docs/package_architecture.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,15 @@ use `from config import ...`. The root-level `config.py` file is only a legacy
6666
script shim for `python config.py ...`; normal `import config` resolves to the
6767
`config/` package in this repository.
6868

69+
70+
## Internal Import Convention
71+
72+
Runtime code under `pure_auto_codeql/` should import siblings via the
73+
canonical namespace (for example `from pure_auto_codeql.utils.case import ...`),
74+
not the temporary top-level shim packages. Top-level `utils` / `services` /
75+
`api` / ... shims remain only for external and legacy callers during the
76+
migration window.
77+
6978
## Verification
7079

7180
Run these checks before committing package-architecture changes:

examples/agent_with_extra_files.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
"""
66

77
from typing import Any
8-
from core.context import AnalysisContext
9-
from core.pipeline import AnalysisStep
8+
from pure_auto_codeql.core.context import AnalysisContext
9+
from pure_auto_codeql.core.pipeline import AnalysisStep
1010

1111

1212
class EnhancedCVEAnalysisStep(AnalysisStep):
@@ -217,8 +217,8 @@ def _determine_analysis_strategy(
217217

218218
async def demo_enhanced_analysis():
219219
"""演示增强分析流程"""
220-
from utils.case import resolve_case, discover_cve_assets
221-
from core.context import AnalysisContext
220+
from pure_auto_codeql.utils.case import resolve_case, discover_cve_assets
221+
from pure_auto_codeql.core.context import AnalysisContext
222222

223223
print("\n" + "=" * 80)
224224
print("增强型 Agent 演示 - 使用额外输入文件")

examples/java_project_import_demo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from pathlib import Path
99

10-
from utils.project_importer import import_project
10+
from pure_auto_codeql.utils.project_importer import import_project
1111

1212

1313
def demo_java_import():

examples/path_selection_demo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from pathlib import Path
1414
from typing import Any, Dict
1515

16-
from services.path_selection import PathSelectionService
16+
from pure_auto_codeql.services.path_selection import PathSelectionService
1717
from pure_auto_codeql.configuration import get_chat_config
1818

1919

examples/simple_extra_files_demo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"""
66

77
from pathlib import Path
8-
from utils.case import resolve_case, discover_cve_assets
8+
from pure_auto_codeql.utils.case import resolve_case, discover_cve_assets
99

1010

1111
def demo_basic():

examples/use_extra_input_files.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"""
66

77
from pathlib import Path
8-
from utils.case import resolve_case, discover_cve_assets
8+
from pure_auto_codeql.utils.case import resolve_case, discover_cve_assets
99

1010

1111
def example_basic_usage():

pure_auto_codeql/agents/codeql_gen_agents/codeql_breakpoint_detect_agent.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
from pure_auto_codeql.paths import prompts_dir
88

99
if TYPE_CHECKING:
10-
from utils.io import AgentResult
11-
from services.llm_service import MultiAgentAnalyzer
10+
from pure_auto_codeql.utils.io import AgentResult
11+
from pure_auto_codeql.services.llm_service import MultiAgentAnalyzer
1212

1313

1414
class CodeQLBreakpointAgent:

pure_auto_codeql/agents/cve_analysis_agent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class AgentResult:
1313
class MultiAgentAnalyzer:
1414
pass
1515

16-
from utils.io import read_json_text
16+
from pure_auto_codeql.utils.io import read_json_text
1717

1818

1919
class CVEAnalysisAgent:

pure_auto_codeql/agents/path_analysis_agent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class AgentResult:
1414
class MultiAgentAnalyzer:
1515
pass
1616

17-
from prompts.path_analysis_prompts import build_path_analysis_prompt
17+
from pure_auto_codeql.prompts.path_analysis_prompts import build_path_analysis_prompt
1818

1919
logger = logging.getLogger(__name__)
2020

pure_auto_codeql/agents/sink_verification_agent.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,24 @@
99
from pathlib import Path
1010
from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, Callable
1111

12-
from services import (
12+
from pure_auto_codeql.services import (
1313
build_placeholder_map,
1414
apply_placeholders,
1515
CodeQLLSPService,
1616
)
17-
from utils.codeql import (
17+
from pure_auto_codeql.utils.codeql import (
1818
execute_codeql_query,
1919
is_empty_result,
2020
create_temporary_qlpack,
2121
)
22-
from utils.logger import get_logger
23-
from prompts.verification_prompt_manager import (
22+
from pure_auto_codeql.utils.logger import get_logger
23+
from pure_auto_codeql.prompts.verification_prompt_manager import (
2424
load_verification_template,
2525
build_verification_requirement,
2626
)
2727

2828
if TYPE_CHECKING:
29-
from services.llm_service import MultiAgentAnalyzer
29+
from pure_auto_codeql.services.llm_service import MultiAgentAnalyzer
3030

3131
logger = get_logger(__name__)
3232

0 commit comments

Comments
 (0)