class_docstr: When joining data sets, this class helps to figure out the necessary partition specs to join on.
docstr: Figures out which partition dimensions to join on.
docstr_tok: ["Figures","out","which","partition","dimensions","to","join","on","."]
code: def resolve_partition_dimension_joins(
      self,
      start_node_spec_set: InstanceSpecSet,
      node_to_join_spec_set: InstanceSpecSet,
  ) -> Tuple[PartitionDimensionJoinDescription, ...]:
      """Figures out which partition dimensions to join on."""
      start_node_partitions = self._get_partitions(start_node_spec_set)
      join_node_partitions = self._get_partitions(node_to_join_spec_set)
  
      partition_join_descriptions = []
  
      start_node_dimension_element_names = tuple(
          OrderedDict.fromkeys(
              x.element_name
              for x in start_node_partitions.dimension_specs
          )
      )
  
      for element_name in start_node_dimension_element_names:
          start_node_spec = (
              PartitionJoinResolver._get_simplest_dimension_spec(
                  tuple(
                      x
                      for x in start_node_partitions.dimension_specs
                      if x.element_name == element_name
                  )
              )
          )
          join_node_time_dimension_element_names = tuple(
              OrderedDict.fromkeys(
                  x.element_name
                  for x in join_node_partitions.dimension_specs
              )
          )
          if element_name in join_node_time_dimension_element_names:
              join_node_spec = (
                  PartitionJoinResolver._get_simplest_dimension_spec(
                      tuple(
                          x
                          for x in join_node_partitions.dimension_specs
                          if x.element_name == element_name
                      )
                  )
              )
              partition_join_descriptions.append(
                  PartitionDimensionJoinDescription(
                      start_node_dimension_spec=start_node_spec,
                      node_to_join_dimension_spec=join_node_spec,
                  )
              )
  
      return tuple(partition_join_descriptions)
  
file_path: metricflow/metricflow/dataflow/builder/partitions.py
imports: from __future__ import annotations
  from collections import OrderedDict
  from dataclasses import dataclass
  from typing import List, Sequence, Tuple
  from metricflow.dataset.dataset import DataSet
  from metricflow.protocols.semantics import SemanticModelAccessor
  from metricflow.specs.specs import DimensionSpec, InstanceSpecSet, PartitionSpecSet, TimeDimensionSpec
label_desc: Use image node_id 4 for calling the PartitionJoinResolver obj's underlying member method code with example usage: obj.resolve_partition_dimension_joins(start_node_spec_set, node_to_join_spec_set) and returns: tuple