class_docstr: Describes an issue with a query that includes a cumulative metric but does not include metric_time.
class_docstr_tok: ["Describes","an","issue","with","a","query","that","includes","a","cumulative","metric","but","does","not","include","metric_time","."]
code: def ui_description(
      self, associated_input: MetricFlowQueryResolverInput
  ) -> str:
      return (
          f"The query includes a cumulative metric {repr(self.metric_reference.element_name)} that does not "
          f"accumulate over all-time, but the group-by items do not include {repr(METRIC_TIME_ELEMENT_NAME)}"
      )
  
file_path: metricflow/metricflow/query/issues/parsing/cumulative_metric_requires_metric_time.py
imports: from __future__ import annotations
  from dataclasses import dataclass
  from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
  from dbt_semantic_interfaces.references import MetricReference
  from typing_extensions import override
  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 1 for calling the CumulativeMetricRequiresMetricTimeIssue obj's underlying member method code with example usage: obj.ui_description(associated_input) and returns: str, repr, str, repr