1{
2 lib,
3 buildPythonPackage,
4 click,
5 dateutils,
6 dbt-postgres,
7 fetchFromGitHub,
8 hatchling,
9 pythonRelaxDepsHook,
10 hypothesis,
11 importlib-metadata,
12 jinja2,
13 jsonschema,
14 more-itertools,
15 pydantic,
16 pytestCheckHook,
17 pythonOlder,
18 pyyaml,
19 typing-extensions,
20}:
21
22buildPythonPackage rec {
23 pname = "dbt-semantic-interfaces";
24 version = "0.4.4";
25 pyproject = true;
26
27 disabled = pythonOlder "3.8";
28
29 src = fetchFromGitHub {
30 owner = "dbt-labs";
31 repo = "dbt-semantic-interfaces";
32 rev = "refs/tags/v${version}";
33 hash = "sha256-uvwcnOKjwxEmA+/QRGSRofpoE4jZzmE02mGSDLINrJw=";
34 };
35
36 pythonRelaxDeps = [ "importlib-metadata" ];
37
38 build-system = [
39 hatchling
40 pythonRelaxDepsHook
41 ];
42
43 dependencies = [
44 click
45 dateutils
46 importlib-metadata
47 jinja2
48 jsonschema
49 more-itertools
50 pydantic
51 pyyaml
52 typing-extensions
53 ];
54
55 nativeCheckInputs = [
56 pytestCheckHook
57 hypothesis
58 ];
59
60 pythonImportsCheck = [ "dbt_semantic_interfaces" ];
61
62 meta = with lib; {
63 description = "Shared interfaces used by dbt-core and MetricFlow projects";
64 homepage = "https://github.com/dbt-labs/dbt-semantic-interfaces";
65 changelog = "https://github.com/dbt-labs/dbt-semantic-interfaces/releases/tag/v${version}";
66 license = licenses.asl20;
67 maintainers = with maintainers; [ pbsds ];
68 };
69}