dbt-bouncer 1.31.0__tar.gz → 1.31.2rc2__tar.gz

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.
Files changed (41) hide show
  1. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/PKG-INFO +47 -24
  2. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/pyproject.toml +35 -44
  3. dbt_bouncer-1.31.2rc2/setup.cfg +4 -0
  4. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/manifest/check_exposures.py +2 -2
  5. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/version.py +1 -1
  6. dbt_bouncer-1.31.2rc2/src/dbt_bouncer.egg-info/PKG-INFO +171 -0
  7. dbt_bouncer-1.31.2rc2/src/dbt_bouncer.egg-info/SOURCES.txt +38 -0
  8. dbt_bouncer-1.31.2rc2/src/dbt_bouncer.egg-info/dependency_links.txt +1 -0
  9. dbt_bouncer-1.31.2rc2/src/dbt_bouncer.egg-info/entry_points.txt +2 -0
  10. dbt_bouncer-1.31.2rc2/src/dbt_bouncer.egg-info/requires.txt +40 -0
  11. dbt_bouncer-1.31.2rc2/src/dbt_bouncer.egg-info/top_level.txt +1 -0
  12. dbt_bouncer-1.31.0/src/dbt_bouncer/artifact_parsers/dbt_cloud/README.md +0 -3
  13. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/LICENSE +0 -0
  14. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/README.md +0 -0
  15. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/__init__.py +0 -0
  16. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/artifact_parsers/dbt_cloud/catalog_latest.py +0 -0
  17. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/artifact_parsers/dbt_cloud/manifest_latest.py +0 -0
  18. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/artifact_parsers/dbt_cloud/run_results_latest.py +0 -0
  19. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/artifact_parsers/parsers_catalog.py +0 -0
  20. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/artifact_parsers/parsers_common.py +0 -0
  21. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/artifact_parsers/parsers_manifest.py +0 -0
  22. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/artifact_parsers/parsers_run_results.py +0 -0
  23. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/check_base.py +0 -0
  24. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/catalog/check_catalog_sources.py +0 -0
  25. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/catalog/check_columns.py +0 -0
  26. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/common.py +0 -0
  27. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/manifest/check_lineage.py +0 -0
  28. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/manifest/check_macros.py +0 -0
  29. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/manifest/check_metadata.py +0 -0
  30. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/manifest/check_models.py +0 -0
  31. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/manifest/check_semantic_models.py +0 -0
  32. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/manifest/check_snapshots.py +0 -0
  33. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/manifest/check_sources.py +0 -0
  34. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/manifest/check_unit_tests.py +0 -0
  35. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/checks/run_results/check_run_results.py +0 -0
  36. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/config_file_parser.py +0 -0
  37. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/config_file_validator.py +0 -0
  38. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/logger.py +0 -0
  39. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/main.py +0 -0
  40. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/runner.py +0 -0
  41. {dbt_bouncer-1.31.0 → dbt_bouncer-1.31.2rc2}/src/dbt_bouncer/utils.py +0 -0
@@ -1,36 +1,60 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: dbt-bouncer
3
- Version: 1.31.0
3
+ Version: 1.31.2rc2
4
4
  Summary: Configure and enforce conventions for your dbt project.
5
- License: MIT
5
+ Author-email: Padraic Slattery <pgoslatara@gmail.com>
6
+ Maintainer-email: Padraic Slattery <pgoslatara@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: repository, https://github.com/godatadriven/dbt-bouncer
6
9
  Keywords: python,cli,dbt,CI/CD
7
- Author: Padraic Slattery
8
- Author-email: pgoslatara@gmail.com
9
- Maintainer: Padraic Slattery
10
- Maintainer-email: pgoslatara@gmail.com
11
- Requires-Python: >=3.11,<3.14
12
10
  Classifier: Programming Language :: Python
13
11
  Classifier: Programming Language :: Python :: 3
14
12
  Classifier: Programming Language :: Python :: 3 :: Only
15
13
  Classifier: Programming Language :: Python :: 3.11
16
14
  Classifier: Programming Language :: Python :: 3.12
17
15
  Classifier: Programming Language :: Python :: 3.13
