code: def pop_fields(self, field_indexes):
      field_names = [
          self._offset_name_mapping[field_id]
          for field_id in field_indexes
      ]
      self._schema = copy.deepcopy(self._schema)
      self._schema.pop_columns(field_names)
  
      field_index_set = set(field_indexes)
      left_field_indexes = []
      for i in range(len(self._offset_name_mapping)):
          if i not in field_index_set:
              left_field_indexes.append(i)
  
      name_offset_mapping = dict()
      offset_name_mapping = dict()
      field_index_changes = dict()
      for dst_field_id, src_field_id in enumerate(left_field_indexes):
          name = self._offset_name_mapping[src_field_id]
          name_offset_mapping[name] = dst_field_id
          offset_name_mapping[dst_field_id] = name
          field_index_changes[src_field_id] = dst_field_id
  
      self._name_offset_mapping = name_offset_mapping
      self._offset_name_mapping = offset_name_mapping
  
      return field_index_changes
  
imports: import copy
  from typing import List, Union
  import pandas
  from .utils import AnonymousGenerator
label_desc: Use image node_id 8 for calling the SchemaManager obj's underlying member method code with example usage: obj.pop_fields(field_indexes) and returns: field_index_changes