1{ lib
2, python3
3, buildPythonPackage
4, fetchFromGitHub
5, agate
6, cffi
7, click
8, colorama
9, dbt-extractor
10, hologram
11, idna
12, isodate
13, jinja2
14, logbook
15, mashumaro
16, minimal-snowplow-tracker
17, networkx
18, packaging
19, pathspec
20, protobuf
21, pythonRelaxDepsHook
22, pytz
23, pyyaml
24, requests
25, sqlparse
26, typing-extensions
27, urllib3
28, werkzeug
29}:
30
31buildPythonPackage rec {
32 pname = "dbt-core";
33 version = "1.6.2";
34 format = "setuptools";
35
36 src = fetchFromGitHub {
37 owner = "dbt-labs";
38 repo = pname;
39 rev = "refs/tags/v${version}";
40 hash = "sha256-zmZdFOB0jQHamRJ7Zuzr/augP6Y2smAdUvqSXDZDuwo=";
41 };
42
43 sourceRoot = "${src.name}/core";
44
45 nativeBuildInputs = [
46 pythonRelaxDepsHook
47 ];
48
49 pythonRelaxDeps = [
50 "agate"
51 "click"
52 "mashumaro"
53 "networkx"
54 "logbook"
55 ];
56
57 propagatedBuildInputs = [
58 agate
59 cffi
60 click
61 colorama
62 dbt-extractor
63 hologram
64 idna
65 isodate
66 jinja2
67 logbook
68 mashumaro
69 minimal-snowplow-tracker
70 networkx
71 packaging
72 pathspec
73 protobuf
74 pytz
75 pyyaml
76 requests
77 sqlparse
78 typing-extensions
79 urllib3
80 werkzeug
81 ] ++ mashumaro.optional-dependencies.msgpack;
82
83 # tests exist for the dbt tool but not for this package specifically
84 doCheck = false;
85
86 passthru = {
87 withAdapters = python3.pkgs.callPackage ./with-adapters.nix { };
88 };
89
90 meta = with lib; {
91 description = "Enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications";
92 longDescription = ''
93 The dbt tool needs adapters to data sources in order to work. The available
94 adapters are:
95
96 dbt-bigquery
97 dbt-postgres
98 dbt-redshift
99 dbt-snowflake
100
101 An example of building this package with a few adapters:
102
103 dbt.withAdapters (adapters: [
104 adapters.dbt-bigquery
105 adapters.dbt-postgres
106 ])
107 '';
108 homepage = "https://github.com/dbt-labs/dbt-core";
109 changelog = "https://github.com/dbt-labs/dbt-core/blob/v${version}/CHANGELOG.md";
110 license = licenses.asl20;
111 maintainers = with maintainers; [ mausch tjni ];
112 mainProgram = "dbt";
113 };
114}