class_docstr: Validates cases where a query requires metric_time to be specified as a group-by-item.
  
  Currently, known cases are:
  
  * Cumulative metrics.
  * Derived metrics with an offset time.g
code: def _group_by_items_include_metric_time(
      self, query_resolver_input: ResolverInputForQuery
  ) -> bool:
      for (
          group_by_item_input
      ) in query_resolver_input.group_by_item_inputs:
          if group_by_item_input.spec_pattern.matches_any(
              self._metric_time_specs
          ):
              return True
  
      return False
  
imports: from __future__ import annotations
  from typing import List, Sequence
  from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
  from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
  from dbt_semantic_interfaces.protocols import WhereFilterIntersection
  from dbt_semantic_interfaces.references import MetricReference
  from dbt_semantic_interfaces.type_enums import MetricType, TimeGranularity
  from dbt_semantic_interfaces.type_enums.date_part import DatePart
  from typing_extensions import override
  from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
  from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
  from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
  from metricflow.query.issues.parsing.cumulative_metric_requires_metric_time import CumulativeMetricRequiresMetricTimeIssue
  from metricflow.query.issues.parsing.offset_metric_requires_metric_time import OffsetMetricRequiresMetricTimeIssue
  from metricflow.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
  from metricflow.query.validation_rules.base_validation_rule import PostResolutionQueryValidationRule
  from metricflow.specs.specs import TimeDimensionSpec
label_desc: Use image node_id 2 for calling the MetricTimeQueryValidationRule obj's underlying member method code with example usage: obj._group_by_items_include_metric_time(query_resolver_input) and returns: False, True