-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathexample_project_configuration.py
64 lines (61 loc) · 2.24 KB
/
example_project_configuration.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import textwrap
from dbt_semantic_interfaces.implementations.node_relation import PydanticNodeRelation
from dbt_semantic_interfaces.implementations.project_configuration import (
PydanticProjectConfiguration,
)
from dbt_semantic_interfaces.implementations.time_spine import (
PydanticTimeSpine,
PydanticTimeSpineCustomGranularityColumn,
PydanticTimeSpinePrimaryColumn,
)
from dbt_semantic_interfaces.implementations.time_spine_table_configuration import (
PydanticTimeSpineTableConfiguration,
)
from dbt_semantic_interfaces.parsing.objects import YamlConfigFile
from dbt_semantic_interfaces.type_enums import TimeGranularity
EXAMPLE_PROJECT_CONFIGURATION = PydanticProjectConfiguration(
time_spine_table_configurations=[
PydanticTimeSpineTableConfiguration(
location="example_schema.example_table",
column_name="ds",
grain=TimeGranularity.DAY,
)
],
time_spines=[
PydanticTimeSpine(
node_relation=PydanticNodeRelation(alias="day_time_spine", schema_name="stuff"),
primary_column=PydanticTimeSpinePrimaryColumn(name="ds_day", time_granularity=TimeGranularity.DAY),
custom_granularities=[
PydanticTimeSpineCustomGranularityColumn(name="retail_year"),
PydanticTimeSpineCustomGranularityColumn(name="martian_week", column_name="meep_meep_wk"),
],
)
],
)
EXAMPLE_PROJECT_CONFIGURATION_YAML_CONFIG_FILE = YamlConfigFile(
filepath="projection_configuration_yaml_file_path",
contents=textwrap.dedent(
"""\
project_configuration:
time_spine_table_configurations:
- location: example_schema.example_table
column_name: ds
grain: day
time_spines:
- node_relation:
schema_name: stuff
alias: day_time_spine
primary_column:
name: ds_day
time_granularity: day
- node_relation:
schema_name: stuffs
alias: week_time_spine
primary_column:
name: ds
time_granularity: week
custom_granularities:
- name: martian_week
"""
),
)