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