dbt-extractor
A tool to analyze and extract information from Jinja used in dbt projects.
Install
dbt-extractor on PyPI
pip
pip install dbt-extractoruv
uv add dbt-extractorpoetry
poetry add dbt-extractorPackage facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 493 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: dbt_extractor-0.6.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; dbt_extractor-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl; dbt_extractor-0.6.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; dbt_extractor-0.6.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; dbt_extractor-0.6.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl; dbt_extractor-0.6.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; dbt_extractor-0.6.0-cp39-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl; dbt_extractor-0.6.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl; dbt_extractor-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; dbt_extractor-0.6.0-cp39-abi3-musllinux_1_2_aarch64.whl; dbt_extractor-0.6.0-cp39-abi3-musllinux_1_2_armv7l.whl; dbt_extractor-0.6.0-cp39-abi3-musllinux_1_2_i686.whl; dbt_extractor-0.6.0-cp39-abi3-musllinux_1_2_x86_64.whl; dbt_extractor-0.6.0-cp39-abi3-win32.whl; dbt_extractor-0.6.0-cp39-abi3-win_amd64.whl
About dbt-extractor
from the package's own PyPI description — quoted content, verbatim
dbt extractor
Understanding dbt-extractor
This repository contains a tool that processes the most common jinja value templates in dbt model files. The tool depends on tree-sitter and the tree-sitter-jinja2 library.
Getting started
- Read the introduction and viewpoint of dbt
Strategy
The current strategy is for this processor to be 100% certain when it can accurately extract values from a given model file. Anything less than 100% certainty returns an exception so that the model can be rendered with python Jinja instead.
There are two cases we want to avoid because they would risk correctness to user's projects: 1. Confidently extracting values that would not be extracted by python jinja (false positives) 2. Confidently extracting a set of values that are missing values that python jinja would have extracted. (misses)
If we instead error when we could have confidently extracted values, there is no correctness risk to the user. Only an opportunity to expand the rules to encompass this class of cases as well.
Even though jinja in dbt is not...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
dbt-extractor parses and extracts Jinja template values from dbt model files with high confidence, using tree-sitter to identify refs, sources, and config values without executing Python Jinja rendering.
Medium install friction due to compiled Rust bindings (cp39-abi3 wheels across multiple platforms), but well-supported across macOS, Linux, and Windows architectures. Active maintenance with recent release (493 days since 0.6.0) and a stable production classification.
Apache-2.0 permissive license allows broad commercial and private use with minimal restrictions, making it suitable for most organizational adoption.
Usage
pip install dbt-extractor==0.6.0
from dbt_extractor import parse_jinja
result = parse_jinja('{{ ref("my_table") }}')
Requires Python >=3.9; compiled Rust extension requires a compatible platform wheel (macOS 10.12+, Linux glibc 2.17+, or Windows).
Verdict: dbt-extractor is a production-ready, actively maintained tool for static Jinja extraction in dbt projects with no known vulnerabilities. Its conservative extraction strategy (100% confidence or error) prioritizes correctness over coverage. The Apache-2.0 license and broad platform support make it accessible, though the compiled Rust dependency adds moderate install complexity.
Needs verification
- Whether the tool is intended for end-user direct use or primarily as a library dependency within dbt tooling
- Performance characteristics and typical extraction latency on large dbt projects
- Specific Jinja features and dbt constructs currently supported by the type checker
Similar packages
permissive · top 1,000 on PyPI
dbt-commonpermissive · top 1,000 on PyPI
dbt-adapterspermissive · top 1,000 on PyPI
virtualenvpermissive · top 100 on PyPI
llama-cloud-servicespermissive · top 1,000 on PyPI
tree-sitter-languagespermissive · top 1,000 on PyPI
Jinja2permissive · top 100 on PyPI
uritemplatepermissive · top 1,000 on PyPI
pdfminer.sixpermissive · top 1,000 on PyPI
Makopermissive · top 1,000 on PyPI