📣 New Release: codeanalyzer-python v0.3.0 #57
rahlk
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Changelog
Added
--analysis-level {1,2}(reintroduced): 1 is symbol table + Jedi call graph, 2 adds the PyCG call graph.--pycg-shard) so level 2 scales to large apps. Shards are chosen by Jedi module coupling (strongly-connected-component condensation, so import cycles never split, plus Louvain community detection) instead of a flat file count, so few call edges are severed between shards. PyCG runs on each shard inside a symlink mini-project that bounds it to that shard's files. Ray-parallel.--pycg-shard-strategy {jedi,package}(defaultjedi),--pycg-shard-ceiling(default 100, the starting per-shard budget),--pycg-shard-timeout(default 120, per-shard wall clock),--pycg-max-iter(default 50, caps PyCG fixpoint passes so a divergent shard returns a partial graph instead of hanging).Changed
--codeql/--no-codeqlis removed in favor of--analysis-level. Edgeprovenanceliteralcodeqlbecomespycg. New dependency:pycg(Apache 2.0). Thecodeanalyzer.semantic_analysis.codeqlpackage is removed.Fixed
PyModule.module_nameis only the file stem (every__init__.py,models.py, ...), so keying by name collided and silently dropped files from shards..codeanalyzer/) during the whole-project level 2 run: it runs in a symlink mini-project whose root holds project source only, so dependencies resolve outside the bound and stay ghost nodes._uv_binuses only the vendoreduvfrom theuvPyPI dependency and no longer falls back to auvonPATH, so the analyzer always uses the pinned binary. ReturnsNoneonly if the package is missing, in which case callers fall back to pip.Install codeanalyzer-python v0.3.0
Shell script (installs the canpy CLI via uv / pipx / pip):
PyPI:
For the optional live Neo4j push (--emit neo4j --neo4j-uri ...):
Download
What's Changed
🛠 Other Changes
Full Changelog: v0.2.1...v0.3.0
Beta Was this translation helpful? Give feedback.
All reactions