dbtective 0.1.27__py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
Binary file
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dbtective
|
|
3
|
+
Version: 0.1.27
|
|
4
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
5
|
+
Classifier: Environment :: Console
|
|
6
|
+
Classifier: Intended Audience :: Developers
|
|
7
|
+
Classifier: Operating System :: OS Independent
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Programming Language :: Rust
|
|
10
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Summary: dbtective is a Rust-powered 'detective' for `dbt metadata` best practices.
|
|
13
|
+
Keywords: dbt,linter,data,metadata,analytics,cli
|
|
14
|
+
Home-Page: https://github.com/feliblo/dbtective
|
|
15
|
+
Author-email: feliblo <hi@feliblo.dev>
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
18
|
+
Project-URL: Repository, https://github.com/feliblo/dbtective
|
|
19
|
+
Project-URL: Changelog, https://github.com/feliblo/dbtective/blob/master/CHANGELOG.md
|
|
20
|
+
Project-URL: Releases, https://github.com/feliblo/dbtective/releases
|
|
21
|
+
Project-URL: Homepage, https://feliblo.github.io/dbtective/
|
|
22
|
+
|
|
23
|
+
# 🕵️ dbtective
|
|
24
|
+
|
|
25
|
+
dbtective is a Rust-powered 'detective' for `dbt metadata` best practices. As your dbt project grows, keeping metadata consistent and high-quality can become a real challenge.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
Explore the [full documentation](https://feliblo.github.io/dbtective/docs) or the [possible checks](https://feliblo.github.io/dbtective/docs/checks).
|
|
32
|
+
|
|
33
|
+
> [!WARNING]
|
|
34
|
+
> dbtective is currently in very early stages.
|
|
35
|
+
> Issues and commits are welcome, but don't rely on us yet!
|
|
36
|
+
|
|
37
|
+
**dbtective** makes it easy to spot and fix common issues, examples:
|
|
38
|
+
|
|
39
|
+
- **Missing descriptions:** Does every model and seed have a description?
|
|
40
|
+
- **Column types:** Are all columns explicitly typed?
|
|
41
|
+
- **Ownership:** Do all sources have an owner?
|
|
42
|
+
- **Naming conventions:** Are all marts following your team's naming standards?
|
|
43
|
+
|
|
44
|
+
We detect and enforce these rules in your `cli`, `prek`/`pre-commit` and `CI/CD` pipeline, so fast you will barely notice🕵️.
|
|
45
|
+
|
|
46
|
+
## Installation
|
|
47
|
+
|
|
48
|
+
<details>
|
|
49
|
+
<summary>Pip (pypi)</summary>
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pip install dbtective
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
</details>
|
|
56
|
+
|
|
57
|
+
<details>
|
|
58
|
+
<summary> uv </summary>
|
|
59
|
+
|
|
60
|
+
Install as a dev dependency:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
uv add dbtective --dev
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
</details>
|
|
67
|
+
|
|
68
|
+
<details>
|
|
69
|
+
<summary>Homebrew</summary>
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
brew install feliblo/tap/dbtective
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
</details>
|
|
76
|
+
|
|
77
|
+
<details>
|
|
78
|
+
<summary>GitHub Actions</summary>
|
|
79
|
+
|
|
80
|
+
Run dbtective as part of your CI/CD pipeline. See the [GitHub Actions documentation](https://feliblo.github.io/dbtective/docs/github-actions) for more details.
|
|
81
|
+
|
|
82
|
+
```yaml
|
|
83
|
+
- uses: feliblo/dbtective@v0.1.27
|
|
84
|
+
with:
|
|
85
|
+
config-file: "dbtective.yml"
|
|
86
|
+
entry-point: "."
|
|
87
|
+
only-manifest: "true"
|
|
88
|
+
verbose: "false"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
</details>
|
|
92
|
+
|
|
93
|
+
<details>
|
|
94
|
+
<summary>prek/pre-commit</summary>
|
|
95
|
+
|
|
96
|
+
Prerequisite: `dbtective` is installed via one of the methods above.
|
|
97
|
+
|
|
98
|
+
We (currently) recommend using the `--only-manifest` flag with prek/pre-commit to avoid issues caused by `catalog.json` mismatches. For more details, see the explanation in the [checks documentation](https://feliblo.github.io/dbtective/docs/).
|
|
99
|
+
|
|
100
|
+
Add the following to your `.pre-commit-config.yaml`.
|
|
101
|
+
|
|
102
|
+
```yaml
|
|
103
|
+
repos:
|
|
104
|
+
- repo: https://github.com/feliblo/dbtective
|
|
105
|
+
rev: v0.1.27
|
|
106
|
+
hooks:
|
|
107
|
+
- id: dbtective-run
|
|
108
|
+
args: [--only-manifest]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
And run
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
prek install
|
|
115
|
+
prek run --all-files
|
|
116
|
+
# or with pre-commit
|
|
117
|
+
pre-commit install
|
|
118
|
+
pre-commit run --all-files
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
</details>
|
|
123
|
+
|
|
124
|
+
<details>
|
|
125
|
+
<summary>Shell installer (macOS/Linux)</summary>
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/feliblo/dbtective/releases/latest/download/dbtective-installer.sh | sh
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
</details>
|
|
132
|
+
|
|
133
|
+
<details>
|
|
134
|
+
<summary>PowerShell installer (Windows)</summary>
|
|
135
|
+
|
|
136
|
+
```powershell
|
|
137
|
+
irm https://github.com/feliblo/dbtective/releases/latest/download/dbtective-installer.ps1 | iex
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
</details>
|
|
141
|
+
|
|
142
|
+
<details>
|
|
143
|
+
<summary>Binary download</summary>
|
|
144
|
+
|
|
145
|
+
Pre-built binaries for Linux, macOS, and Windows are available on the [releases page](https://github.com/feliblo/dbtective/releases).
|
|
146
|
+
</details>
|
|
147
|
+
|
|
148
|
+
## Quickstart
|
|
149
|
+
|
|
150
|
+
All possible checks can be found in the [checks documentation](https://feliblo.github.io/dbtective/docs/). Information about customizing `dbtective` is shown at the [config documentation](https://feliblo.github.io/dbtective/docs/config)
|
|
151
|
+
|
|
152
|
+
1. Create a `dbtective.yml` config file in the root of your dbt project by running:
|
|
153
|
+
|
|
154
|
+
More about the `init` (it also supports `pyproject.toml` or `dbtective.toml`) command is available in the [init documentation](https://feliblo.github.io/dbtective/docs/cli#dbtective-init).
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
dbtective init
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Inspect the contents of the generated `dbtective.yml` file and modify it to fit your project's needs.
|
|
161
|
+
|
|
162
|
+
2. (Optional) Generate the dbt manifest and catalog files if you haven't done so already. Most dbt commands automatically generate the `manifest.json`, but if you want to ensure both files are up to date, run:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
dbt compile
|
|
166
|
+
dbt docs generate
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
3. Run `dbtective` in the root of your current directory or specify an entry point if your dbt_project is not located in the root/current drectory.
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
dbtective run
|
|
173
|
+
dbtective run --entry-point "my_dbt_project"
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
4. Review the output and fix any issues found.
|
|
177
|
+
|
|
178
|
+
5. (Optional) Integrate `dbtective` into your CI/CD pipeline or pre-commit hooks to automate checks on every commit and/or pull request.
|
|
179
|
+
|
|
180
|
+
## Contributing
|
|
181
|
+
|
|
182
|
+
We welcome contributions! Whether you're fixing bugs, adding features, or improving documentation, your help makes dbtective better for everyone.
|
|
183
|
+
|
|
184
|
+
For detailed contributing guidelines, development setup, and coding standards, please see the [contributing documentation](https://feliblo.github.io/dbtective/docs/).
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
# Acknowledgements
|
|
188
|
+
|
|
189
|
+
This project is heavily inspired dbt [dbt-bouncer](https://github.com/godatadriven/dbt-bouncer). It tries to improve certain aspects of the amazing work by [pgoslatara](https://github.com/pgoslatara), while giving me an opportunity to improve my Rust. More about the aspects we try to improve is available in our [FAQ](https://feliblo.github.io/dbtective/docs/faq).
|
|
190
|
+
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
dbtective-0.1.27.data/scripts/dbtective,sha256=u6LDgQ-ZoEaardvTCYRCOW7CGd2yKPUuYENxL9xHBLg,5907216
|
|
2
|
+
dbtective-0.1.27.dist-info/METADATA,sha256=t28rpHrkm61HUUyxQ_tWbMl86YCdTUg1nqusv9UaTxo,5988
|
|
3
|
+
dbtective-0.1.27.dist-info/WHEEL,sha256=ZyS98E7f-ucQDEf8830Uq5iHuzCPZGT5WSnZP3ULCfU,143
|
|
4
|
+
dbtective-0.1.27.dist-info/licenses/LICENSE,sha256=O7dTnnwWFrBYNrXOHBb5r35k5FuFVKVjbpk_Pm3lncg,1067
|
|
5
|
+
dbtective-0.1.27.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Felix Blom
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|