docs: def chunklentype(self):
          """Reads just enough of the input to determine the next
          chunk's length and type, returned as a (*length*, *chunk_type*) pair
          where *chunk_type* is a string.  If there are no more chunks, ``None``
          is returned.
          """
          x = self.file.read(8)
          if not x:
              return None
          if len(x) != 8:
              raise FormatError(
                'End of file whilst reading chunk length and type.')
          length, chunk_type = struct.unpack('!I4s', x)
          chunk_type = bytestostr(chunk_type)
          if length > 2**31-1:
              raise FormatError('Chunk %s is too large: %d.' % (chunk_type,
                                                                length))
          return length, chunk_type