docs: def accepts_scalar_input_vector_output(func):
      """
      DEPRICATE IN FAVOR OF accepts_scalar_input2
  
      accepts_scalar_input_vector_output
  
      Notes:
          Input:                           Excpeted Output 1to1   Expected Output 1toM
              scalar         : 1           x                      [X]
              n element list : [1, 2, 3]   [x, y, z]              [[X], [Y], [Z]]
              1 element list : [1]         [x]                    [[X]]
              0 element list : []          []                     []
          There seems to be no real issue here, I be the thing that tripped me up
          was when using sql and getting multiple columns that returned the
          values inside of the N-tuple whereas when you get one column you get
          one element inside of a 1-tuple, no that still makes sense.  There was
          something where when you couln't unpack it becuase it was already
          empty...
      """
      @ignores_exc_tb(outer_wrapper=False)
      #@wraps(func)
      def wrp_asivo(self, input_, *args, **kwargs):
          #import utool
          #if utool.DEBUG:
          #    print('[IN SIVO] args=%r' % (args,))
          #    print('[IN SIVO] kwargs=%r' % (kwargs,))
          if util_iter.isiterable(input_):
              # If input is already iterable do default behavior
              return func(self, input_, *args, **kwargs)
          else:
              # If input is scalar, wrap input, execute, and unpack result
              result = func(self, (input_,), *args, **kwargs)
              # The output length could be 0 on a scalar input
              if len(result) == 0:
                  return []
              else:
                  assert len(result) == 1, 'error in asivo'
                  return result[0]
      return wrp_asivo