|
10 | 10 | from dbt_semantic_interfaces.transformations.add_input_metric_measures import ( |
11 | 11 | AddInputMetricMeasuresRule, |
12 | 12 | ) |
13 | | -from dbt_semantic_interfaces.transformations.boolean_aggregations import ( |
14 | | - BooleanAggregationRule, |
15 | | -) |
16 | 13 | from dbt_semantic_interfaces.transformations.boolean_measure import ( |
17 | 14 | BooleanMeasureAggregationRule, |
18 | 15 | ) |
19 | | -from dbt_semantic_interfaces.transformations.convert_count import ( |
20 | | - ConvertCountMetricToSumRule, |
21 | | - ConvertCountToSumRule, |
22 | | -) |
| 16 | +from dbt_semantic_interfaces.transformations.convert_count import ConvertCountToSumRule |
23 | 17 | from dbt_semantic_interfaces.transformations.convert_median import ( |
24 | | - ConvertMedianMetricToPercentile, |
25 | 18 | ConvertMedianToPercentileRule, |
26 | 19 | ) |
27 | 20 | from dbt_semantic_interfaces.transformations.cumulative_type_params import ( |
@@ -58,66 +51,24 @@ def _implements_protocol(self) -> SemanticManifestTransformRuleSet[PydanticSeman |
58 | 51 | return self |
59 | 52 |
|
60 | 53 | @property |
61 | | - def legacy_measure_update_rules( |
62 | | - self, |
63 | | - ) -> Sequence[SemanticManifestTransformRule[PydanticSemanticManifest]]: # noqa: D |
64 | | - """Legacy rules - Primarily editing legacy measures.""" |
| 54 | + def primary_rules(self) -> Sequence[SemanticManifestTransformRule[PydanticSemanticManifest]]: # noqa: |
| 55 | + return (LowerCaseNamesRule(),) |
| 56 | + |
| 57 | + @property |
| 58 | + def secondary_rules(self) -> Sequence[SemanticManifestTransformRule[PydanticSemanticManifest]]: # noqa: D |
65 | 59 | return ( |
| 60 | + CreateProxyMeasureRule(), |
66 | 61 | BooleanMeasureAggregationRule(), |
67 | 62 | ConvertCountToSumRule(), |
68 | 63 | ConvertMedianToPercentileRule(), |
69 | | - ) |
70 | | - |
71 | | - @property |
72 | | - def convert_legacy_measures_to_metrics_rules( |
73 | | - self, |
74 | | - ) -> Sequence[SemanticManifestTransformRule[PydanticSemanticManifest]]: # noqa: D |
75 | | - """Rules that create or update metrics to replace the use of legacy measures. |
76 | | -
|
77 | | - Should run after all measures are processed and fixed, but before polishing |
78 | | - all metrics (because the metrics need to be created here to be polished later). |
79 | | - """ |
80 | | - return ( |
81 | | - # CreateProxyMeasureRule should always run FIRST in this sequence. |
82 | | - CreateProxyMeasureRule(), # FIRST, I SAY! |
83 | | - # This populates "input_measures" for metric fields. |
84 | | - # This does NOT add new metrics or depend on most newly-added metrics, but it must |
85 | | - # run after CreateProxyMeasureRule() to ensure we have all the metrics we will need. |
86 | 64 | AddInputMetricMeasuresRule(), |
87 | | - FlattenSimpleMetricsWithMeasureInputsRule(), |
88 | | - ReplaceInputMeasuresWithSimpleMetricsTransformationRule(), |
89 | | - ) |
90 | | - |
91 | | - @property |
92 | | - def general_metric_update_rules( |
93 | | - self, |
94 | | - ) -> Sequence[SemanticManifestTransformRule[PydanticSemanticManifest]]: # noqa: D |
95 | | - """These rules apply once all metrics exist; they apply universally to any metric that meet their criteria. |
96 | | -
|
97 | | - These should be run AFTER all metrics exist. |
98 | | - """ |
99 | | - return ( |
100 | 65 | SetCumulativeTypeParamsRule(), |
101 | 66 | RemovePluralFromWindowGranularityRule(), |
102 | | - ConvertMedianMetricToPercentile(), |
103 | | - ConvertCountMetricToSumRule(), |
104 | | - BooleanAggregationRule(), |
| 67 | + # The following steps upgrade from old-style measure-including models to new-style metric-only models |
| 68 | + FlattenSimpleMetricsWithMeasureInputsRule(), |
| 69 | + ReplaceInputMeasuresWithSimpleMetricsTransformationRule(), |
105 | 70 | ) |
106 | 71 |
|
107 | | - @property |
108 | | - def primary_rules(self) -> Sequence[SemanticManifestTransformRule[PydanticSemanticManifest]]: # noqa: |
109 | | - return (LowerCaseNamesRule(),) |
110 | | - |
111 | | - @property |
112 | | - def secondary_rules(self) -> Sequence[SemanticManifestTransformRule[PydanticSemanticManifest]]: # noqa: D |
113 | | - """Secondary rules - Primarily editing, copying, or adapting measures and metrics.""" |
114 | | - # Order matters here! |
115 | | - return [ |
116 | | - *self.legacy_measure_update_rules, |
117 | | - *self.convert_legacy_measures_to_metrics_rules, |
118 | | - *self.general_metric_update_rules, |
119 | | - ] |
120 | | - |
121 | 72 | @property |
122 | 73 | def all_rules(self) -> Sequence[Sequence[SemanticManifestTransformRule[PydanticSemanticManifest]]]: # noqa: D |
123 | 74 | return self.primary_rules, self.secondary_rules |
0 commit comments