class_docstr: Context for MetricFlow CLI.
code: def semantic_manifest_lookup(
      self,
  ) -> SemanticManifestLookup:  # noqa: D
      if self._semantic_manifest_lookup is None:
          self._build_semantic_manifest_lookup()
      assert self._semantic_manifest_lookup is not None
      return self._semantic_manifest_lookup
  
imports: from __future__ import annotations
  import logging
  import pathlib
  from logging.handlers import TimedRotatingFileHandler
  from typing import Dict, Optional
  from dbt_semantic_interfaces.protocols.semantic_manifest import SemanticManifest
  from metricflow.cli.dbt_connectors.adapter_backed_client import AdapterBackedSqlClient
  from metricflow.cli.dbt_connectors.dbt_config_accessor import dbtArtifacts, dbtProjectMetadata
  from metricflow.engine.metricflow_engine import MetricFlowEngine
  from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
  from metricflow.protocols.sql_client import SqlClient
label_desc: Use image node_id 10 for calling the CLIContext obj's underlying member method code with example usage: obj.semantic_manifest_lookup() and returns: self