diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f50e6a0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +.venv +.env +venv +env +__pycache__ +.pytest_cache + +target +logs diff --git a/data-tests/.gitkeep b/data-tests/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Street_Tree_List.csv b/data/Street_Tree_List.csv similarity index 100% rename from Street_Tree_List.csv rename to data/Street_Tree_List.csv diff --git a/dbt_project.yml b/dbt_project.yml new file mode 100644 index 0000000..4fc548a --- /dev/null +++ b/dbt_project.yml @@ -0,0 +1,35 @@ +config-version: 2 + +name: dbtree +version: "0.0.1" +require-dbt-version: ">=1.7.8" + +# Highly recommend setting this project up on dbt Cloud, +# then you can use the dbt Cloud CLI, which is very awesome +# https://docs.getdbt.com/docs/cloud/cloud-cli-installation +# dbt-cloud: +# project-id: + +profile: dbtree + +model-paths: ["models"] +analysis-paths: ["analyses"] +test-paths: ["data-tests"] +seed-paths: ["seeds"] +macro-paths: ["macros"] +snapshot-paths: ["snapshots"] + +target-path: "target" +clean-targets: + - "target" + - "dbt_packages" + +vars: + "dbt_date:time_zone": "America/Los_Angeles" + +models: + dbtree: + staging: + +materialized: view + marts: + +materialized: table diff --git a/macros/.gitkeep b/macros/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/models/intermediate/.gitkeep b/models/intermediate/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/models/marts/.gitkeep b/models/marts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/models/staging/.gitkeep b/models/staging/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages.yml b/packages.yml new file mode 100644 index 0000000..0bb2bdd --- /dev/null +++ b/packages.yml @@ -0,0 +1,11 @@ +packages: + - package: dbt-labs/dbt_utils + version: 1.1.1 + - package: dbt-labs/codegen + version: 0.12.1 + - package: calogica/dbt_date + version: 0.10.0 + - package: calogica/dbt_expectations + version: 0.10.3 + - package: emilyriederer/dbtplyr + version: 0.3.3 diff --git a/profiles.yml b/profiles.yml new file mode 100644 index 0000000..de961d9 --- /dev/null +++ b/profiles.yml @@ -0,0 +1,10 @@ +dbtree: + target: dev + outputs: + dev: + type: duckdb + path: ./dbtree.db + database: dbtree + schema: sf + threads: 8 + diff --git a/requirements.in b/requirements.in new file mode 100644 index 0000000..7aa83fd --- /dev/null +++ b/requirements.in @@ -0,0 +1,6 @@ +csv-diff~=1.1.0 +dbt-metricflow[duckdb]~=0.6.0 +pre-commit~=3.6.0 +sqlfluff~=2.3.5 +sqlfluff-templater-dbt~=2.3.5 +duckdb~=0.9.2 diff --git a/requirements.txt b/requirements.txt index 36b7b30..de08d2d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,257 @@ -csv-diff +# This file was autogenerated by uv via the following command: +# uv pip compile requirements.in -o requirements.txt +agate==1.7.1 + # via dbt-core +appdirs==1.4.4 + # via sqlfluff +attrs==23.2.0 + # via + # jsonschema + # referencing +babel==2.14.0 + # via agate +certifi==2024.2.2 + # via requests +cffi==1.16.0 + # via dbt-core +cfgv==3.4.0 + # via pre-commit +chardet==5.2.0 + # via + # diff-cover + # sqlfluff +charset-normalizer==3.3.2 + # via requests +click==8.1.7 + # via + # csv-diff + # dbt-core + # dbt-semantic-interfaces + # metricflow + # sqlfluff +colorama==0.4.6 + # via + # dbt-core + # halo + # log-symbols + # sqlfluff +csv-diff==1.1 +dbt-core==1.7.10 + # via + # dbt-duckdb + # dbt-metricflow + # metricflow + # sqlfluff-templater-dbt +dbt-duckdb==1.7.3 + # via dbt-metricflow +dbt-extractor==0.5.1 + # via dbt-core +dbt-metricflow==0.6.0 +dbt-semantic-interfaces==0.4.4 + # via + # dbt-core + # metricflow +dictdiffer==0.9.0 + # via csv-diff +diff-cover==8.0.3 + # via sqlfluff +distlib==0.3.8 + # via virtualenv +duckdb==0.9.2 + # via dbt-duckdb +exceptiongroup==1.2.0 + # via pytest +filelock==3.13.1 + # via virtualenv +graphviz==0.20.1 + # via metricflow +halo==0.0.31 + # via metricflow +identify==2.5.35 + # via pre-commit +idna==3.6 + # via + # dbt-core + # requests +importlib-metadata==6.11.0 + # via dbt-semantic-interfaces +iniconfig==2.0.0 + # via pytest +isodate==0.6.1 + # via + # agate + # dbt-core +jinja2==3.1.3 + # via + # dbt-core + # dbt-semantic-interfaces + # diff-cover + # jinja2-simple-tags + # metricflow + # sqlfluff +jinja2-simple-tags==0.6.1 + # via sqlfluff-templater-dbt +jsonschema==4.21.1 + # via + # dbt-core + # dbt-semantic-interfaces +jsonschema-specifications==2023.12.1 + # via jsonschema +leather==0.4.0 + # via agate +log-symbols==0.0.14 + # via halo +logbook==1.5.3 + # via dbt-core +markdown-it-py==3.0.0 + # via rich +markupsafe==2.1.5 + # via + # jinja2 + # sqlfluff-templater-dbt +mashumaro==3.12 + # via dbt-core +mdurl==0.1.2 + # via markdown-it-py +metricflow==0.205.0 + # via dbt-metricflow +minimal-snowplow-tracker==0.0.2 + # via dbt-core +more-itertools==10.1.0 + # via + # dbt-semantic-interfaces + # metricflow +msgpack==1.0.8 + # via mashumaro +networkx==3.2.1 + # via dbt-core +nodeenv==1.8.0 + # via pre-commit +numpy==1.26.4 + # via pandas +packaging==24.0 + # via + # dbt-core + # pytest +pandas==1.5.3 + # via metricflow +parsedatetime==2.6 + # via agate +pathspec==0.11.2 + # via + # dbt-core + # sqlfluff +platformdirs==4.2.0 + # via virtualenv +pluggy==1.4.0 + # via + # diff-cover + # pytest +pre-commit==3.6.2 +protobuf==4.25.3 + # via dbt-core +pycparser==2.21 + # via cffi +pydantic==1.10.14 + # via + # dbt-semantic-interfaces + # metricflow + # sqlfluff-templater-dbt +pygments==2.17.2 + # via + # diff-cover + # rich +pytest==8.1.1 + # via sqlfluff +python-dateutil==2.8.2 + # via + # dbt-semantic-interfaces + # metricflow + # pandas +python-slugify==8.0.4 + # via agate +pytimeparse==1.1.8 + # via agate +pytz==2024.1 + # via + # dbt-core + # pandas +pyyaml==6.0.1 + # via + # dbt-core + # dbt-semantic-interfaces + # metricflow + # pre-commit + # sqlfluff +rapidfuzz==3.6.2 + # via metricflow +referencing==0.34.0 + # via + # jsonschema + # jsonschema-specifications +regex==2023.12.25 + # via sqlfluff +requests==2.31.0 + # via + # dbt-core + # minimal-snowplow-tracker + # update-checker +rich==13.7.1 + # via sqlfluff-templater-dbt +rpds-py==0.18.0 + # via + # jsonschema + # referencing +ruamel-yaml==0.17.40 + # via + # metricflow + # sqlfluff-templater-dbt +ruamel-yaml-clib==0.2.8 + # via ruamel-yaml +setuptools==69.2.0 + # via nodeenv +six==1.16.0 + # via + # halo + # isodate + # minimal-snowplow-tracker + # python-dateutil +spinners==0.0.24 + # via halo +sqlfluff==2.3.5 + # via sqlfluff-templater-dbt +sqlfluff-templater-dbt==2.3.5 +sqlparse==0.4.4 + # via dbt-core +tabulate==0.9.0 + # via metricflow +tblib==3.0.0 + # via sqlfluff +termcolor==2.4.0 + # via halo +text-unidecode==1.3 + # via python-slugify +toml==0.10.2 + # via sqlfluff +tomli==2.0.1 + # via pytest +tqdm==4.66.2 + # via sqlfluff +typing-extensions==4.10.0 + # via + # dbt-core + # dbt-semantic-interfaces + # mashumaro + # metricflow + # pydantic + # sqlfluff +update-checker==0.18.0 + # via metricflow +urllib3==1.26.18 + # via + # dbt-core + # requests +virtualenv==20.25.1 + # via pre-commit +zipp==3.18.1 + # via importlib-metadata