You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat/python: upgrade to codeanalyzer-python 0.3.0, remove CodeQL (1.4.0) (#186)
* feat(python)!: upgrade to codeanalyzer-python 0.3.0 and remove CodeQL
codeanalyzer-python 0.3.0 drops CodeQL in favor of PyCG for call-graph
construction and removed the `using_codeql` option from AnalysisOptions, which
broke CLDK's in-process Python backend (TypeError on every analysis).
Upgrade the pin 0.2.0 -> 0.3.0 and remove CodeQL from CLDK entirely:
- Drop the `use_codeql` knob from the public surface: PyCodeAnalyzerConfig,
the deprecated CLDK(language).analysis(...) shim, the PyCodeanalyzer
constructor, and the facade forwarding. Stop passing using_codeql to
AnalysisOptions.
- Remove the CodeQLDatabaseBuildException / CodeQLQueryExecutionException
exception classes and their re-exports.
- Scrub CodeQL from docstrings, the README, and the _jdk.py loader comments;
describe the Python backend as Jedi + PyCG.
- Drop the now-obsolete use_codeql forwarding test; fix the Neo4j parity
fixture to not pass using_codeql.
BREAKING CHANGE: removes the public `use_codeql` option and the CodeQL
exception classes. Call-graph results may differ (PyCG vs CodeQL-augmented Jedi).
Closes#185
* chore(release): 1.4.0
codeanalyzer-python 0.3.0 upgrade and CodeQL removal (#185).
Copy file name to clipboardExpand all lines: README.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@
25
25
26
26
**A unified, multilingual program-analysis SDK for Code LLMs.** CLDK turns raw source code into structured, LLM-ready program facts — symbol tables, call graphs, type hierarchies, and more — behind a single Python API, so you can build analysis-augmented LLM pipelines without wrangling a different static-analysis tool for every language.
27
27
28
-
Under the hood, CLDK orchestrates mature analysis engines (WALA, Tree-sitter, Jedi, CodeQL, ts-morph) and normalizes their output into consistent, typed [Pydantic](https://docs.pydantic.dev/) models. You get the same ergonomic interface whether you are analyzing Java, Python, or TypeScript.
28
+
Under the hood, CLDK orchestrates mature analysis engines (WALA, Tree-sitter, Jedi, PyCG, ts-morph) and normalizes their output into consistent, typed [Pydantic](https://docs.pydantic.dev/) models. You get the same ergonomic interface whether you are analyzing Java, Python, or TypeScript.
29
29
30
30
CLDK is:
31
31
@@ -125,12 +125,12 @@ Each language is analyzed by a dedicated `codeanalyzer-*` engine; CLDK normalize
125
125
| Language | Analysis engine | What it provides |
126
126
| --- | --- | --- |
127
127
|**Java**|[`codeanalyzer-java`](https://github.com/codellm-devkit/codeanalyzer-java)| WALA + JavaParser. Bytecode-level call graphs, type hierarchies, symbol resolution, CRUD-operation and entry-point detection. Optional read-only **Neo4j** graph backend. |
128
-
|**Python**|[`codeanalyzer-python`](https://github.com/codellm-devkit/codeanalyzer-python)| Jedi with optional CodeQL augmentation. Symbol tables, call graphs, and class/method resolution. Optional read-only **Neo4j** graph backend. |
128
+
|**Python**|[`codeanalyzer-python`](https://github.com/codellm-devkit/codeanalyzer-python)| Jedi with PyCG-based call graphs. Symbol tables, call graphs, and class/method resolution. Optional read-only **Neo4j** graph backend. |
The backend is selected by the **type** of the `backend=` config you pass to a factory: the in-process analyzer (default) or a `Neo4jConnectionConfig` for the read-only graph backend.
132
132
133
-
> **Analysis cache (Python):** caching is owned by `codeanalyzer-python` — the backend virtualenv, CodeQL database, and analysis cache live under `cache_dir` (default `<project>/.codeanalyzer`). CodeQL is on by default, so the first run is slow (it provisions a CodeQL DB) and later runs reuse a checksum-validated cache. Add the cache directory to your `.gitignore`.
133
+
> **Analysis cache (Python):** caching is owned by `codeanalyzer-python` — the backend virtualenvand analysis cache live under `cache_dir` (default `<project>/.codeanalyzer`). The first run is slower (it provisions the backend virtualenv) and later runs reuse a checksum-validated cache. Add the cache directory to your `.gitignore`.
134
134
135
135
## Architecture
136
136
@@ -147,7 +147,7 @@ graph TD
147
147
A --> T[cldk.analysis.typescript]
148
148
149
149
J --> EJ[codeanalyzer-java<br/>WALA · JavaParser]
150
-
P --> EP[codeanalyzer-python<br/>Jedi · CodeQL]
150
+
P --> EP[codeanalyzer-python<br/>Jedi · PyCG]
151
151
T --> ET[codeanalyzer-typescript<br/>ts-morph · Jelly]
0 commit comments