code: def unidec(fnx):
      '''
      @unidec
      def render(view, request, flag=True):
          pass
  
      @render
      def first_view(request):
          pass
  
      @render(flag=False)
      def second_view(request):
          pass
      '''
  
      return lambda *ax, **kx: (
          wraps(ax[0])(lambda *ay, **ky: fnx(ax[0], *ay, **ky)) \
          if len(ax) == 1 and not kx and callable(ax[0]) else \
          lambda fny: wraps(fny)(lambda *ay, **ky: \
          fnx(fny, *ay, **dict(kx, **ky)) if not ax else throw(
              TypeError('wrapper get *args')))f unidec(fnx):
      '''
      @unidec
      def render(view, request, flag=True):
          pass
  
      @render
      def first_view(request):
          pass
  
      @render(flag=False)
      def second_view(request):
          pass
      '''
  
      return lambda *ax, **kx: (
          wraps(ax[0])(lambda *ay, **ky: fnx(ax[0], *ay, **ky)) \
          if len(ax) == 1 and not kx and callable(ax[0]) else \
          lambda fny: wraps(fny)(lambda *ay, **ky: \
          fnx(fny, *ay, **dict(kx, **ky)) if not ax else throw(
              TypeError('wrapper get *args'))))
docs: @unidec
      def render(view, request, flag=True):
          pass
  
      @render
      def first_view(request):
          pass
  
      @render(flag=False)
      def second_view(request):
          pass