def command(name=None, cls=None, **attrs):
if cls is None:<EOL><INDENT>cls = Command<EOL><DEDENT>def decorator(func):<EOL><INDENT>if isinstance(func, Command):<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT>return cls(func, name=name, **attrs)<EOL><DEDENT>return decorator<EOL>
A decorator that transforms a function into a :class:`.Command`
    or if called with :func:`.group`, :class:`.Group`.

    By default the ``help`` attribute is received automatically from the
    docstring of the function and is cleaned up with the use of
    ``inspect.cleandoc``. If the docstring is ``bytes``, then it is decoded
    into :class:`str` using utf-8 encoding.

    All checks added using the :func:`.check` & co. decorators are added into
    the function. There is no way to supply your own checks through this
    decorator.

    Parameters
    -----------
    name: :class:`str`
        The name to create the command with. By default this uses the
        function name unchanged.
    cls
        The class to construct with. By default this is :class:`.Command`.
        You usually do not change this.
    attrs
        Keyword arguments to pass into the construction of the class denoted
        by ``cls``.

    Raises
    -------
    TypeError
        If the function is not a coroutine or is already a command.