code: def renumber(fileobj, serial, start):
          
  
          number = start
          while True:
              try:
                  page = OggPage(fileobj)
              except EOFError:
                  break
              else:
                  if page.serial != serial:
                      # Wrong stream, skip this page.
                      continue
                  # Changing the number can't change the page size,
                  # so seeking back based on the current size is safe.
                  fileobj.seek(-page.size, 1)
              page.sequence = number
              fileobj.write(page.write())
              fileobj.seek(page.offset + page.size, 0)
              number += 1
docs: Renumber pages belonging to a specified logical stream.
  
          fileobj must be opened with mode r+b or w+b.
  
          Starting at page number 'start', renumber all pages belonging
          to logical stream 'serial'. Other pages will be ignored.
  
          fileobj must point to the start of a valid Ogg page; any
          occuring after it and part of the specified logical stream
          will be numbered. No adjustment will be made to the data in
          the pages nor the granule position; only the page number, and
          so also the CRC.
  
          If an error occurs (e.g. non-Ogg data is found), fileobj will
          be left pointing to the place in the stream the error occured,
          but the invalid data will be left intact (since this function
          does not change the total file size).