18
- Requires-Dist: click (<9)
19
- Requires-Dist: dbt-artifacts-parser (>=0.8)
20
- Requires-Dist: h11 (>=0.16.0)
21
- Requires-Dist: jellyfish (>=1,<2)
22
- Requires-Dist: jinja2 (>=3,<4)
23
- Requires-Dist: jinja2-simple-tags (<1)
24
- Requires-Dist: packaging (<25)
25
- Requires-Dist: poetry (>=2.0.1,<3.0.0)
26
- Requires-Dist: progress
27
- Requires-Dist: pydantic (>=2,<3)
28
- Requires-Dist: pyyaml (<7)
29
- Requires-Dist: requests (>=2,<3)
30
- Requires-Dist: semver (<4)
31
- Requires-Dist: tabulate (<1)
32
- Requires-Dist: toml (<1)
16
+ Requires-Python: <3.14,>=3.11
33
17
  Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: click<9
20
+ Requires-Dist: dbt-artifacts-parser>=0.8
21
+ Requires-Dist: h11>=0.16.0
22
+ Requires-Dist: jellyfish<2,>=1
23
+ Requires-Dist: jinja2<4,>=3
24
+ Requires-Dist: jinja2-simple-tags<1
25
+ Requires-Dist: packaging<25
26
+ Requires-Dist: progress
27
+ Requires-Dist: pydantic<3,>=2
28
+ Requires-Dist: pyyaml<7
29
+ Requires-Dist: requests<3,>=2
30
+ Requires-Dist: tabulate<1
31
+ Requires-Dist: toml<1
32
+ Requires-Dist: semver<4
33
+ Provides-Extra: dev
34
+ Requires-Dist: autoflake~=2.0; extra == "dev"
35
+ Requires-Dist: black~=25.0; extra == "dev"
36
+ Requires-Dist: dbt-core<2,>=1.10.0; extra == "dev"
37
+ Requires-Dist: dbt-duckdb~=1.0; extra == "dev"
38
+ Requires-Dist: isort~=7.0; extra == "dev"
39
+ Requires-Dist: mypy~=1.0; extra == "dev"
40
+ Requires-Dist: pre-commit<5,>=3; extra == "dev"
41
+ Requires-Dist: pytest<=10; extra == "dev"
42
+ Requires-Dist: pytest-cov<8,>=5; extra == "dev"
43
+ Requires-Dist: pytest-xdist~=3.0; extra == "dev"
44
+ Requires-Dist: ruff~=0.0; extra == "dev"
45
+ Requires-Dist: shandy-sqlfmt[jinjafmt]~=0.0; extra == "dev"
46
+ Requires-Dist: types-PyYaml~=6.0; extra == "dev"
47
+ Requires-Dist: types-tabulate~=0.0; extra == "dev"
48
+ Requires-Dist: types-toml~=0.0; extra == "dev"
49
+ Provides-Extra: docs
50
+ Requires-Dist: mike~=2.0; extra == "docs"
51
+ Requires-Dist: mkdocs~=1.0; extra == "docs"
52
+ Requires-Dist: mkdocstrings-python<2; extra == "docs"
53
+ Requires-Dist: mkdocs-click~=0.0; extra == "docs"
54
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.0; extra == "docs"
55
+ Requires-Dist: mkdocs-material~=9.0; extra == "docs"
56
+ Requires-Dist: pymdown-extensions~=10.0; extra == "docs"
57
+ Dynamic: license-file
34
58
 
35
59
  <p align="center">
36
60
  <img src="https://github.com/godatadriven/dbt-bouncer/raw/main/docs/assets/logo.svg" alt="dbt-bouncer logo" width="500"/>
