def METHOD_NAME(self, face_file, nfaces):
    """reads all the faces"""
    self.log.info('nfaces = %s' % nfaces)
    faces = np.ones((nfaces, 4), dtype='int32') * -1
    i = 0
    for j in range(nfaces):
        # 3(a b c) to [a, b, c]
        # 4(a b c d) to [a, b, c, d]
        face_line = face_file.readline()
        i += 1
        sline = face_line[1:].strip('( )\n\r').split()
        #self.log.info(str(sline))
        try:
            if len(sline) == 3:
                faces[j, :3] = sline[:3]
            elif len(sline) == 4:
                faces[j, :] = sline[:4]  # TODO: quads only
            else:
                msg = 'The sline is the wrong length (3/4 required)\n'
                msg += 'sline = %s\n' % str(sline)
                msg += 'line = %r\n' % face_line.rstrip()
                raise RuntimeError(msg)
        except Exception:
            print('face = %r' % face_line)
            print(sline, i, len(sline))
            raise
    return faces