code: def pre_map(self, function):
          
          if isinstance(self.slice, slice):
              for i in range(*self.slice.indices(len(self.layout.fields))):
                  function(self.layout, i)
  
          elif isinstance(self.slice, list):
              # A list of pointers  Ex: [[[0, 0], 'div'], [[0, 2, 3], 'field_name']]
              for pointer in self.slice:
                  position = pointer[0]
  
                  # If it's pointing first level
                  if len(position) == 1:
                      function(self.layout, position[-1])
                  else:
                      layout_object = self.layout.fields[position[0]]
                      for i in position[1:-1]:
                          layout_object = layout_object.fields[i]
  
                      try:
                          function(layout_object, position[-1])
                      except IndexError:
                          # We could avoid this exception, recalculating pointers.
                          # However this case is most of the time an undesired behavior
                          raise DynamicError("Trying to wrap a field within an already wrapped field, \
                              recheck your filter or layout")
docs: Iterates over layout objects pointed in `self.slice` executing `function` on them.
          It passes `function` penultimate layout object and the position where to find last one