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