class_docstr: Checks to see if a join between two semantic models should be allowed.
class_docstr_tok: ["Checks","to","see","if","a","join","between","two","semantic","models","should","be","allowed","."]
docstr: Return true if we should allow a join with the given parameters to resolve a query.
docstr_tok: ["Return","true","if","we","should","allow","a","join","with","the","given","parameters","to","resolve","a","query","."]
code: def is_valid_semantic_model_join(
      self,
      left_semantic_model_reference: SemanticModelReference,
      right_semantic_model_reference: SemanticModelReference,
      on_entity_reference: EntityReference,
  ) -> bool:
      """Return true if we should allow a join with the given parameters to resolve a query."""
      return (
          self.get_valid_semantic_model_entity_join_type(
              left_semantic_model_reference=left_semantic_model_reference,
              right_semantic_model_reference=right_semantic_model_reference,
              on_entity_reference=on_entity_reference,
          )
          is not None
      )
  
file_path: metricflow/metricflow/model/semantics/semantic_model_join_evaluator.py
imports: from __future__ import annotations
  from dataclasses import dataclass
  from typing import Dict, List, Optional
  from dbt_semantic_interfaces.pretty_print import pformat_big_objects
  from dbt_semantic_interfaces.protocols.entity import EntityType
  from dbt_semantic_interfaces.references import EntityReference, SemanticModelElementReference, SemanticModelReference
  from metricflow.instances import EntityInstance, InstanceSet
  from metricflow.protocols.semantics import SemanticModelAccessor
label_desc: Use image node_id 5 for calling the SemanticModelJoinEvaluator obj's underlying member method code with example usage: obj.is_valid_semantic_model_join(left_semantic_model_reference, right_semantic_model_reference, on_entity_reference) and returns: unknown