def _pretty_type(s, offset=0):
    # pylint: disable=R0911, R0912
    # too many returns, too many branches. Not converting this to a
    # dict lookup. Waiving instead.

    """
    returns the pretty version of a type code
    """

    tc = s[offset]

    if tc == "V":
        return "void"

    elif tc == "Z":
        return "boolean"

    elif tc == "C":
        return "char"

    elif tc == "B":
        return "byte"

    elif tc == "S":
        return "short"

    elif tc == "I":
        return "int"

    elif tc == "J":
        return "long"

    elif tc == "D":
        return "double"

    elif tc == "F":
        return "float"

    elif tc == "L":
        return _pretty_class(s[offset + 1:-1])

    elif tc == "[":
        return "%s[]" % _pretty_type(s, offset + 1)

    elif tc == "(":
        return "(%s)" % ",".join(_pretty_typeseq(s[offset + 1:-1]))

    elif tc == "T":
        return "generic " + s[offset + 1:]

    else:
        raise Unimplemented("unknown type, %r" % tc)
returns the pretty version of a type code