original_docstring: 
      Offers the user a list of feature-names so he can choose one.
      The user can also add a new feature and select this feature, instead of an already existing one.
      :return: name of the selected feature
      :rtype: str
      
docstring: Offers the user a list of feature-names so he can choose one.
  The user can also add a new feature and select this feature, instead of an already existing one.
docstring_tokens: Offers the user a list of feature - names so he can choose one . The user can also add a new feature and select this feature instead of an already existing one .
code: def choose_feature():
      """
      Offers the user a list of feature-names so he can choose one.
      The user can also add a new feature and select this feature, instead of an already existing one.
      :return: name of the selected feature
      :rtype: str
      """
      features = thing.get_list_of_features()
      print("Please select a feature to insert the component:")
      feature_id = utils.ask_choose_index_from_list_or_new(features)
      if feature_id is None:
          return setup_artifact(ThingArtifact.Feature)
      return features[feature_id]
code_tokens: def choose_feature ( ) : features = thing . get_list_of_features ( ) print ( "Please select a feature to insert the component:" ) feature_id = utils . ask_choose_index_from_list_or_new ( features ) if feature_id is None : return setup_artifact ( ThingArtifact . Feature ) return features [ feature_id ]
short_docstring: Offers the user a list of feature-names so he can choose one.
short_docstring_tokens: Offers the user a list of feature - names so he can choose one .
comment: """
      Offers the user a list of feature-names so he can choose one.
      The user can also add a new feature and select this feature, instead of an already existing one.
      :return: name of the selected feature
      :rtype: str
      """