def get_last_args(tp):
if NEW_TYPING:<EOL><INDENT>raise ValueError('<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>if is_classvar(tp):<EOL><INDENT>return (tp.__type__,) if tp.__type__ is not None else ()<EOL><DEDENT>if (<EOL>is_generic_type(tp) or is_union_type(tp) or<EOL>is_callable_type(tp) or is_tuple_type(tp)<EOL>):<EOL><INDENT>return tp.__args__ if tp.__args__ is not None else ()<EOL><DEDENT>return ()<EOL>
Get last arguments of (multiply) subscripted type.
       Parameters for Callable are flattened. Examples::

        get_last_args(int) == ()
        get_last_args(Union) == ()
        get_last_args(ClassVar[int]) == (int,)
        get_last_args(Union[T, int]) == (T, int)
        get_last_args(Iterable[Tuple[T, S]][int, T]) == (int, T)
        get_last_args(Callable[[T], int]) == (T, int)
        get_last_args(Callable[[], int]) == (int,)