def text_to_int(text, default_base='hex'):
    """ Convert text to int, raising exeception on invalid input
    """
    if text.startswith('0x'):
        value = int(text[2:], 16)
    elif text.startswith('$'):
        value = int(text[1:], 16)
    elif text.startswith('#'):
        value = int(text[1:], 10)
    elif text.startswith('%'):
        value = int(text[1:], 2)
    elif default_base == 'dec':
        value = int(text)
    else:
        value = int(text, 16)
    return value
