I'm not sure why you get this case, but if it happens, you should check for  `basestring` instance instead of `str` to handle empty unicode strings too.

    elif data or isinstance(data, basestring): return [data]