class_docstr: Validates that a query does not include the same metric multiple times.
class_docstr_tok: ["Validates","that","a","query","does","not","include","the","same","metric","multiple","times","."]
code: def __init__(
      self, manifest_lookup: SemanticManifestLookup
  ) -> None:  # noqa: D
      super().__init__(manifest_lookup=manifest_lookup)
  
file_path: metricflow/metricflow/query/validation_rules/duplicate_metric.py
imports: from __future__ import annotations
  import logging
  from typing import Sequence
  from dbt_semantic_interfaces.protocols import WhereFilterIntersection
  from dbt_semantic_interfaces.references import MetricReference
  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.duplicate_metric import DuplicateMetricIssue
  from metricflow.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
  from metricflow.query.validation_rules.base_validation_rule import PostResolutionQueryValidationRule
label_desc: Use image node_id 1 to create a new DuplicateMetricValidationRule object from inherited base classes: PostResolutionQueryValidationRule with example: obj = DuplicateMetricValidationRule(manifest_lookup)