code: def append_metadata_values(
      start_meta_index,
      text_dataset,
      i,
      extracted_features,
      has_dropped_features,
      dropped_features,
      column_names,
  ):
      """Append the metadata values to the extracted features.
  
      Note this also modifies the input array in-place.
  
      :param start_meta_index: The index of the first metadata column.
      :type start_meta_index: int
      :param text_dataset: The text dataset.
      :type text_dataset: pandas.DataFrame
      :param i: The index of the current row.
      :type i: int
      :param extracted_features: The list of extracted features.
      :type extracted_features: list
      :param has_dropped_features: Whether there are dropped features.
      :type has_dropped_features: bool
      :param dropped_features: The list of dropped features.
      :type dropped_features: list
      :param column_names: The list of column names.
      :type column_names: list
      :return: The list of extracted features.
      :rtype: list
      """
      # append all other metadata features
      for j in range(start_meta_index, text_dataset.shape[1]):
          if (
              has_dropped_features
              and column_names[j] in dropped_features
          ):
              continue
          extracted_features.append(text_dataset.iloc[i, j])
      return extracted_features
  
file_path: responsible-ai-toolbox/responsibleai_text/responsibleai_text/utils/feature_extractors.py
imports: import re
  from typing import List, Optional, Union
  import pandas
  import spacy
  from negspacy.termsets import termset
  from tqdm import tqdm
  from nlp_feature_extractors import attribute_extractors
  from responsibleai_text.common.constants import ModelTask, QuestionAnsweringFields
label_desc: Use image node_id 2 for calling a global function with example usage: append_metadata_values(start_meta_index, text_dataset, i, extracted_features, has_dropped_features, dropped_features, column_names) and returns: extracted_features