Updating generic.py error message

This is my first attempt at a PR. I just made a little change to allow an error message. Would appreciate some feedback. 
Based on https://github.com/pydata/pandas/issues/8015
For what reason are the two `elif`s included? Because if `level` is not None, is should not raise, no? (but you do raise here)