docs: def arg(*args, **kwargs):
      """
      Dcorates a function or a class method to add to the argument parser
      """
      def decorate(func):
          """
          Decorate
          """
          # we'll set the command name with the passed cmd_name argument, if
          # exist, else the command name will be the function name
          func.__cmd_name__ = kwargs.pop(
              'cmd_name', getattr(func, '__cmd_name__', func.__name__))
          # retrieve the class (SillyClass)
          func.__cls__ = utils.check_class()
          if not hasattr(func, '__arguments__'):
              # if the funcion hasn't the __arguments__ yet, we'll setup them
              # using get_functarguments.
              func.__arguments__ = utils.get_functarguments(func)
          if len(args) or len(kwargs):
              # if we have some argument or keyword argument
              # we'll try to get the destination name from the kwargs ('dest')
              # else we'll use the last arg name as destination
              arg_name = kwargs.get(
                  'dest', args[-1].lstrip('-').replace('-', '_'))
              try:
                  # we try to get the command index.
                  idx = func.__named__.index(arg_name)
                  # and delete it from the named list
                  del func.__named__[idx]
                  # and delete it from the arguments list
                  del func.__arguments__[idx]
              except ValueError:
                  pass
              # append the args and kwargs to the function arguments list
              func.__arguments__.append((args, kwargs,))
          if func.__cls__ is None and isinstance(func, types.FunctionType):
              # if the function don't have a class and is a FunctionType
              # we'll add it directly to he commands list.
              ap_ = ArgParseInator(skip_init=True)
              if func.__cmd_name__ not in ap_.commands:
                  # we'll add it if not exists
                  ap_.commands[func.__cmd_name__] = func
          return func
      return decorate