docs: def remove(self, stuff):
          """Remove variables and constraints.
  
          Parameters
          ----------
          stuff : iterable, str, Variable, Constraint
              Either an iterable containing variables and constraints to be removed from the model or a single variable or contstraint (or their names).
  
          Returns
          -------
          None
          """
          if self._pending_modifications.toggle == 'add':
              self.update()
              self._pending_modifications.toggle = 'remove'
          if isinstance(stuff, str):
              try:
                  variable = self.variables[stuff]
                  self._pending_modifications.rm_var.append(variable)
              except KeyError:
                  try:
                      constraint = self.constraints[stuff]
                      self._pending_modifications.rm_constr.append(constraint)
                  except KeyError:
                      raise LookupError(
                          "%s is neither a variable nor a constraint in the current solver instance." % stuff)
          elif isinstance(stuff, Variable):
              self._pending_modifications.rm_var.append(stuff)
          elif isinstance(stuff, Constraint):
              self._pending_modifications.rm_constr.append(stuff)
          elif isinstance(stuff, collections.Iterable):
              for elem in stuff:
                  self.remove(elem)
          elif isinstance(stuff, Objective):
              raise TypeError(
                  "Cannot remove objective %s. Use model.objective = Objective(...) to change the current objective." % stuff)
          else:
              raise TypeError(
                  "Cannot remove %s. It neither a variable or constraint." % stuff)