code: def get_attr_cols(
      df: pd.DataFrame, non_attr_cols: List[str]
  ) -> List[str]:
      """
      :param df: A data frame of model results
      :param non_attr_cols: Names of columns not associated with attributes
      :return: List of columns associated with sample attributes
      """
      attr_cols = df.columns[~df.columns.isin(non_attr_cols)]
      if attr_cols.empty:
          raise ValueError(
              "No attribute columns found in the input data frame."
          )
      return attr_cols.tolist()
  
imports: import logging
  import pandas
  from typing import List, Tuple
label_desc: Use image node_id 2 for calling a global function with example usage: get_attr_cols(df, non_attr_cols) and returns: attr_cols