code: def argument(*param_decls, **attrs):
      """Attaches an argument to the command.  All positional arguments are
      passed as parameter declarations to :class:`Argument`; all keyword
      arguments are forwarded unchanged (except ``cls``).
      This is equivalent to creating an :class:`Argument` instance manually
      and attaching it to the :attr:`Command.params` list.
  
      :param cls: the argument class to instantiate.  This defaults to
                  :class:`Argument`.
      """
  
      def decorator(f):
          ArgumentClass = attrs.pop("cls", Argument)
          _param_memo(f, ArgumentClass(param_decls, **attrs))
          return f
  
      return decorator
  
imports: import inspect
  import sys
  from functools import update_wrapper
  from ._compat import iteritems
  from ._unicodefun import _check_for_unicode_literals
  from .core import Argument
  from .core import Command
  from .core import Group
  from .core import Option
  from .globals import get_current_context
  from .utils import echo
label_desc: Use image node_id 8 for calling a global function with example usage: argument() and returns: decorator, f