class_docstr: Uses a double underscore to map specs to column names.
  
  For example:
  
  DimensionSpec(element_name='country', entity_links=['listing'])
  
  ->
  
  listing__country
class_docstr_tok: ["Uses","a","double","underscore","to","map","specs","to","column","names",".","For","example",":","DimensionSpec","(","element_name='country","'",",","entity_links=","[","'listing","'","]",")","-",">","listing__country"]
code: def resolve_spec(
      self, spec: InstanceSpec
  ) -> ColumnAssociation:  # noqa: D
      return spec.accept(self._visitor_helper)
  
file_path: metricflow/metricflow/plan_conversion/column_resolver.py
imports: from __future__ import annotations
  import logging
  from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
  from metricflow.naming.linkable_spec_name import DUNDER, StructuredLinkableSpecName
  from metricflow.specs.column_assoc import ColumnAssociation, ColumnAssociationResolver, SingleColumnCorrelationKey
  from metricflow.specs.specs import DimensionSpec, EntitySpec, InstanceSpec, InstanceSpecVisitor, MeasureSpec, MetadataSpec, MetricSpec, TimeDimensionSpec
label_desc: Use image node_id 2 for calling the DunderColumnAssociationResolver obj's underlying member method code with example usage: obj.resolve_spec(spec) and returns: spec