diff --git a/README.md b/README.md index 17cea55..eb02fa8 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@ **A Python static-analysis toolkit — the CLDK backend that emits a canonical symbol table and call graph, as `analysis.json` or a Neo4j property graph.** [![PyPI](https://img.shields.io/pypi/v/codeanalyzer-python?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/codeanalyzer-python/) -[![Python](https://img.shields.io/pypi/pyversions/codeanalyzer-python?style=for-the-badge&logo=python&logoColor=white)](https://pypi.org/project/codeanalyzer-python/) [![GitHub release](https://img.shields.io/github/v/release/codellm-devkit/codeanalyzer-python?style=for-the-badge&logo=github&label=GitHub&color=2dba4e)](https://github.com/codellm-devkit/codeanalyzer-python/releases/latest) [![Release](https://img.shields.io/github/actions/workflow/status/codellm-devkit/codeanalyzer-python/release.yml?style=for-the-badge&label=release&logo=githubactions&logoColor=white)](https://github.com/codellm-devkit/codeanalyzer-python/actions/workflows/release.yml) [![License](https://img.shields.io/badge/License-Apache%202.0-blue?style=for-the-badge)](./LICENSE) @@ -144,64 +143,112 @@ $ canpy --help Static Analysis on Python source code using Jedi, CodeQL and Tree sitter. -╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮ -│ --input -i PATH Path to the project root directory │ -│ (not required for --emit schema). │ -│ --output -o PATH Output directory for artifacts. │ -│ --format -f [json|msgpack] Output format for --emit json: │ -│ json or msgpack. │ -│ [default: json] │ -│ --emit [json|neo4j|schema] Output target: json │ -│ (analysis.json, default) | neo4j │ -│ (graph.cypher or live Bolt push) | │ -│ schema (the Neo4j schema.json │ -│ contract). │ -│ [default: json] │ -│ --app-name TEXT Logical application name for the │ -│ graph :PyApplication anchor │ -│ (default: input dir name). │ -│ --neo4j-uri TEXT Push the graph to a live Neo4j │ -│ over Bolt (incremental); omit to │ -│ write graph.cypher. │ -│ [env var: NEO4J_URI] │ -│ --neo4j-user TEXT Neo4j username. │ -│ [env var: NEO4J_USERNAME] │ -│ [default: neo4j] │ -│ --neo4j-password TEXT Neo4j password. Prefer the env var │ -│ over the flag (the flag is visible │ -│ in shell history / process list). │ -│ [env var: NEO4J_PASSWORD] │ -│ [default: neo4j] │ -│ --neo4j-database TEXT Neo4j database name (default: │ -│ server default). │ -│ [env var: NEO4J_DATABASE] │ -│ --codeql --no-codeql Enable CodeQL-based analysis. │ -│ [default: no-codeql] │ -│ --ray --no-ray Enable Ray for distributed │ -│ analysis. │ -│ [default: no-ray] │ -│ --eager --lazy Enable eager or lazy analysis. │ -│ Defaults to lazy. │ -│ [default: lazy] │ -│ --skip-tests --include-tests Skip test files in analysis. │ -│ [default: skip-tests] │ -│ --no-venv --venv Skip virtualenv creation and │ -│ dependency installation; resolve │ -│ imports against the ambient Python │ -│ environment instead. │ -│ [default: venv] │ -│ --file-name PATH Analyze only the specified file │ -│ (relative to input directory). │ -│ --cache-dir -c PATH Directory to store analysis cache. │ -│ Defaults to '.codeanalyzer' in the │ -│ input directory. │ -│ --clear-cache --keep-cache Clear cache after analysis. By │ -│ default, cache is retained. │ -│ [default: keep-cache] │ -│ -v INTEGER Increase verbosity: -v, -vv, -vvv │ -│ [default: 0] │ -│ --help Show this message and exit. │ -╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─ Options ────────────────────────────────────────────────────────────────────╮ +│ --input -i PATH Path to the │ +│ project root │ +│ directory (not │ +│ required for │ +│ --emit schema). │ +│ --output -o PATH Output directory │ +│ for artifacts. │ +│ --format -f [json|msgpack] Output format for │ +│ --emit json: json │ +│ or msgpack. │ +│ [default: json] │ +│ --emit [json|neo4j|sche Output target: │ +│ ma] json │ +│ (analysis.json, │ +│ default) | neo4j │ +│ (graph.cypher or │ +│ live Bolt push) | │ +│ schema (the Neo4j │ +│ schema.json │ +│ contract). │ +│ [default: json] │ +│ --app-name TEXT Logical │ +│ application name │ +│ for the graph │ +│ :PyApplication │ +│ anchor (default: │ +│ input dir name). │ +│ --neo4j-uri TEXT Push the graph to │ +│ a live Neo4j over │ +│ Bolt │ +│ (incremental); │ +│ omit to write │ +│ graph.cypher. │ +│ [env var: │ +│ NEO4J_URI] │ +│ --neo4j-user TEXT Neo4j username. │ +│ [env var: │ +│ NEO4J_USERNAME] │ +│ [default: neo4j] │ +│ --neo4j-password TEXT Neo4j password. │ +│ Prefer the env │ +│ var over the flag │ +│ (the flag is │ +│ visible in shell │ +│ history / process │ +│ list). │ +│ [env var: │ +│ NEO4J_PASSWORD] │ +│ [default: neo4j] │ +│ --neo4j-database TEXT Neo4j database │ +│ name (default: │ +│ server default). │ +│ [env var: │ +│ NEO4J_DATABASE] │ +│ --codeql --no-codeql Enable │ +│ CodeQL-based │ +│ analysis. │ +│ [default: │ +│ no-codeql] │ +│ --ray --no-ray Enable Ray for │ +│ distributed │ +│ analysis. │ +│ [default: no-ray] │ +│ --eager --lazy Enable eager or │ +│ lazy analysis. │ +│ Defaults to lazy. │ +│ [default: lazy] │ +│ --skip-tests --include-tests Skip test files │ +│ in analysis. │ +│ [default: │ +│ skip-tests] │ +│ --no-venv --venv Skip virtualenv │ +│ creation and │ +│ dependency │ +│ installation; │ +│ resolve imports │ +│ against the │ +│ ambient Python │ +│ environment │ +│ instead. │ +│ [default: venv] │ +│ --file-name PATH Analyze only the │ +│ specified file │ +│ (relative to │ +│ input directory). │ +│ --cache-dir -c PATH Directory to │ +│ store analysis │ +│ cache. Defaults │ +│ to │ +│ '.codeanalyzer' │ +│ in the input │ +│ directory. │ +│ --clear-cache --keep-cache Clear cache after │ +│ analysis. By │ +│ default, cache is │ +│ retained. │ +│ [default: │ +│ keep-cache] │ +│ -v INTEGER Increase │ +│ verbosity: -v, │ +│ -vv, -vvv │ +│ [default: 0] │ +│ --help Show this message │ +│ and exit. │ +╰──────────────────────────────────────────────────────────────────────────────╯ ```