class_docstr: Adds semantics information to the user configured model.
code: def __init__(
      self, semantic_manifest: SemanticManifest
  ) -> None:  # noqa: D
      self._semantic_manifest = semantic_manifest
      self._semantic_model_lookup = SemanticModelLookup(
          semantic_manifest
      )
      self._metric_lookup = MetricLookup(
          self._semantic_manifest, self._semantic_model_lookup
      )
  
file_path: metricflow/metricflow/model/semantic_manifest_lookup.py
imports: from __future__ import annotations
  import logging
  from dbt_semantic_interfaces.pretty_print import pformat_big_objects
  from dbt_semantic_interfaces.protocols.semantic_manifest import SemanticManifest
  from dbt_semantic_interfaces.type_enums import TimeGranularity
  from metricflow.dataflow.sql_table import SqlTable
  from metricflow.model.semantics.metric_lookup import MetricLookup
  from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
  from metricflow.plan_conversion.time_spine import TimeSpineSource
  from metricflow.protocols.semantics import SemanticModelAccessor
label_desc: Use image node_id 1 to create a new SemanticManifestLookup object  with example: obj = SemanticManifestLookup(semantic_manifest)