docs: def patch(self, target, source, copy=False):
          """Copies fields from ``obj`` to ``target``.  If a matched field does
          not exist in ``obj``, it will be deleted from ``target``, otherwise it
          will be assigned (or copied).
  
          args:
  
              ``target=``\ *OBJECT*
                  the object to set the fields in
  
              ``source=``\ *OBJECT*
                  the object to lift the fields from
  
              ``copy=``\ *BOOL*\ \|\ *FUNCTION*
                  deep copy the values set, using copy.deepcopy (or the passed
                  function).  False by default.
          """
          # TODO: this could also be a whole lot more efficient!
          fs_val = []
          for fs in self:
              try:
                  fs_val.append((fs, fs.get(source)))
              except AttributeError:
                  fs_val.append((fs, _None))
              except FieldSelectorException:
                  raise
  
          if copy and not callable(copy):
              copy = deepcopy
  
          for fs, val in fs_val:
              if val is _None:
                  fs.delete(target)
              else:
                  fs.post(target, val if not copy else copy(val))