@@ -145,4 +169,3 @@ All documentation can be found on `dbt-bouncer` [documentation website](https://
145
169
  ## Code of Conduct
146
170
 
147
171
  Everyone interacting in `dbt-bouncer`'s codebase, issue trackers, chat rooms, and mailing lists is expected to follow the [Code of Conduct](./CODE_OF_CONDUCT.md).
148
-
@@ -22,8 +22,7 @@ dependencies =[
22
22
  "requests (>=2,<3)",
23
23
  "tabulate (<1)",
24
24
  "toml (<1)",
25
- "semver (<4)",
26
- "poetry (>=2.0.1,<3.0.0)"
25
+ "semver (<4)"
27
26
  ]
28
27
  description = "Configure and enforce conventions for your dbt project."
29
28
  keywords = [
@@ -36,13 +35,43 @@ license ="MIT"
36
35
  maintainers = [{name="Padraic Slattery",email="pgoslatara@gmail.com"}]
37
36
  name = "dbt-bouncer"
38
37
  readme = "README.md"
39
- repository = "https://github.com/godatadriven/dbt-bouncer"
40
38
  requires-python = ">=3.11,<3.14"
41
- version = "1.31.0"
39
+ version = "1.31.2rc2"
40
+
41
+ [project.optional-dependencies]
42
+ dev = [
43
+ "autoflake~=2.0",
44
+ "black~=25.0",
45
+ "dbt-core>=1.10.0,<2",
46
+ "dbt-duckdb~=1.0",
47
+ "isort~=7.0",
48
+ "mypy~=1.0",
49
+ "pre-commit>=3,<5",
50
+ "pytest<=10",
51
+ "pytest-cov>=5,<8",
52
+ "pytest-xdist~=3.0",
53
+ "ruff~=0.0",
54
+ "shandy-sqlfmt[jinjafmt]~=0.0",
55
+ "types-PyYaml~=6.0",
56
+ "types-tabulate~=0.0",
57
+ "types-toml~=0.0"
58
+ ]
59
+ docs = [
60
+ "mike~=2.0",
61
+ "mkdocs~=1.0",
62
+ "mkdocstrings-python<2",
63
+ "mkdocs-click~=0.0",
64
+ "mkdocs-git-revision-date-localized-plugin~=1.0",
65
+ "mkdocs-material~=9.0",
66
+ "pymdown-extensions~=10.0"
67
+ ]
42
68
 
43
69
  [project.scripts]
44
70
  dbt-bouncer = "dbt_bouncer.main:cli"
45
71
 
72
+ [project.urls]
73
+ repository = "https://github.com/godatadriven/dbt-bouncer"
74
+
46
75
  [tool.black]
47
76
  line-length = 99
48
77
  include = '/project$|\.pyi?$'
@@ -96,43 +125,6 @@ plugins = [
96
125
  ignore_missing_imports = true
97
126
  module = "dbt_artifacts_parser.*"
98
127
 
99
- [tool.poetry]
100
- packages = [
101
- {include = "dbt_bouncer", from = "src"},
102
- ]
103
- requires-poetry = ">=2.0.0"
104
-
105
- [tool.poetry.group.dev.dependencies]
106
- autoflake = "^2"
107
- black = "^25"
108
- dbt-core = ">=1.10.0,<2"
109
- dbt-duckdb = "^1"
110
- isort = "^7"
111
- mypy = "^1"
112
- pex = "^2"
113
- pre-commit = ">=3,<5"
114
- pytest = "<10"
115
- pytest-cov = ">=5,<8"
116
- pytest-xdist = "^3"
117
- ruff = "^0"
118
- sh = "^2"
119
- "shandy-sqlfmt" = {version = "^0", extras=["shandy-sqlfmt[jinjafmt]"]}
120
- types-PyYaml = "^6"
121
- types-tabulate = "^0"
122
- types-toml = "^0"
123
-
124
- [tool.poetry.group.docs.dependencies]
125
- mike = "^2"
126
- mkdocs = "^1"
127
- mkdocstrings = {extras = ["python"], version = "^0"}
128
- mkdocs-click = "^0"
129
- mkdocs-git-revision-date-localized-plugin = "^1"
130
- mkdocs-material = "^9"
131
- pymdown-extensions = {extras = ["details"], version = "^10"}
132
-
133
- [tool.poetry_bumpversion.file."./src/dbt_bouncer/version.py"]
134
- [tool.poetry_bumpversion.file."action.yml"]
135
-
136
128
  [tool.ruff]
137
129
  exclude = [
138
130
  ".bzr",
@@ -187,6 +179,5 @@ line-ending = "auto"
187
179
  quote-style = "double"
188
180
  skip-magic-trailing-comma = false
189
181
 
190
- [build-system]
191
- requires = ["poetry-core>=2.0.0"]
192
- build-backend = "poetry.core.masonry.api"
182
+ [tool.uv]
183
+ package = true
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -18,8 +18,8 @@ class CheckExposureOnModel(BaseCheck):
18
18
  """Exposures should depend on a model.
19
19
 
20
20
  Parameters:
21
- max_number_of_models (Optional[int]): The maximum number of models an exposure can depend on, defaults to 100.
22
- min_number_of_models (Optional[int]): The minimum number of models an exposure can depend on, defaults to 1.
21
+ maximum_number_of_models (Optional[int]): The maximum number of models an exposure can depend on, defaults to 100.
22
+ minimum_number_of_models (Optional[int]): The minimum number of models an exposure can depend on, defaults to 1.
23
23
 
24
24
  Receives:
25
25
  exposure (DbtBouncerExposureBase): The DbtBouncerExposureBase object to check.
@@ -5,4 +5,4 @@ def version() -> str:
5
5
  str: The version of `dbt-bouncer`.
6
6
 
7
7
  """
8
- return "1.31.0"
8
+ return "1.31.2rc2"
@@ -0,0 +1,171 @@
1
+ Metadata-Version: 2.4
2
+ Name: dbt-bouncer
3
+ Version: 1.31.2rc2
4
+ Summary: Configure and enforce conventions for your dbt project.
5
+ Author-email: Padraic Slattery <pgoslatara@gmail.com>
6
+ Maintainer-email: Padraic Slattery <pgoslatara@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: repository, https://github.com/godatadriven/dbt-bouncer
9
+ Keywords: python,cli,dbt,CI/CD
10
+ Classifier: Programming Language :: Python
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3 :: Only
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Requires-Python: <3.14,>=3.11
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: click<9
20
+ Requires-Dist: dbt-artifacts-parser>=0.8
21
+ Requires-Dist: h11>=0.16.0
22
+ Requires-Dist: jellyfish<2,>=1
23
+ Requires-Dist: jinja2<4,>=3
24
+ Requires-Dist: jinja2-simple-tags<1
25
+ Requires-Dist: packaging<25
26
+ Requires-Dist: progress
27
+ Requires-Dist: pydantic<3,>=2
28
+ Requires-Dist: pyyaml<7
29
+ Requires-Dist: requests<3,>=2
30
+ Requires-Dist: tabulate<1
31
+ Requires-Dist: toml<1
32
+ Requires-Dist: semver<4
33
+ Provides-Extra: dev
34
+ Requires-Dist: autoflake~=2.0; extra == "dev"
35
+ Requires-Dist: black~=25.0; extra == "dev"
36
+ Requires-Dist: dbt-core<2,>=1.10.0; extra == "dev"
37
+ Requires-Dist: dbt-duckdb~=1.0; extra == "dev"
38
+ Requires-Dist: isort~=7.0; extra == "dev"
39
+ Requires-Dist: mypy~=1.0; extra == "dev"
40
+ Requires-Dist: pre-commit<5,>=3; extra == "dev"
41
+ Requires-Dist: pytest<=10; extra == "dev"
42
+ Requires-Dist: pytest-cov<8,>=5; extra == "dev"
43
+ Requires-Dist: pytest-xdist~=3.0; extra == "dev"
44
+ Requires-Dist: ruff~=0.0; extra == "dev"
45
+ Requires-Dist: shandy-sqlfmt[jinjafmt]~=0.0; extra == "dev"
46
+ Requires-Dist: types-PyYaml~=6.0; extra == "dev"
47
+ Requires-Dist: types-tabulate~=0.0; extra == "dev"
48
+ Requires-Dist: types-toml~=0.0; extra == "dev"
49
+ Provides-Extra: docs
50
+ Requires-Dist: mike~=2.0; extra == "docs"
51
+ Requires-Dist: mkdocs~=1.0; extra == "docs"
52
+ Requires-Dist: mkdocstrings-python<2; extra == "docs"
53
+ Requires-Dist: mkdocs-click~=0.0; extra == "docs"
54
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin~=1.0; extra == "docs"
55
+ Requires-Dist: mkdocs-material~=9.0; extra == "docs"
56
+ Requires-Dist: pymdown-extensions~=10.0; extra == "docs"
57
+ Dynamic: license-file
58
+
59
+ <p align="center">
60
+ <img src="https://github.com/godatadriven/dbt-bouncer/raw/main/docs/assets/logo.svg" alt="dbt-bouncer logo" width="500"/>
61
+ </p>
62
+
63
+
64
+ <h1 align="center">
65
+ dbt-bouncer
66
+ </h1>
67
+ <h2 align="center">
68
+ Configure and enforce conventions for your dbt project.
69
+ </h2>
70
+
71
+ <div align="center">
72
+ <a>
73
+ <img src="https://img.shields.io/github/release/godatadriven/dbt-bouncer.svg?logo=github">
74
+ </a>
75
+ <a>
76
+ <img src="https://img.shields.io/badge/License-MIT-yellow.svg">
77
+ </a>
78
+ <a>
79
+ <img src="https://img.shields.io/github/last-commit/godatadriven/dbt-bouncer/main">
80
+ </a>
81
+ <a>
82
+ <img src="https://img.shields.io/github/commits-since/godatadriven/dbt-bouncer/latest">
83
+ </a>
84
+ </div>
85
+
86
+ <div align="center">
87
+ <a>
88
+ <img alt="dbt-core" src="https://img.shields.io/badge/dbt--core%20-%3E%3D1.7-333?logo=dbt">
89
+ </a>
90
+ <a>
91
+ <img alt="dbt Cloud Supported" src="https://img.shields.io/badge/dbt%20Cloud%20-Supported-ff694a?logo=dbt">
92
+ </a>
93
+ <a>
94
+ <img alt="Docker Supported" src="https://img.shields.io/badge/Docker%20-Supported-0db7ed?logo=docker">
95
+ </a>
96
+ <a>
97
+ <img alt="GitHub Supported" src="https://img.shields.io/badge/GitHub%20-Supported-333?logo=github">
98
+ </a>
99
+ </div>
100
+
101
+ <div align="center">
102
+ <a>
103
+ <img src="https://github.com/godatadriven/dbt-bouncer/actions/workflows/merge_pipeline.yml/badge.svg">
104
+ </a>
105
+ <a>
106
+ <img src="https://github.com/godatadriven/dbt-bouncer/actions/workflows/post_release_pipeline.yml/badge.svg">
107
+ </a>
108
+ <a>
109
+ <img src="https://img.shields.io/badge/style-ruff-41B5BE?style=flat">
110
+ </a>
111
+ <a>
112
+ <img src="https://www.aschey.tech/tokei/github/godatadriven/dbt-bouncer?category=code">
113
+ </a>
114
+ </div>
115
+ <br/>
116
+
117
+ ## Documentation
118
+
119
+ All documentation can be found on `dbt-bouncer` [documentation website](https://godatadriven.github.io/dbt-bouncer/).
120
+
121
+ ### TLDR
122
+
123
+ 1. Install `dbt-bouncer`:
124
+
125
+ ```shell
126
+ pip install dbt-bouncer
127
+ ```
128
+
129
+ 1. `dbt-bouncer` requires a `manifest.json` file. If not already present, run:
130
+
131
+ ```shell
132
+ dbt parse
133
+ ```
134
+
135
+ 1. Create a `dbt-bouncer.yml` config file:
136
+
137
+ ```yml
138
+ manifest_checks:
139
+ - name: check_model_directories
140
+ include: ^models
141
+ permitted_sub_directories:
142
+ - intermediate
143
+ - marts
144
+ - staging
145
+ - name: check_model_names
146
+ include: ^models/staging
147
+ model_name_pattern: ^stg_
148
+ ```
149
+
150
+ 1. Run `dbt-bouncer`:
151
+
152
+ ```
153
+ $ dbt-bouncer
154
+
155
+ [...]
156
+ Running checks... |################################| 20/20
157
+ Done. SUCCESS=19 WARN=0 ERROR=1
158
+ Failed checks:
159
+ | Check name | Severity | Failure message |
160
+ |--------------------------|----------|---------------------------------------------------------------------------------------|
161
+ | check_model_directories: | error | AssertionError: `model` is located in `utilities`, this is not a valid sub-directory. |
162
+ ```
163
+
164
+ ## Reporting bugs and contributing code
165
+
166
+ - Want to report a bug or request a feature? Let us know and open [an issue](https://github.com/godatadriven/dbt-bouncer/issues/new/choose).
167
+ - Want to help us build `dbt-bouncer`? Check out the [Contributing Guide](https://github.com/godatadriven/dbt-bouncer/blob/HEAD/docs/CONTRIBUTING.md).
168
+
169
+ ## Code of Conduct
170
+
171
+ Everyone interacting in `dbt-bouncer`'s codebase, issue trackers, chat rooms, and mailing lists is expected to follow the [Code of Conduct](./CODE_OF_CONDUCT.md).
@@ -0,0 +1,38 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ src/dbt_bouncer/__init__.py
5
+ src/dbt_bouncer/check_base.py
6
+ src/dbt_bouncer/config_file_parser.py
7
+ src/dbt_bouncer/config_file_validator.py
8
+ src/dbt_bouncer/logger.py
9
+ src/dbt_bouncer/main.py
10
+ src/dbt_bouncer/runner.py
11
+ src/dbt_bouncer/utils.py
12
+ src/dbt_bouncer/version.py
13
+ src/dbt_bouncer.egg-info/PKG-INFO
14
+ src/dbt_bouncer.egg-info/SOURCES.txt
15
+ src/dbt_bouncer.egg-info/dependency_links.txt
16
+ src/dbt_bouncer.egg-info/entry_points.txt
17
+ src/dbt_bouncer.egg-info/requires.txt
18
+ src/dbt_bouncer.egg-info/top_level.txt
19
+ src/dbt_bouncer/artifact_parsers/parsers_catalog.py
20
+ src/dbt_bouncer/artifact_parsers/parsers_common.py
21
+ src/dbt_bouncer/artifact_parsers/parsers_manifest.py
22
+ src/dbt_bouncer/artifact_parsers/parsers_run_results.py
23
+ src/dbt_bouncer/artifact_parsers/dbt_cloud/catalog_latest.py
24
+ src/dbt_bouncer/artifact_parsers/dbt_cloud/manifest_latest.py
25
+ src/dbt_bouncer/artifact_parsers/dbt_cloud/run_results_latest.py
26
+ src/dbt_bouncer/checks/common.py
27
+ src/dbt_bouncer/checks/catalog/check_catalog_sources.py
28
+ src/dbt_bouncer/checks/catalog/check_columns.py
29
+ src/dbt_bouncer/checks/manifest/check_exposures.py
30
+ src/dbt_bouncer/checks/manifest/check_lineage.py
31
+ src/dbt_bouncer/checks/manifest/check_macros.py
32
+ src/dbt_bouncer/checks/manifest/check_metadata.py
33
+ src/dbt_bouncer/checks/manifest/check_models.py
34
+ src/dbt_bouncer/checks/manifest/check_semantic_models.py
35
+ src/dbt_bouncer/checks/manifest/check_snapshots.py
36
+ src/dbt_bouncer/checks/manifest/check_sources.py
37
+ src/dbt_bouncer/checks/manifest/check_unit_tests.py
38
+ src/dbt_bouncer/checks/run_results/check_run_results.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ dbt-bouncer = dbt_bouncer.main:cli
@@ -0,0 +1,40 @@
1
+ click<9
2
+ dbt-artifacts-parser>=0.8
3
+ h11>=0.16.0
4
+ jellyfish<2,>=1
5
+ jinja2<4,>=3
6
+ jinja2-simple-tags<1
7
+ packaging<25
8
+ progress
9
+ pydantic<3,>=2
10
+ pyyaml<7
11
+ requests<3,>=2
12
+ tabulate<1
13
+ toml<1
14
+ semver<4
15
+
16
+ [dev]
17
+ autoflake~=2.0
18
+ black~=25.0
19
+ dbt-core<2,>=1.10.0
20
+ dbt-duckdb~=1.0
21
+ isort~=7.0
22
+ mypy~=1.0
23
+ pre-commit<5,>=3
24
+ pytest<=10
25
+ pytest-cov<8,>=5
26
+ pytest-xdist~=3.0
27
+ ruff~=0.0
28
+ shandy-sqlfmt[jinjafmt]~=0.0
29
+ types-PyYaml~=6.0
30
+ types-tabulate~=0.0
31
+ types-toml~=0.0
32
+
33
+ [docs]
34
+ mike~=2.0
35
+ mkdocs~=1.0
36
+ mkdocstrings-python<2
37
+ mkdocs-click~=0.0
38
+ mkdocs-git-revision-date-localized-plugin~=1.0
39
+ mkdocs-material~=9.0
40
+ pymdown-extensions~=10.0
@@ -0,0 +1 @@
1
+ dbt_bouncer
@@ -1,3 +0,0 @@
1
- dbt Cloud now supports a "versionless" mode. Unfortunately `dbt-artifacts-parser` does not support any modifications to the schema od dbt artifacts using this mode, see [here](https://github.com/yu-iskw/dbt-artifacts-parser/pull/112#issuecomment-2360298424) for more info.
2
-
3
- The purpose of this directory is to extend `dbt-artifacts-parser` to support dbt Cloud versionless mode by modifying the expected schema of dbt artifacts.
File without changes
File without changes