def accepts_scalar_input(func):
    @ignores_exc_tb(outer_wrapper=False)
    def wrp_asi(self, input_, *args, **kwargs):
        if util_iter.isiterable(input_):
            return func(self, input_, *args, **kwargs)
        else:
            ret = func(self, [input_], *args, **kwargs)
            if ret is not None:
                return ret[0]
    wrp_asi = preserve_sig(wrp_asi, func)
    return wrp_asi