code: def infer_non_operable_field_names(self) -> List[str]:
      operable_field_name_set = set(self.infer_operable_field_names())
      non_operable_field_names = []
      if self._schema.sample_id_name:
          non_operable_field_names.append(self._schema.sample_id_name)
  
      if self._schema.match_id_name:
          non_operable_field_names.append(self._schema.match_id_name)
  
      if (
          self._schema.label_name
          and self._schema.label_name not in operable_field_name_set
      ):
          non_operable_field_names.append(self._schema.label_name)
  
      if (
          self._schema.weight_name
          and self._schema.weight_name not in operable_field_name_set
      ):
          non_operable_field_names.append(self._schema.weight_name)
  
      return non_operable_field_names
  
imports: import copy
  from typing import List, Union
  import pandas
  from .utils import AnonymousGenerator
label_desc: Use image node_id 25 for calling the SchemaManager obj's underlying member method code with example usage: obj.infer_non_operable_field_names() and returns: non_operable_field_names