docs: def makeParser():
      """Create the SCOOP module arguments parser."""
      # TODO: Add environment variable (all + selection)
      parser = argparse.ArgumentParser(
          description="Starts a parallel program using SCOOP.",
          prog="{0} -m scoop".format(sys.executable),
      )
      group = parser.add_mutually_exclusive_group()
      group.add_argument('--hosts', '--host',
                         help="The list of hosts. The first host will execute "
                              "the origin. (default is 127.0.0.1)",
                         metavar="Address",
                         nargs='*')
      group.add_argument('--hostfile',
                         help="The hostfile name",
                         metavar="FileName")
      parser.add_argument('--path', '-p',
                          help="The path to the executable on remote hosts "
                               "(default is local directory)",
                          default=os.getcwd())
      parser.add_argument('--nice',
                          type=int,
                          metavar="NiceLevel",
                          help="*nix niceness level (-20 to 19) to run the "
                               "executable")
      parser.add_argument('--verbose', '-v',
                          action='count',
                          help="Verbosity level of this launch script (-vv for "
                               "more)",
                          default=1)
      parser.add_argument('--quiet', '-q',
                          action='store_true')
      parser.add_argument('-n',
                          help="Total number of workers to launch on the hosts. "
                               "Workers are spawned sequentially over the hosts. "
                               "(ie. -n 3 with 2 hosts will spawn 2 workers on "
                               "the first host and 1 on the second.) (default: "
                               "Number of CPUs on current machine)",
                          type=int,
                          metavar="NumberOfWorkers")
      parser.add_argument('-b',
                          help="Total number of brokers to launch on the hosts. "
                               "Brokers are spawned sequentially over the hosts. "
                               "(ie. -b 3 with 2 hosts will spawn 2 brokers on "
                               "the first host and 1 on the second.) (default: "
                               "1)",
                          type=int,
                          default=1,
                          metavar="NumberOfBrokers")
      parser.add_argument('--rsh',
                          help="Use RSH instead of SSH for the launching process. "
                               "Not compatible with --tunnel flag.",
                          action='store_true')
      parser.add_argument('--ssh-executable',
                          help="Name of the ssh executable. (default: 'ssh')",
                          default="ssh",
                          metavar="SSHExecutable")
      parser.add_argument('--tunnel',
                          help="Activate ssh tunnels to route toward the broker "
                               "sockets over remote connections (may eliminate "
                               "routing problems and activate encryption but "
                               "slows down communications)",
                          action='store_true')
      parser.add_argument('--external-hostname',
                          nargs=1,
                          help="The externally routable hostname / ip of this "
                               "machine. (defaults to the local hostname)",
                          metavar="Address")
      parser.add_argument('--python-interpreter',
                          nargs=1,
                          help="The python interpreter executable with which to "
                               "execute the script",
                          default=[sys.executable],
                          metavar="Path")
      parser.add_argument('--pythonpath',
                          nargs=1,
                          help="The PYTHONPATH environment variable (default is "
                               "current PYTHONPATH)",
                          default=[os.environ.get('PYTHONPATH', '')])
      parser.add_argument('--prolog',
                          nargs=1,
                          help="Absolute Path to a shell script or executable "
                               "that will be executed at the launch of every "
                               "worker",
                          default=[None])
      parser.add_argument('--debug',
                          help=argparse.SUPPRESS,
                          action='store_true')
      parser.add_argument('--profile',
                          help=("Turn on the profiling. SCOOP will call "
                          "cProfile.run on the executable for every worker and"
                          " will produce files in directory profile/ named "
                          "workerX where X is the number of the worker."),
                          action='store_true')
      parser.add_argument('--backend',
                          help="Choice of communication backend",
                          choices=['ZMQ', 'TCP'],
                          default='ZMQ')
      parser.add_argument('executable',
                          nargs='?',
                          help='The executable to start with SCOOP')
      parser.add_argument('args',
                          nargs=argparse.REMAINDER,
                          help='The arguments to pass to the executable',
                          default=[],
                          metavar="args")
      return parser