class_docstr: Methods for converting classes related to the object-builder naming scheme to strings.
  
  String conversions are necessary for parsing user input and generating error messages.
  
  TODO: CallParameterSets / QueryParameter objects need restructuring.
class_docstr_tok: ["Methods","for","converting","classes","related","to","the","object-builder","naming","scheme","to","strings",".","String","conversions","are","necessary","for","parsing","user","input","and","generating","error","messages",".","TODO",":","CallParameterSets","\/","QueryParameter","objects","need","restructuring","."]
docstr: Return the parameters that should go in the initializer.
  
  e.g. `'user__country', time_granularity_name='month'`
docstr_tok: ["Return","the","parameters","that","should","go","in","the","initializer",".","e.g",".","`","'user__country","'",",","time_granularity_name='month","'","`"]
code: def initializer_parameter_str(
      element_name: str,
      entity_links: Sequence[EntityReference],
      time_granularity: Optional[TimeGranularity],
      date_part: Optional[DatePart],
  ) -> str:
      """Return the parameters that should go in the initializer.
  
      e.g. `'user__country', time_granularity_name='month'`
      """
      initializer_parameters = []
      entity_link_names = list(
          entity_link.element_name for entity_link in entity_links
      )
      if len(entity_link_names) > 0:
          initializer_parameters.append(
              repr(entity_link_names[-1] + DUNDER + element_name)
          )
      else:
          initializer_parameters.append(repr(element_name))
      if time_granularity is not None:
          initializer_parameters.append(
              f"'{time_granularity.value}'",
          )
      if date_part is not None:
          initializer_parameters.append(
              f"date_part_name={repr(date_part.value)}"
          )
      if len(entity_link_names) > 1:
          initializer_parameters.append(
              f"entity_path={repr(entity_link_names[:-1])}"
          )
  
      return ", ".join(initializer_parameters)
  
file_path: metricflow/metricflow/naming/object_builder_str.py
imports: from __future__ import annotations
  from typing import Optional, Sequence
  from dbt_semantic_interfaces.call_parameter_sets import DimensionCallParameterSet, EntityCallParameterSet, TimeDimensionCallParameterSet
  from dbt_semantic_interfaces.naming.keywords import DUNDER
  from dbt_semantic_interfaces.references import EntityReference
  from dbt_semantic_interfaces.type_enums import TimeGranularity
  from dbt_semantic_interfaces.type_enums.date_part import DatePart
  from typing_extensions import override
  from metricflow.specs.specs import InstanceSpec, InstanceSpecSet, InstanceSpecSetTransform
label_desc: Use image node_id 2 for calling the ObjectBuilderNameConverter obj's underlying member method code with example usage: obj.initializer_parameter_str(element_name, entity_links, time_granularity, date_part) and returns: str