def start_range(self, line, membership):
    'Start a range of lines that are either included/excluded from the set.\n\n    Args:\n      line: A line number.\n      membership: If True, lines >= line are included in the set (starting\n        a range), otherwise they are excluded (ending a range).\n\n    Raises:\n      ValueError: if line is less than that of a previous call to start_range().\n    '
    last = (self._transitions[(- 1)] if self._transitions else (- 1))
    if (line < last):
        raise ValueError('Line number less than previous start_range() call.')
    previous = ((len(self._transitions) % 2) == 1)
    if (membership == previous):
        return
    elif (line == last):
        self._transitions.pop()
    else:
        self._transitions.append(line)
Start a range of lines that are either included/excluded from the set.

Args:
  line: A line number.
  membership: If True, lines >= line are included in the set (starting
    a range), otherwise they are excluded (ending a range).

Raises:
  ValueError: if line is less than that of a previous call to start_range().
def start_range(self, line, membership):
    'Start a range of lines that are either included/excluded from the set.\n\n    Args:\n      line: A line number.\n      membership: If True, lines >= line are included in the set (starting\n        a range), otherwise they are excluded (ending a range).\n\n    Raises:\n      ValueError: if line is less than that of a previous call to start_range().\n    '
    last = (self._transitions[(- 1)] if self._transitions else (- 1))
    if (line < last):
        raise ValueError('Line number less than previous start_range() call.')
    previous = ((len(self._transitions) % 2) == 1)
    if (membership == previous):
        return
    elif (line == last):
        self._transitions.pop()
    else:
        self._transitions.append(line)