class_docstr: Context for MetricFlow CLI.
docstr: Property accessor for the sql_client class used in the CLI.
docstr_tok: ["Property","accessor","for","the","sql_client","class","used","in","the","CLI","."]
code: def sql_client(self) -> SqlClient:
      """Property accessor for the sql_client class used in the CLI."""
      if self._sql_client is None:
          self._sql_client = AdapterBackedSqlClient(
              self.dbt_artifacts.adapter
          )
  
      return self._sql_client
  
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 6 for calling the CLIContext obj's underlying member method code with example usage: obj.sql_client() and returns: self