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