## Summary This PR adds an experimental Ruff subcommand to generate dependency graphs based on module resolution. A few highlights: - You can generate either dependency or dependent graphs via the `--direction` command-line argument. - Like Pants, we also provide an option to identify imports from string literals (`--detect-string-imports`). - Users can also provide additional dependency data via the `include-dependencies` key under `[tool.ruff.import-map]`. This map uses file paths as keys, and lists of strings as values. Those strings can be file paths or globs. The dependency resolution uses the red-knot module resolver which is intended to be fully spec compliant, so it's also a chance to expose the module resolver in a real-world setting. The CLI is, e.g., `ruff graph build ../autobot`, which will output a JSON map from file to files it depends on for the `autobot` project.
32 lines
826 B
TOML
32 lines
826 B
TOML
[package]
|
|
name = "ruff_graph"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
homepage.workspace = true
|
|
documentation.workspace = true
|
|
repository.workspace = true
|
|
authors.workspace = true
|
|
license.workspace = true
|
|
|
|
[dependencies]
|
|
red_knot_python_semantic = { workspace = true }
|
|
ruff_cache = { workspace = true }
|
|
ruff_db = { workspace = true, features = ["os", "serde"] }
|
|
ruff_linter = { workspace = true }
|
|
ruff_macros = { workspace = true }
|
|
ruff_python_ast = { workspace = true }
|
|
|
|
anyhow = { workspace = true }
|
|
clap = { workspace = true, optional = true }
|
|
salsa = { workspace = true }
|
|
schemars = { workspace = true, optional = true }
|
|
serde = { workspace = true, optional = true }
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.cargo-shear]
|
|
# Used via `CacheKey` macro expansion.
|
|
ignored = ["ruff_cache"]
|