class_docstr: Dataclass representation of a Dimension.
class_docstr_tok: ["Dataclass","representation","of","a","Dimension","."]
docstr: Renders the qualified name without the granularity suffix.
  
  In the list metrics and list dimensions outputs we want to render the qualified name of the dimension, but
  without including the base granularity for time dimensions. This method is useful in those contexts.
  
  Note: in most cases you should be using the qualified_name - this is only useful in cases where the
  Dimension set has de-duplicated TimeDimensions such that you never have more than one granularity
  in your set for each TimeDimension.
docstr_tok: ["Renders","the","qualified","name","without","the","granularity","suffix",".","In","the","list","metrics","and","list","dimensions","outputs","we","want","to","render","the","qualified","name","of","the","dimension",",","but","without","including","the","base","granularity","for","time","dimensions",".","This","method","is","useful","in","those","contexts",".","Note",":","in","most","cases","you","should","be","using","the","qualified_name","-","this","is","only","useful","in","cases","where","the","Dimension","set","has","de-duplicated","TimeDimensions","such","that","you","never","have","more","than","one","granularity","in","your","set","for","each","TimeDimension","."]
code: def granularity_free_qualified_name(self) -> str:
      """Renders the qualified name without the granularity suffix.
  
      In the list metrics and list dimensions outputs we want to render the qualified name of the dimension, but
      without including the base granularity for time dimensions. This method is useful in those contexts.
  
      Note: in most cases you should be using the qualified_name - this is only useful in cases where the
      Dimension set has de-duplicated TimeDimensions such that you never have more than one granularity
      in your set for each TimeDimension.
      """
      return StructuredLinkableSpecName.from_name(
          qualified_name=self.qualified_name
      ).granularity_free_qualified_name
  
imports: from __future__ import annotations
  from dataclasses import dataclass
  from typing import List, Optional, Sequence
  from dbt_semantic_interfaces.implementations.elements.dimension import PydanticDimensionTypeParams
  from dbt_semantic_interfaces.protocols.dimension import Dimension
  from dbt_semantic_interfaces.protocols.dimension import DimensionType, DimensionTypeParams
  from dbt_semantic_interfaces.protocols.entity import Entity
  from dbt_semantic_interfaces.protocols.measure import MeasureAggregationParameters
  from dbt_semantic_interfaces.protocols.metadata import Metadata
  from dbt_semantic_interfaces.protocols.metric import Metric
  from dbt_semantic_interfaces.protocols.metric import MetricInputMeasure, MetricType, MetricTypeParams
  from dbt_semantic_interfaces.protocols.saved_query import SavedQuery
  from dbt_semantic_interfaces.protocols.saved_query import SavedQueryQueryParams
  from dbt_semantic_interfaces.protocols.where_filter import WhereFilterIntersection
  from dbt_semantic_interfaces.transformations.add_input_metric_measures import AddInputMetricMeasuresRule
  from dbt_semantic_interfaces.type_enums.aggregation_type import AggregationType
  from dbt_semantic_interfaces.type_enums.entity_type import EntityType
  from metricflow.model.semantics.linkable_spec_resolver import ElementPathKey
  from metricflow.naming.linkable_spec_name import StructuredLinkableSpecName
  from metricflow.specs.specs import DimensionSpec
label_desc: Use image node_id 2 for calling the Dimension obj's underlying member method code with example usage: obj.granularity_free_qualified_name() and returns: StructuredLinkableSpecName