class_docstr: Describes an issue with the query where the input is ambiguous and it can't be resolved.
code: def ui_description(
      self, associated_input: MetricFlowQueryResolverInput
  ) -> str:
      if associated_input.input_pattern_description is not None:
          naming_scheme = (
              associated_input.input_pattern_description.naming_scheme
          )
      else:
          naming_scheme = ObjectBuilderNamingScheme()
      candidates_str: List[str] = []
  
      for spec in self.candidate_set.specs:
          input_str = naming_scheme.input_str(spec)
          if input_str is not None:
              candidates_str.append(input_str)
          else:
              candidates_str.append(str(spec))
      return (
          f"The given input is ambiguous and can't be resolved. The input could match:\n\n"
          f"{indent(mf_pformat(candidates_str))}"
      )
  
file_path: metricflow/metricflow/query/issues/group_by_item_resolver/ambiguous_group_by_item.py
imports: from __future__ import annotations
  from dataclasses import dataclass
  from typing import List
  from typing_extensions import override
  from metricflow.mf_logging.formatting import indent
  from metricflow.mf_logging.pretty_print import mf_pformat
  from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
  from metricflow.query.group_by_item.candidate_push_down.group_by_item_candidate import GroupByItemCandidateSet
  from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
  from metricflow.query.issues.issues_base import MetricFlowQueryIssueType, MetricFlowQueryResolutionIssue
  from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
label_desc: Use image node_id 2 for calling the AmbiguousGroupByItemIssue obj's underlying member method code with example usage: obj.ui_description(associated_input) and returns: str, indent