Install codeanalyzer-python v1.2.0
Shell script (installs the canpy CLI via uv / pipx / pip):
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/codellm-devkit/codeanalyzer-python/releases/latest/download/canpy-installer.sh | sh
PyPI:
pip install codeanalyzer-python==1.2.0
For the optional live Neo4j push (--emit neo4j --neo4j-uri ...):
pip install 'codeanalyzer-python[neo4j]==1.2.0'
Download
| File | Description |
|---|---|
| codeanalyzer_python-1.2.0-py3-none-any.whl | Python wheel |
| codeanalyzer_python-1.2.0.tar.gz | Source distribution |
| canpy-installer.sh | Shell installer (uv / pipx / pip) |
| schema.json | Neo4j schema contract |
What's Changed
🚀 Features
🐛 Fixes
🛠 Other Changes
- feat(cli)!: drop msgpack output; enforce --emit neo4j full-depth contract by @rahlk in #121
- chore(deps): drop unused numpy and pandas dependencies by @rahlk in #125
- feat(entrypoints): framework entrypoint detection, units 1-3 (#27) by @rahlk in #137
- feat(schema)!: converge call_sites[] into the body{} call node (#120) by @rahlk in #138
- refactor(neo4j)!: rename PyCFGNode to PyBodyNode by @rahlk in #140
- fix(pycg): _coalesce_edges raised on every duplicate edge by @rahlk in #141
- fix(dataflow): recognise staticmethod by identity, not spelling by @rahlk in #142
- fix(call-graph): keep module-scope calls to library targets by @rahlk in #143
- feat(schema): record async def as a modifier by @rahlk in #144
- feat(callgraph)!: replace PyCG with a defuse linker validated against Joern and Fraunhofer CPG by @rahlk in #149
- feat(callgraph): whole-program type propagation in the defuse linker by @rahlk in #151
Full Changelog: v1.1.1...v1.2.0