docs: def filter_int(string, default=None, start=None, stop=None):
      """Return the input integer, or the default."""
      try:
          i = int(string)
          if start is not None and i < start:
              raise InvalidInputError("value too small")
          if stop is not None and i >= stop:
              raise InvalidInputError("value too large")
          return i
      except ValueError:
          if not string and default is not None:
              # empty string, default was given
              return default
          else:
              raise InvalidInputError