class_docstr: Context for MetricFlow CLI.
docstr: Property accessor for dbt project metadata, useful in cases where the full manifest load is not needed.
docstr_tok: ["Property","accessor","for","dbt","project","metadata",",","useful","in","cases","where","the","full","manifest","load","is","not","needed","."]
code: def dbt_project_metadata(self) -> dbtProjectMetadata:
      """Property accessor for dbt project metadata, useful in cases where the full manifest load is not needed."""
      return self._dbt_project_metadata
  
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 3 for calling the CLIContext obj's underlying member method code with example usage: obj.dbt_project_metadata() and returns: self