class_docstr: Context for MetricFlow CLI.
docstr: Initialize the CLI context for executing commands.
  
  The dbt_artifacts construct must be loaded in order for logging configuration to work correctly.
docstr_tok: ["Initialize","the","CLI","context","for","executing","commands",".","The","dbt_artifacts","construct","must","be","loaded","in","order","for","logging","configuration","to","work","correctly","."]
code: def __init__(self) -> None:
      """Initialize the CLI context for executing commands.
  
      The dbt_artifacts construct must be loaded in order for logging configuration to work correctly.
      """
      self.verbose = False
      self._dbt_project_metadata: dbtProjectMetadata = (
          dbtProjectMetadata.load_from_project_path(pathlib.Path.cwd())
      )
      self._dbt_artifacts: Optional[dbtArtifacts] = None
      self._mf: Optional[MetricFlowEngine] = None
      self._sql_client: Optional[SqlClient] = None
      self._semantic_manifest: Optional[SemanticManifest] = None
      self._semantic_manifest_lookup: Optional[
          SemanticManifestLookup
      ] = None
      # self.log_file_path invokes the dbtRunner. If this is done after the configure_logging call all of the
      # dbt CLI logging configuration could be overridden, resulting in lots of things printing to console
      self._configure_logging(log_file_path=self.log_file_path)
  
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 1 to create a new CLIContext object  with example: obj = CLIContext()