code: def clize(*args, **kwargs):
      
  
      kwargs = dict((k.lower(), v) for k, v in iteritems(kwargs))
  
      class mycli(Clizer):
          options_aliases = kwargs
  
      mycli.check_deco_parameters(*args, **kwargs)
  
      def runner(function):
          return mycli(function) if DELAY_EXECUTION else mycli(function)()
  
      if args:
          return runner(args[0])
      else:
          return runner
docs: Decorator has 2 usages:
      @clize
      def decorated(params):
         ...
      optional parameters aliases are autogenerated, conflicts are silently ignored.
  
      @clize(aliases)
      def decorated(params)
         ...
      where aliases is a dictionary, key=python parameter of decorated function,
      value=tuple of aliases or single alias.