lang-parsing-substrate
A shared language-parsing substrate for static-analysis tools: tree-sitter grammar
dispatch, language detection, and a growing set of language-agnostic analysis
primitives (import/call graphs, control-flow graphs, structural fingerprinting,
suppression comments) built on top of a unified LanguageInfo registry across
16 languages — compiled in at build time via Cargo feature flags.
What's in the substrate
| Module | Provides |
|---|---|
registry |
Language detection by extension, the LanguageInfo table, SLOC comment-style metadata |
query |
Iterative (non-recursive) tree-sitter traversal helpers: find_descendants, find_first_descendant, node_text, ancestor lookups |
imports |
Per-file import/use-statement extraction, for building efferent-coupling (Ce) edges |
calls |
Per-file call-graph edge extraction (caller → callee), with external-call detection |
cfg |
Control-flow graph / basic-block construction for a function body (c, cpp, rust) |
c_standard |
Best-effort lower bound on the C standard (C99/C11/C23) a file's syntax requires |
fingerprint |
Structural hashing of function-like subtrees, for duplicate/clone detection across a corpus |
regions |
tools:off / tools:on ignored-region markers |
suppressions |
tools:suppress TOOL:RULE single-line suppression comments |
dead_code |
Preprocessor dead-code regions for C/C++ (#if 0, __cplusplus-gated branches, locally-provable macro definedness) |
dead_code_swift |
Dead-code regions for Swift's #if/#elseif/#else conditional compilation (compile-time-constant boolean conditions only — see module docs for why the C/C++ macro-definedness sub-problem doesn't apply to Swift) |
dead_code_csharp |
Dead-code regions for C#'s #if/#elif/#else conditional compilation — AST-based like dead_code_swift, but ports both C/C++ sub-problems (constant conditions and locally-provable #define/#undef symbol definedness) since C# has real nested preprocessor nodes and real #define |
path_ignore |
Compiled glob ignore-pattern sets for path filtering |
Everything below the registry is deliberately per-file: a module extracts what one parse tree contains, and leaves assembling a corpus-wide graph, dedup report, or coupling metric to the caller. This keeps the substrate's job narrow (one authoritative, correct answer per file) and lets each consumer choose its own storage model (in-memory, SQLite, whatever) without the substrate needing to know about it.
Language coverage varies by module — the registry knows about all 16
languages, but modules like cfg only model the languages they've been
built out for. A module never fabricates a result for a language it doesn't
support; it returns None (or an empty result) instead of guessing.
Feature flags
Not every consumer needs all 16 languages. Each language is an optional Cargo
feature; the all-languages convenience feature (enabled by default) pulls in
the full set.
| Feature | Language | Grammar crate |
|---|---|---|
lang-c |
C | tree-sitter-c |
lang-cpp |
C++ | tree-sitter-cpp |
lang-rust |
Rust | tree-sitter-rust |
lang-python |
Python | tree-sitter-python |
lang-javascript |
JavaScript | tree-sitter-javascript |
lang-typescript |
TypeScript | tree-sitter-typescript |
lang-go |
Go | tree-sitter-go |
lang-java |
Java | tree-sitter-java |
lang-csharp |
C# | tree-sitter-c-sharp |
lang-kotlin |
Kotlin | tree-sitter-kotlin-ng |
lang-swift |
Swift | tree-sitter-swift |
lang-php |
PHP | tree-sitter-php |
lang-ada |
Ada | tree-sitter-ada |
lang-fortran |
Fortran (free-form) | tree-sitter-fortran |
lang-scala |
Scala | tree-sitter-scala |
lang-lua |
Lua | tree-sitter-lua |
all-languages |
All of the above | — |
A consumer that only cares about C/C++, for example, would declare:
lang-parsing-substrate = { version = "0.5", default-features = false, features = ["lang-c", "lang-cpp"] }
Usage
# Cargo.toml — full language set (default)
lang-parsing-substrate = "0.5"
# Cargo.toml — C/C++ only
lang-parsing-substrate = { version = "0.5", default-features = false, features = ["lang-c", "lang-cpp"] }
use lang_parsing_substrate::{language_for_file, languages, supported_languages_report};
use std::path::Path;
// Detect language for a file
if let Some(lang) = language_for_file(Path::new("main.c")) {
let mut parser = tree_sitter::Parser::new();
parser.set_language(&lang).unwrap();
// parse...
}
// Enumerate compiled-in languages (reflects feature flags)
for info in languages() {
println!("{}: {:?}", info.name, info.extensions);
}
// Human-readable summary (for --supported-languages flags)
print!("{}", supported_languages_report());
Grammar crates are re-exported so consumers reach them transitively:
// No direct tree-sitter-rust dependency needed in your Cargo.toml
use lang_parsing_substrate::tree_sitter_rust;
Analysis primitives
use lang_parsing_substrate::{call_edges, import_sources, build_function_cfg, structural_hash};
// Call-graph edges for every named function/macro in a parsed file
let edges = call_edges(tree.root_node(), source);
// Import/use-statement sources, for Ce/Ca coupling metrics
let imports = import_sources(&tree, source.as_bytes(), "rust");
// Control-flow graph for a single function body (c/cpp/rust)
if let Some(cfg) = build_function_cfg(func_node, source, "rust") {
println!("{} basic blocks", cfg.block_count());
}
// Best-effort lower bound on the C standard a file requires
if let Some(standard) = detect_min_c_standard(&tree, source.as_bytes()) {
println!("requires at least {standard:?}");
}
API
languages() -> &'static [LanguageInfo]— compiled-in language setlanguage_for_file(path: &Path) -> Option<Language>— grammar dispatch by extensionlanguage_for_key(key: &str) -> Option<Language>— grammar dispatch by registry keylanguage_info_for_file(path: &Path) -> Option<&'static LanguageInfo>is_source_extension/is_parseable_extension(ext: &OsStr) -> bool— recursive-discovery gatessupported_languages_report() -> String— human-readable language summaryLanguageInfo/SlocMode— registry metadata and comment-style enum (drives SLOC calculation)find_descendants/find_first_descendant/find_ancestor/node_textand friends — traversal helpers (query)import_sources/distinct_import_count— import extraction (imports)call_edges/CallEdge/is_function_kind/get_function_name— call-graph extraction (calls)build_function_cfg/FunctionCfg/BasicBlock/CfgEdge— control-flow graphs (cfg)detect_min_c_standard/CStandard— C standard lower-bound detection (c_standard)function_fingerprints/duplicate_groups/Fingerprint/CorpusFingerprint— structural hashing (fingerprint)ignored_regions/IgnoredRegion—tools:off/tools:onmarkers (regions)suppressions/Suppression—tools:suppresscomments (suppressions)dead_code_ranges/DeadCodeRegion/DeadCodeReason— preprocessor dead-code regions, C/C++ only (dead_code)swift_dead_code_regions/SwiftDeadCodeRegion— Swift#if/#elseif/#elsedead-code regions (dead_code_swift)csharp_dead_code_regions/CSharpDeadCodeRegion— C##if/#elif/#elsedead-code regions (dead_code_csharp)PathIgnore— compiled glob ignore sets (path_ignore)
Building
cargo build # all languages (default)
cargo build --no-default-features --features lang-c,lang-cpp # subset
cargo test
Requires no C compiler — tree-sitter grammar crates ship pre-generated C sources
and compile via the cc crate.
Python bindings
The pyo3 Cargo feature (off by default) exposes the substrate's
language-agnostic analysis primitives as a Python extension module, published
to PyPI as prebuilt abi3 wheels (CPython 3.10+, one wheel per platform —
see docs/releasing.md):
pip install lang-parsing-substrate
Building it yourself from source uses maturin:
pip install maturin
maturin build --release # writes target/wheels/lang_parsing_substrate-*.whl
pip install target/wheels/lang_parsing_substrate-*.whl
import lang_parsing_substrate as lps
src = "fn helper(x: i32) -> i32 { x + 1 }\nfn main() { helper(41); }\n"
edges = lps.call_edges("rust", src) # [CallEdge(caller='main', callee='helper', ...)]
cfg = lps.function_cfg("rust", src, "main") # FunctionCfg | None
fps = lps.function_fingerprints("rust", src, min_nodes=1)
Python can't hand this crate a tree_sitter::Node/Tree directly — this
crate's tree-sitter version has no ABI relationship to tree-sitter's own,
separate Python bindings — so every bound function takes (language_key, source), parses internally, and returns owned data (CallEdge,
FunctionCfg, Fingerprint, Suppression, IgnoredRegion, LanguageInfo,
all plain attribute-holding classes). A consumer that also needs to walk the
tree itself (e.g. for domain-specific semantics this crate doesn't model)
still parses separately with a language-specific tree-sitter Python package;
the bindings here only cover the substrate's own primitives.
invoke build-wheel builds the wheel locally for testing. The actual PyPI
release happens in CI on a vX.Y.Z tag push, via Trusted Publishing (OIDC,
no API token) — see docs/releasing.md.
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lang_parsing_substrate-0.6.1.tar.gz.
File metadata
- Download URL: lang_parsing_substrate-0.6.1.tar.gz
- Upload date:
- Size: 108.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c99dbdf7f96ffda49bcfcb40808f2ad3cd9b8a07d7e1813ef72ded783a88d2ca
|
|
| MD5 |
28682fff2936128bb2a0551e8bb5cf95
|
|
| BLAKE2b-256 |
661e57d04484e1a1203655ea30c962fc9d20b4ab5d2c42658afcf358ea67c9fe
|
Provenance
The following attestation bundles were made for lang_parsing_substrate-0.6.1.tar.gz:
Publisher:
wheels.yml on brandon-arrendondo/lang_parsing_substrate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lang_parsing_substrate-0.6.1.tar.gz -
Subject digest:
c99dbdf7f96ffda49bcfcb40808f2ad3cd9b8a07d7e1813ef72ded783a88d2ca - Sigstore transparency entry: 2607739457
- Sigstore integration time:
-
Permalink:
brandon-arrendondo/lang_parsing_substrate@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/brandon-arrendondo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Trigger Event:
push
-
Statement type:
File details
Details for the file lang_parsing_substrate-0.6.1-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: lang_parsing_substrate-0.6.1-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24a65a5d1c511919c9d66eefac5af58fb53c001d690a4a9d752c28caba518f8e
|
|
| MD5 |
3ec684720fbe01046564572dba5d84e7
|
|
| BLAKE2b-256 |
05405d4b8102fb20ac9df896e61b8c56c5ed62c7bc10211e3219e587a16bc8f2
|
Provenance
The following attestation bundles were made for lang_parsing_substrate-0.6.1-cp310-abi3-win_amd64.whl:
Publisher:
wheels.yml on brandon-arrendondo/lang_parsing_substrate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lang_parsing_substrate-0.6.1-cp310-abi3-win_amd64.whl -
Subject digest:
24a65a5d1c511919c9d66eefac5af58fb53c001d690a4a9d752c28caba518f8e - Sigstore transparency entry: 2607739562
- Sigstore integration time:
-
Permalink:
brandon-arrendondo/lang_parsing_substrate@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/brandon-arrendondo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Trigger Event:
push
-
Statement type:
File details
Details for the file lang_parsing_substrate-0.6.1-cp310-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: lang_parsing_substrate-0.6.1-cp310-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da54080b839d76af54342bb2f12869e9abaec39fe8f57ff5b6f32ef103a350c3
|
|
| MD5 |
e96a1f28186af0a634a06ce03b3a1cb0
|
|
| BLAKE2b-256 |
cff2108b6995b51b4976ed9ac2f02023af4db985ca73ae27253bc6566a5b514d
|
Provenance
The following attestation bundles were made for lang_parsing_substrate-0.6.1-cp310-abi3-musllinux_1_2_x86_64.whl:
Publisher:
wheels.yml on brandon-arrendondo/lang_parsing_substrate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lang_parsing_substrate-0.6.1-cp310-abi3-musllinux_1_2_x86_64.whl -
Subject digest:
da54080b839d76af54342bb2f12869e9abaec39fe8f57ff5b6f32ef103a350c3 - Sigstore transparency entry: 2607739798
- Sigstore integration time:
-
Permalink:
brandon-arrendondo/lang_parsing_substrate@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/brandon-arrendondo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Trigger Event:
push
-
Statement type:
File details
Details for the file lang_parsing_substrate-0.6.1-cp310-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: lang_parsing_substrate-0.6.1-cp310-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e41dd61cf72b36b772cf5d0df891fc4c080797c452e1c21d549ff70696c28d0
|
|
| MD5 |
796b53d45f91357c855389781597c350
|
|
| BLAKE2b-256 |
f34166af887c07e3631870e29b9b5e8ddffc60a9d220172fbaba9f1e2beadf4a
|
Provenance
The following attestation bundles were made for lang_parsing_substrate-0.6.1-cp310-abi3-musllinux_1_2_aarch64.whl:
Publisher:
wheels.yml on brandon-arrendondo/lang_parsing_substrate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lang_parsing_substrate-0.6.1-cp310-abi3-musllinux_1_2_aarch64.whl -
Subject digest:
6e41dd61cf72b36b772cf5d0df891fc4c080797c452e1c21d549ff70696c28d0 - Sigstore transparency entry: 2607739707
- Sigstore integration time:
-
Permalink:
brandon-arrendondo/lang_parsing_substrate@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/brandon-arrendondo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Trigger Event:
push
-
Statement type:
File details
Details for the file lang_parsing_substrate-0.6.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: lang_parsing_substrate-0.6.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bedf312449f798c69dd8213a0c9f18084354fc631f18b0a1f979a00873f64e5
|
|
| MD5 |
38689bb1c1f5e329c05471f965343471
|
|
| BLAKE2b-256 |
679d698b34a5d7ddbd30d0d71adaf2e89e2c117db34217ac1281f0828551f13a
|
Provenance
The following attestation bundles were made for lang_parsing_substrate-0.6.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
wheels.yml on brandon-arrendondo/lang_parsing_substrate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lang_parsing_substrate-0.6.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
9bedf312449f798c69dd8213a0c9f18084354fc631f18b0a1f979a00873f64e5 - Sigstore transparency entry: 2607740044
- Sigstore integration time:
-
Permalink:
brandon-arrendondo/lang_parsing_substrate@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/brandon-arrendondo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Trigger Event:
push
-
Statement type:
File details
Details for the file lang_parsing_substrate-0.6.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: lang_parsing_substrate-0.6.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 3.5 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd2b1b0029f0f1edb29fcf759516618eb397fe34fdb00014a183a529a353efb8
|
|
| MD5 |
6417f4e20055e02c5ffc185834074dce
|
|
| BLAKE2b-256 |
4782d6421427fdfd3734ff3d3b46928296c38c5634e81a02005e1e84fb31c612
|
Provenance
The following attestation bundles were made for lang_parsing_substrate-0.6.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
wheels.yml on brandon-arrendondo/lang_parsing_substrate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lang_parsing_substrate-0.6.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
fd2b1b0029f0f1edb29fcf759516618eb397fe34fdb00014a183a529a353efb8 - Sigstore transparency entry: 2607740166
- Sigstore integration time:
-
Permalink:
brandon-arrendondo/lang_parsing_substrate@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/brandon-arrendondo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Trigger Event:
push
-
Statement type:
File details
Details for the file lang_parsing_substrate-0.6.1-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: lang_parsing_substrate-0.6.1-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc2769ce28cfbf0ee5784d07ed4424b907af84f42258838487954999f984c49d
|
|
| MD5 |
adf1f0efeeb99c7d90421c4b14806ad6
|
|
| BLAKE2b-256 |
6a38509c307ebccf813a87ff801bef9697dca36bd186178e038fc9eee0434ffe
|
Provenance
The following attestation bundles were made for lang_parsing_substrate-0.6.1-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
wheels.yml on brandon-arrendondo/lang_parsing_substrate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lang_parsing_substrate-0.6.1-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
dc2769ce28cfbf0ee5784d07ed4424b907af84f42258838487954999f984c49d - Sigstore transparency entry: 2607740299
- Sigstore integration time:
-
Permalink:
brandon-arrendondo/lang_parsing_substrate@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/brandon-arrendondo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Trigger Event:
push
-
Statement type:
File details
Details for the file lang_parsing_substrate-0.6.1-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: lang_parsing_substrate-0.6.1-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e40dd849a3165ad590188fd90bd83676058ec95c4bff3249ce41abb54603d301
|
|
| MD5 |
7c2c6703d2bd4381d1e4b3b83c6462fc
|
|
| BLAKE2b-256 |
b94692ee1ef8c8bce314025d96f620152888ba2432639808082eeb7ebea63ea2
|
Provenance
The following attestation bundles were made for lang_parsing_substrate-0.6.1-cp310-abi3-macosx_10_12_x86_64.whl:
Publisher:
wheels.yml on brandon-arrendondo/lang_parsing_substrate
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lang_parsing_substrate-0.6.1-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
e40dd849a3165ad590188fd90bd83676058ec95c4bff3249ce41abb54603d301 - Sigstore transparency entry: 2607739930
- Sigstore integration time:
-
Permalink:
brandon-arrendondo/lang_parsing_substrate@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/brandon-arrendondo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@484bf7bfad8b8358772ceee69a5dfc56c50a64ab -
Trigger Event:
push
-
Statement type: