Skip to content

Commit 8791c10

Browse files
committed
Remove unused methods
1 parent 8792314 commit 8791c10

File tree

1 file changed

+2
-93
lines changed

1 file changed

+2
-93
lines changed

metricflow-semantics/metricflow_semantics/model/semantics/metric_lookup.py

Lines changed: 2 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
11
from __future__ import annotations
22

33
import logging
4-
import time
5-
from typing import Dict, Final, Iterable, Optional, Sequence, Set, Tuple
4+
from typing import Dict, Final, Iterable, Optional, Sequence, Set
65

76
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
87
from dbt_semantic_interfaces.protocols.metric import Metric, MetricInputMeasure, MetricType
98
from dbt_semantic_interfaces.protocols.semantic_manifest import SemanticManifest
109
from dbt_semantic_interfaces.references import MeasureReference, MetricReference
1110
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
1211

13-
from metricflow_semantics.collection_helpers.lru_cache import LruCache
1412
from metricflow_semantics.errors.error_classes import DuplicateMetricError, MetricNotFoundError, NonExistentMeasureError
1513
from metricflow_semantics.experimental.ordered_set import FrozenOrderedSet
1614
from metricflow_semantics.experimental.semantic_graph.attribute_resolution.annotated_spec_linkable_element_set import (
1715
GroupByItemSet,
1816
)
19-
from metricflow_semantics.mf_logging.lazy_formattable import LazyFormat
2017
from metricflow_semantics.model.linkable_element_property import GroupByItemProperty
2118
from metricflow_semantics.model.semantics.element_filter import GroupByItemSetFilter
2219
from metricflow_semantics.model.semantics.linkable_element_set_base import BaseGroupByItemSet
@@ -68,98 +65,11 @@ def __init__(
6865
MetricReference, Sequence[TimeDimensionSpec]
6966
] = {}
7067

71-
# Cache for `linkable_elements_for_measure()`.
72-
self._group_by_item_set_for_measure_cache: Dict[
73-
Tuple[MeasureReference, GroupByItemSetFilter], BaseGroupByItemSet
74-
] = {}
75-
76-
self._group_by_items_including_metrics_cache = LruCache[
77-
Tuple[MeasureReference, GroupByItemSetFilter], BaseGroupByItemSet
78-
](128)
79-
self._group_by_items_for_no_metrics_query_cache = LruCache[GroupByItemSetFilter, BaseGroupByItemSet](128)
80-
self._group_by_items_for_metrics_cache = LruCache[
81-
Tuple[Sequence[MetricReference], GroupByItemSetFilter], BaseGroupByItemSet
82-
](128)
83-
84-
def linkable_elements_for_measure(
85-
self,
86-
measure_reference: MeasureReference,
87-
element_filter: GroupByItemSetFilter = GroupByItemSetFilter(),
88-
) -> BaseGroupByItemSet:
89-
"""Return the set of linkable elements reachable from a given measure."""
90-
start_time = time.perf_counter()
91-
92-
# Cache the result when group-by-metrics are selected in an LRU cache as there can be many of them and may
93-
# significantly increase memory usage.
94-
if (
95-
GroupByItemProperty.METRIC in element_filter.with_any_of
96-
and GroupByItemProperty.METRIC not in element_filter.without_any_of
97-
):
98-
cache_key = (measure_reference, element_filter)
99-
result = self._group_by_items_including_metrics_cache.get(cache_key)
100-
if result is not None:
101-
return result
102-
103-
result = self._group_by_item_set_resolver.get_common_set(
104-
measure_references=[measure_reference], metric_references=[], set_filter=element_filter
105-
)
106-
self._group_by_items_including_metrics_cache.set(cache_key, result)
107-
return result
108-
109-
# Cache the result without element names in the filter for better hit rates.
110-
set_filter_without_element_names = element_filter.without_element_names()
111-
cache_key = (measure_reference, set_filter_without_element_names)
112-
113-
result = self._group_by_item_set_for_measure_cache.get(cache_key)
114-
if result is not None:
115-
return result.filter(element_filter)
116-
117-
result = self._group_by_item_set_resolver.get_common_set(
118-
measure_references=[measure_reference], metric_references=[], set_filter=set_filter_without_element_names
119-
)
120-
self._group_by_item_set_for_measure_cache[cache_key] = result
121-
122-
logger.debug(
123-
LazyFormat(
124-
"Finished getting linkable elements",
125-
measure_reference=measure_reference,
126-
set_filter=element_filter,
127-
runtime=time.perf_counter() - start_time,
128-
)
129-
)
130-
return result.filter(element_filter)
131-
13268
def get_group_by_items_for_distinct_values_query(
13369
self, element_set_filter: GroupByItemSetFilter = GroupByItemSetFilter()
13470
) -> BaseGroupByItemSet:
13571
"""Return the reachable linkable elements for a dimension values query with no metrics."""
136-
cache_key = element_set_filter
137-
result = self._group_by_items_for_no_metrics_query_cache.get(cache_key)
138-
if result is not None:
139-
return result
140-
141-
result = self._group_by_item_set_resolver.get_set_for_distinct_values_query(element_set_filter)
142-
self._group_by_items_for_no_metrics_query_cache.set(cache_key, result)
143-
return result
144-
145-
def linkable_elements_for_metrics(
146-
self, metric_references: Sequence[MetricReference], set_filter: GroupByItemSetFilter
147-
) -> BaseGroupByItemSet:
148-
"""Retrieve the matching set of linkable elements common to all metrics requested (intersection)."""
149-
cache_key = (metric_references, set_filter)
150-
result = self._group_by_items_for_metrics_cache.get(cache_key)
151-
if result is not None:
152-
return result
153-
154-
# This method has never returned group-by metrics, so ensure via filter.
155-
effective_filter = set_filter.copy(
156-
without_any_of=set_filter.without_any_of.union((GroupByItemProperty.METRIC,))
157-
)
158-
result = self._group_by_item_set_resolver.get_common_set(
159-
metric_references=metric_references, set_filter=effective_filter
160-
)
161-
self._group_by_items_for_metrics_cache.set(cache_key, result)
162-
return result
72+
return self._group_by_item_set_resolver.get_set_for_distinct_values_query(element_set_filter)
16373

16474
def get_common_group_by_items(
16575
self,
@@ -168,7 +78,6 @@ def get_common_group_by_items(
16878
set_filter: GroupByItemSetFilter = DEFAULT_COMMON_SET_FILTER,
16979
) -> BaseGroupByItemSet:
17080
"""Gets the set of the valid group-by items common to all inputs."""
171-
17281
if set_filter.element_names is None:
17382
return self._group_by_item_set_resolver.get_common_set(
17483
measure_references=measure_references,

0 commit comments

Comments
 (0)