docs: def _parse_names_tuple(feature_names, new_names):
          """Helping function of `_parse_feature_names` that parses a tuple or a list of feature names."""
          for feature in feature_names:
              if not isinstance(feature, str) and feature is not ...:
                  raise ValueError('Failed to parse {}, expected a string'.format(feature))
  
          if feature_names[0] is ...:
              return ...
  
          if new_names:
              if len(feature_names) == 1:
                  return OrderedDict([(feature_names[0], ...)])
              if len(feature_names) == 2:
                  return OrderedDict([(feature_names[0], feature_names[1])])
              raise ValueError("Failed to parse {}, it should contain at most two strings".format(feature_names))
  
          if ... in feature_names:
              return ...
          return OrderedDict([(feature_name, ...) for feature_name in feature_names])