docs: def invert(self):
      """
      Inverts the ScienceSegments in the class (i.e. set NOT).  Returns the
      number of ScienceSegments after inversion.
      """
  
      # check for an empty list
      if len(self) == 0:
        # return a segment representing all time
        self.__sci_segs = ScienceSegment(tuple([0,0,1999999999,1999999999]))
  
      # go through the list checking for validity as we go
      outlist = []
      ostart = 0
      for seg in self:
        start = seg.start()
        stop = seg.end()
        if start < 0 or stop < start or start < ostart:
          raise SegmentError, "Invalid list"
        if start > 0:
          x = ScienceSegment(tuple([0,ostart,start,start-ostart]))
          outlist.append(x)
        ostart = stop
  
      if ostart < 1999999999:
        x = ScienceSegment(tuple([0,ostart,1999999999,1999999999-ostart]))
        outlist.append(x)
  
      self.__sci_segs = outlist
      return len(self)