code: def subcommand(f):
      
      sp = subparsers.add_parser(f.__name__, help=f.__doc__)
      for argument in inspect.getargspec(f).args:
          sp.add_argument(argument)
      sp.set_defaults(func=lambda args: _apply_args_to_func(args, f))
      return f
docs: Define a subcommand for the psychic_disco function
      Expects functions to supply a list of their arguments
      Converts these to arg_parse arguments, and transforms
      the argparse Namespace object so that commands can be
      invoked as though they are normal functions (which they are)