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