On second thought. On Python 2 bytes is str, and most users are not in the habit of creating unicode strings.  So I'm not crazy about this solution exactly either....  On Python 2 it should accept non-unicode strings, on Python 3 it should not.