class_docstr: Visitor that resolves specs for all filters in a resolution DAG and builds a lookup.
  
  This visitor traverses the group-by-item resolution DAG and if there is a where filter associated with the node,
  this resolves (ambiguous) group-by-items that are specified in the filter. All resolutions are
  collected and returned in a lookup object.
class_docstr_tok: ["Visitor","that","resolves","specs","for","all","filters","in","a","resolution","DAG","and","builds","a","lookup",".","This","visitor","traverses","the","group-by-item","resolution","DAG","and","if","there","is","a","where","filter","associated","with","the","node",",","this","resolves","(","ambiguous",")","group-by-items","that","are","specified","in","the","filter",".","All","resolutions","are","collected","and","returned","in","a","lookup","object","."]
docstr: Given the call parameter sets in a filter, map them to spec patterns.
  
  If a given call parameter set has already been resolved and in spec_resolution_lookup_so_far, it is skipped and
  not returned in the dictionary.
  
  This assumes that the items in filter_call_parameter_sets have been deduped.
docstr_tok: ["Given","the","call","parameter","sets","in","a","filter",",","map","them","to","spec","patterns",".","If","a","given","call","parameter","set","has","already","been","resolved","and","in","spec_resolution_lookup_so_far",",","it","is","skipped","and","not","returned","in","the","dictionary",".","This","assumes","that","the","items","in","filter_call_parameter_sets","have","been","deduped","."]
code: def _map_filter_parameter_sets_to_pattern(
      self,
      filter_call_parameter_sets: FilterCallParameterSets,
  ) -> Sequence[PatternAssociationForWhereFilterGroupByItem]:
      """Given the call parameter sets in a filter, map them to spec patterns.
  
      If a given call parameter set has already been resolved and in spec_resolution_lookup_so_far, it is skipped and
      not returned in the dictionary.
  
      This assumes that the items in filter_call_parameter_sets have been deduped.
      """
      patterns_in_filter: List[
          PatternAssociationForWhereFilterGroupByItem
      ] = []
      for (
          dimension_call_parameter_set
      ) in filter_call_parameter_sets.dimension_call_parameter_sets:
          patterns_in_filter.append(
              PatternAssociationForWhereFilterGroupByItem(
                  call_parameter_set=dimension_call_parameter_set,
                  object_builder_str=ObjectBuilderNameConverter.input_str_from_dimension_call_parameter_set(
                      dimension_call_parameter_set
                  ),
                  spec_pattern=self._spec_pattern_factory.create_for_dimension_call_parameter_set(
                      dimension_call_parameter_set
                  ),
              )
          )
      for (
          time_dimension_call_parameter_set
      ) in (
          filter_call_parameter_sets.time_dimension_call_parameter_sets
      ):
          patterns_in_filter.append(
              PatternAssociationForWhereFilterGroupByItem(
                  call_parameter_set=time_dimension_call_parameter_set,
                  object_builder_str=ObjectBuilderNameConverter.input_str_from_time_dimension_call_parameter_set(
                      time_dimension_call_parameter_set
                  ),
                  spec_pattern=self._spec_pattern_factory.create_for_time_dimension_call_parameter_set(
                      time_dimension_call_parameter_set
                  ),
              )
          )
      for (
          entity_call_parameter_set
      ) in filter_call_parameter_sets.entity_call_parameter_sets:
          patterns_in_filter.append(
              PatternAssociationForWhereFilterGroupByItem(
                  call_parameter_set=entity_call_parameter_set,
                  object_builder_str=ObjectBuilderNameConverter.input_str_from_entity_call_parameter_set(
                      entity_call_parameter_set
                  ),
                  spec_pattern=self._spec_pattern_factory.create_for_entity_call_parameter_set(
                      entity_call_parameter_set
                  ),
              )
          )
  
      return patterns_in_filter
  
imports: from __future__ import annotations
  import itertools
  import logging
  from typing import List, Sequence
  from dbt_semantic_interfaces.call_parameter_sets import FilterCallParameterSets
  from dbt_semantic_interfaces.implementations.filters.where_filter import PydanticWhereFilterIntersection
  from dbt_semantic_interfaces.protocols import WhereFilter, WhereFilterIntersection
  from typing_extensions import override
  from metricflow.mf_logging.runtime import log_runtime
  from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
  from metricflow.naming.object_builder_str import ObjectBuilderNameConverter
  from metricflow.query.group_by_item.candidate_push_down.push_down_visitor import DagTraversalPathTracker
  from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
  from metricflow.query.group_by_item.filter_spec_resolution.filter_pattern_factory import WhereFilterPatternFactory
  from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import FilterSpecResolution, FilterSpecResolutionLookUp, NonParsableFilterResolution, PatternAssociationForWhereFilterGroupByItem, ResolvedSpecLookUpKey
  from metricflow.query.group_by_item.group_by_item_resolver import GroupByItemResolver
  from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag, ResolutionDagSinkNode
  from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import GroupByItemResolutionNodeVisitor
  from metricflow.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import MeasureGroupByItemSourceNode
  from metricflow.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import MetricGroupByItemResolutionNode
  from metricflow.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import NoMetricsGroupByItemSourceNode
  from metricflow.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import QueryGroupByItemResolutionNode
  from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
  from metricflow.query.issues.filter_spec_resolver.invalid_where import WhereFilterParsingIssue
  from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
label_desc: Use image node_id 3 for calling the _ResolveWhereFilterSpecVisitor obj's underlying member method code with example usage: obj._map_filter_parameter_sets_to_pattern(filter_call_parameter_sets) and returns: patterns_in_filter