code: def get_last_args(tp):
      
      if NEW_TYPING:
          raise ValueError('This function is only supported in Python 3.6,'
                           ' use get_args instead')
      if is_classvar(tp):
          return (tp.__type__,) if tp.__type__ is not None else ()
      if (
          is_generic_type(tp) or is_union_type(tp) or
          is_callable_type(tp) or is_tuple_type(tp)
      ):
          return tp.__args__ if tp.__args__ is not None else ()
      return ()
docs: 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,)