def isprintable(text):
    """
    Checks if all characters in ``text`` are printable or the string is empty. 
    
    Nonprintable characters are those characters defined in the Unicode character database 
    as "Other" or "Separator", excepting the ASCII space (0x20) which is considered printable. 
    Note that printable characters in this context are those which should not be escaped 
    when repr() is invoked on a string. It has no bearing on the handling of strings
    written to sys.stdout or sys.stderr.
    
    :param text: The string to check
    :type text:  ``str``
    
    :return: True if all characters in ``text`` are printable or the string is empty, False otherwise.
    :rtype:  ``bool``
    """
    assert isinstance(text,str), '%s is not a string' % text
    return text.isprintable()