def get_parser():
    """Return a parser for the command-line arguments."""
    parser = argparse.ArgumentParser(
        add_help=False,
        description='Command line tool for dependenpy Python package.')
    mxg = parser.add_mutually_exclusive_group(required=False)

    parser.add_argument(
        'packages', metavar='PACKAGES', nargs=argparse.ONE_OR_MORE,
        help='The package list. Can be a comma-separated list. Each package '
             'must be either a valid path or a package in PYTHONPATH.')
    parser.add_argument(
        '-d', '--depth', default=None, type=int, dest='depth',
        help='Specify matrix or graph depth. Default: best guess.')
    parser.add_argument(
        '-f', '--format', choices=FORMAT, default='text',
        dest='format', help='Output format. Default: text.')
    mxg.add_argument(
        '-g', '--show-graph', action='store_true', dest='graph', default=False,
        help='Show the graph (no text format). Default: false.')
    parser.add_argument(
        '-G', '--greedy', action='store_true', dest='greedy', default=False,
        help='Explore subdirectories even if they do not contain an '
             '__init__.py file. Can make execution slower. Default: false.')
    parser.add_argument(
        '-h', '--help', action='help', default=argparse.SUPPRESS,
        help='Show this help message and exit.')
    parser.add_argument(
        '-i', '--indent', default=None, type=int, dest='indent',
        help='Specify output indentation. CSV will never be indented. '
             'Text will always have new-lines. JSON can be minified with '
             'a negative value. Default: best guess.')
    mxg.add_argument(
        '-l', '--show-dependencies-list', action='store_true',
        dest='dependencies', default=False,
        help='Show the dependencies list. Default: false.')
    mxg.add_argument(
        '-m', '--show-matrix', action='store_true',
        dest='matrix', default=False,
        help='Show the matrix. Default: true unless -g, -l or -t.')
    parser.add_argument(
        '-o', '--output', action='store', dest='output', default=sys.stdout,
        help='Output to given file. Default: stdout.')
    mxg.add_argument(
        '-t', '--show-treemap', action='store_true',
        dest='treemap', default=False,
        help='Show the treemap (work in progress). Default: false.')
    parser.add_argument(
        '-v', '--version', action='version',
        version='dependenpy %s' % __version__,
        help='Show the current version of the program and exit.')
    return parser