Skip to content

Commit f44b6dc

Browse files
Rename OffsetBaseGrainByCustomGrainNode -> OffsetQueriedGrainByCustomGrainNode
This reflects the change in behavior from this PR.
1 parent a7d68d8 commit f44b6dc

File tree

12 files changed

+46
-44
lines changed

12 files changed

+46
-44
lines changed

metricflow/dataflow/builder/dataflow_plan_builder.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
from metricflow.dataflow.nodes.join_to_time_spine import JoinToTimeSpineNode
9191
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
9292
from metricflow.dataflow.nodes.min_max import MinMaxNode
93-
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetBaseGrainByCustomGrainNode
93+
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetQueriedGrainByCustomGrainNode
9494
from metricflow.dataflow.nodes.offset_custom_granularity import OffsetCustomGranularityNode
9595
from metricflow.dataflow.nodes.order_by_limit import OrderByLimitNode
9696
from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
@@ -2068,7 +2068,7 @@ def build_custom_offset_time_spine_node(
20682068
time_spine_read_nodes = {custom_time_spine_read_node: None}
20692069
for time_spine_source in required_time_spine_sources:
20702070
time_spine_read_nodes[self._choose_time_spine_read_node(time_spine_source)] = None
2071-
return OffsetBaseGrainByCustomGrainNode.create(
2071+
return OffsetQueriedGrainByCustomGrainNode.create(
20722072
time_spine_nodes=tuple(time_spine_read_nodes.keys()),
20732073
offset_window=offset_window,
20742074
required_time_spine_specs=required_time_spine_specs,

metricflow/dataflow/dataflow_plan_visitor.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from metricflow.dataflow.nodes.join_to_time_spine import JoinToTimeSpineNode
2424
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
2525
from metricflow.dataflow.nodes.min_max import MinMaxNode
26-
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetBaseGrainByCustomGrainNode
26+
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetQueriedGrainByCustomGrainNode
2727
from metricflow.dataflow.nodes.offset_custom_granularity import OffsetCustomGranularityNode
2828
from metricflow.dataflow.nodes.order_by_limit import OrderByLimitNode
2929
from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
@@ -129,8 +129,8 @@ def visit_alias_specs_node(self, node: AliasSpecsNode) -> VisitorOutputT: # noq
129129
raise NotImplementedError
130130

131131
@abstractmethod
132-
def visit_offset_base_grain_by_custom_grain_node( # noqa: D102
133-
self, node: OffsetBaseGrainByCustomGrainNode
132+
def visit_offset_queried_grain_by_custom_grain_node( # noqa: D102
133+
self, node: OffsetQueriedGrainByCustomGrainNode
134134
) -> VisitorOutputT:
135135
raise NotImplementedError
136136

@@ -236,8 +236,8 @@ def visit_alias_specs_node(self, node: AliasSpecsNode) -> VisitorOutputT: # noq
236236
return self._default_handler(node)
237237

238238
@override
239-
def visit_offset_base_grain_by_custom_grain_node( # noqa: D102
240-
self, node: OffsetBaseGrainByCustomGrainNode
239+
def visit_offset_queried_grain_by_custom_grain_node( # noqa: D102
240+
self, node: OffsetQueriedGrainByCustomGrainNode
241241
) -> VisitorOutputT:
242242
return self._default_handler(node)
243243

metricflow/dataflow/nodes/offset_base_grain_by_custom_grain.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717

1818
@dataclass(frozen=True, eq=False)
19-
class OffsetBaseGrainByCustomGrainNode(DataflowPlanNode, ABC):
19+
class OffsetQueriedGrainByCustomGrainNode(DataflowPlanNode, ABC):
2020
"""For a given custom grain, offset its base grain by the requested number of custom grain periods.
2121
2222
Used to build the time spine node when querying a metric with a custom offset window with any grains / date parts.
@@ -40,36 +40,36 @@ def __post_init__(self) -> None: # noqa: D105
4040
if spec.has_custom_grain:
4141
raise ValueError(
4242
LazyFormat(
43-
"Found custom grain in required specs, which is not supported by OffsetBaseGrainByCustomGrainNode.",
43+
"Found custom grain in required specs, which is not supported by OffsetQueriedGrainByCustomGrainNode.",
4444
required_time_spine_specs=self.required_time_spine_specs,
4545
)
4646
)
4747
if self.offset_window.is_standard_granularity:
4848
raise ValueError(
4949
LazyFormat(
50-
"OffsetBaseGrainByCustomGrainNode should only be used for custom grain offset windows.",
50+
"OffsetQueriedGrainByCustomGrainNode should only be used for custom grain offset windows.",
5151
offset_window=self.offset_window,
5252
)
5353
)
5454
num_time_spine_nodes = len(self.time_spine_nodes)
5555
if num_time_spine_nodes == 0 or num_time_spine_nodes > 2:
5656
raise RuntimeError(
5757
LazyFormat(
58-
"1-2 time spine nodes required for OffsetBaseGrainByCustomGrainNode.",
58+
"1-2 time spine nodes required for OffsetQueriedGrainByCustomGrainNode.",
5959
time_spine_nodes=self.time_spine_nodes,
6060
)
6161
)
6262
assert (
6363
len(self.required_time_spine_specs) > 0
64-
), "At least one time spine spec required for OffsetBaseGrainByCustomGrainNode."
64+
), "At least one time spine spec required for OffsetQueriedGrainByCustomGrainNode."
6565

6666
@staticmethod
6767
def create( # noqa: D102
6868
time_spine_nodes: Tuple[DataflowPlanNode, ...],
6969
offset_window: MetricTimeWindow,
7070
required_time_spine_specs: Sequence[TimeDimensionSpec],
71-
) -> OffsetBaseGrainByCustomGrainNode:
72-
return OffsetBaseGrainByCustomGrainNode(
71+
) -> OffsetQueriedGrainByCustomGrainNode:
72+
return OffsetQueriedGrainByCustomGrainNode(
7373
parent_nodes=time_spine_nodes,
7474
time_spine_nodes=time_spine_nodes,
7575
offset_window=offset_window,
@@ -81,7 +81,7 @@ def id_prefix(cls) -> IdPrefix: # noqa: D102
8181
return StaticIdPrefix.DATAFLOW_NODE_OFFSET_BY_CUSTOM_GRANULARITY_ID_PREFIX
8282

8383
def accept(self, visitor: DataflowPlanNodeVisitor[VisitorOutputT]) -> VisitorOutputT: # noqa: D102
84-
return visitor.visit_offset_base_grain_by_custom_grain_node(self)
84+
return visitor.visit_offset_queried_grain_by_custom_grain_node(self)
8585

8686
@property
8787
def description(self) -> str: # noqa: D102
@@ -103,8 +103,8 @@ def functionally_identical(self, other_node: DataflowPlanNode) -> bool: # noqa:
103103

104104
def with_new_parents( # noqa: D102
105105
self, new_parent_nodes: Sequence[DataflowPlanNode]
106-
) -> OffsetBaseGrainByCustomGrainNode:
107-
return OffsetBaseGrainByCustomGrainNode(
106+
) -> OffsetQueriedGrainByCustomGrainNode:
107+
return OffsetQueriedGrainByCustomGrainNode(
108108
parent_nodes=tuple(new_parent_nodes),
109109
time_spine_nodes=tuple(new_parent_nodes),
110110
offset_window=self.offset_window,

metricflow/dataflow/nodes/offset_custom_granularity.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def __post_init__(self) -> None: # noqa: D105
3333
if self.offset_window.is_standard_granularity:
3434
raise ValueError(
3535
LazyFormat(
36-
"OffsetBaseGrainByCustomGrainNode should only be used for custom grain offset windows.",
36+
"OffsetQueriedGrainByCustomGrainNode should only be used for custom grain offset windows.",
3737
offset_window=self.offset_window,
3838
)
3939
)

metricflow/dataflow/optimizer/predicate_pushdown_optimizer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
from metricflow.dataflow.nodes.join_to_time_spine import JoinToTimeSpineNode
3131
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
3232
from metricflow.dataflow.nodes.min_max import MinMaxNode
33-
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetBaseGrainByCustomGrainNode
33+
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetQueriedGrainByCustomGrainNode
3434
from metricflow.dataflow.nodes.offset_custom_granularity import OffsetCustomGranularityNode
3535
from metricflow.dataflow.nodes.order_by_limit import OrderByLimitNode
3636
from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
@@ -474,8 +474,8 @@ def visit_join_to_custom_granularity_node( # noqa: D102
474474
def visit_alias_specs_node(self, node: AliasSpecsNode) -> OptimizeBranchResult: # noqa: D102
475475
raise NotImplementedError
476476

477-
def visit_offset_base_grain_by_custom_grain_node( # noqa: D102
478-
self, node: OffsetBaseGrainByCustomGrainNode
477+
def visit_offset_queried_grain_by_custom_grain_node( # noqa: D102
478+
self, node: OffsetQueriedGrainByCustomGrainNode
479479
) -> OptimizeBranchResult:
480480
raise NotImplementedError
481481

metricflow/dataflow/optimizer/source_scan/cm_branch_combiner.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from metricflow.dataflow.nodes.join_to_time_spine import JoinToTimeSpineNode
2626
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
2727
from metricflow.dataflow.nodes.min_max import MinMaxNode
28-
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetBaseGrainByCustomGrainNode
28+
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetQueriedGrainByCustomGrainNode
2929
from metricflow.dataflow.nodes.offset_custom_granularity import OffsetCustomGranularityNode
3030
from metricflow.dataflow.nodes.order_by_limit import OrderByLimitNode
3131
from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
@@ -475,8 +475,8 @@ def visit_alias_specs_node(self, node: AliasSpecsNode) -> ComputeMetricsBranchCo
475475
self._log_visit_node_type(node)
476476
return self._default_handler(node)
477477

478-
def visit_offset_base_grain_by_custom_grain_node( # noqa: D102
479-
self, node: OffsetBaseGrainByCustomGrainNode
478+
def visit_offset_queried_grain_by_custom_grain_node( # noqa: D102
479+
self, node: OffsetQueriedGrainByCustomGrainNode
480480
) -> ComputeMetricsBranchCombinerResult:
481481
self._log_visit_node_type(node)
482482
return self._default_handler(node)

metricflow/dataflow/optimizer/source_scan/source_scan_optimizer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
from metricflow.dataflow.nodes.join_to_time_spine import JoinToTimeSpineNode
2828
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
2929
from metricflow.dataflow.nodes.min_max import MinMaxNode
30-
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetBaseGrainByCustomGrainNode
30+
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetQueriedGrainByCustomGrainNode
3131
from metricflow.dataflow.nodes.offset_custom_granularity import OffsetCustomGranularityNode
3232
from metricflow.dataflow.nodes.order_by_limit import OrderByLimitNode
3333
from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
@@ -366,8 +366,8 @@ def visit_alias_specs_node(self, node: AliasSpecsNode) -> OptimizeBranchResult:
366366
self._log_visit_node_type(node)
367367
return self._default_base_output_handler(node)
368368

369-
def visit_offset_base_grain_by_custom_grain_node( # noqa: D102
370-
self, node: OffsetBaseGrainByCustomGrainNode
369+
def visit_offset_queried_grain_by_custom_grain_node( # noqa: D102
370+
self, node: OffsetQueriedGrainByCustomGrainNode
371371
) -> OptimizeBranchResult:
372372
self._log_visit_node_type(node)
373373
return self._default_base_output_handler(node)

metricflow/execution/dataflow_to_execution.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from metricflow.dataflow.nodes.join_to_time_spine import JoinToTimeSpineNode
2525
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
2626
from metricflow.dataflow.nodes.min_max import MinMaxNode
27-
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetBaseGrainByCustomGrainNode
27+
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetQueriedGrainByCustomGrainNode
2828
from metricflow.dataflow.nodes.offset_custom_granularity import OffsetCustomGranularityNode
2929
from metricflow.dataflow.nodes.order_by_limit import OrderByLimitNode
3030
from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
@@ -209,8 +209,8 @@ def visit_alias_specs_node(self, node: AliasSpecsNode) -> ConvertToExecutionPlan
209209
raise NotImplementedError
210210

211211
@override
212-
def visit_offset_base_grain_by_custom_grain_node(
213-
self, node: OffsetBaseGrainByCustomGrainNode
212+
def visit_offset_queried_grain_by_custom_grain_node(
213+
self, node: OffsetQueriedGrainByCustomGrainNode
214214
) -> ConvertToExecutionPlanResult:
215215
raise NotImplementedError
216216

metricflow/plan_conversion/to_sql_plan/dataflow_to_cte.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from metricflow.dataflow.nodes.join_to_time_spine import JoinToTimeSpineNode
2929
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
3030
from metricflow.dataflow.nodes.min_max import MinMaxNode
31-
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetBaseGrainByCustomGrainNode
31+
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetQueriedGrainByCustomGrainNode
3232
from metricflow.dataflow.nodes.offset_custom_granularity import OffsetCustomGranularityNode
3333
from metricflow.dataflow.nodes.order_by_limit import OrderByLimitNode
3434
from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
@@ -263,11 +263,11 @@ def visit_alias_specs_node(self, node: AliasSpecsNode) -> SqlDataSet: # noqa: D
263263
return self._default_handler(node=node, node_to_select_subquery_function=super().visit_alias_specs_node)
264264

265265
@override
266-
def visit_offset_base_grain_by_custom_grain_node(
267-
self, node: OffsetBaseGrainByCustomGrainNode
266+
def visit_offset_queried_grain_by_custom_grain_node(
267+
self, node: OffsetQueriedGrainByCustomGrainNode
268268
) -> SqlDataSet: # noqa: D102
269269
return self._default_handler(
270-
node=node, node_to_select_subquery_function=super().visit_offset_base_grain_by_custom_grain_node
270+
node=node, node_to_select_subquery_function=super().visit_offset_queried_grain_by_custom_grain_node
271271
)
272272

273273
@override

metricflow/plan_conversion/to_sql_plan/dataflow_to_subquery.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
from metricflow.dataflow.nodes.join_to_time_spine import JoinToTimeSpineNode
8585
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
8686
from metricflow.dataflow.nodes.min_max import MinMaxNode
87-
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetBaseGrainByCustomGrainNode
87+
from metricflow.dataflow.nodes.offset_base_grain_by_custom_grain import OffsetQueriedGrainByCustomGrainNode
8888
from metricflow.dataflow.nodes.offset_custom_granularity import OffsetCustomGranularityNode
8989
from metricflow.dataflow.nodes.order_by_limit import OrderByLimitNode
9090
from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
@@ -1880,7 +1880,7 @@ def strip_time_from_dt(ts: dt.datetime) -> dt.datetime:
18801880
),
18811881
)
18821882

1883-
def visit_offset_base_grain_by_custom_grain_node(self, node: OffsetBaseGrainByCustomGrainNode) -> SqlDataSet:
1883+
def visit_offset_queried_grain_by_custom_grain_node(self, node: OffsetQueriedGrainByCustomGrainNode) -> SqlDataSet:
18841884
"""Builds a query to implement an offset window that uses a custom grain.
18851885
18861886
The query implements the offset window by offsetting the custom grain's base grain by the requested number of custom

0 commit comments

Comments
 (0)