def add_arguments(self, *, parser):
    parser.add_argument('--build-base', default='build', help='The base path for all build directories (default: build)')
    add_packages_arguments(parser)
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--dot', action='store_true', default=False, help='Output topological graph in DOT (e.g. pass the output to dot: ` | dot -Tpng -o graph.png`), legend: blue=build, red=run, tan=test, dashed=indirect')
    group.add_argument('--density', action='store_true', default=False, help='Output density of the graph (only without --dot)')
    parser.add_argument('--legend', action='store_true', default=False, help='Output legend for the graph')
    parser.add_argument('--dot-cluster', action='store_true', default=False, help='Cluster packages by their filesystem path (only affects --dot)')
    parser.add_argument('--dot-include-skipped', action='store_true', default=False, help='Also output skipped packages (only affects --dot)')
def add_arguments(self, *, parser):
    parser.add_argument('--build-base', default='build', help='The base path for all build directories (default: build)')
    add_packages_arguments(parser)
    group = parser.add_mutually_exclusive_group()
    group.add_argument('--dot', action='store_true', default=False, help='Output topological graph in DOT (e.g. pass the output to dot: ` | dot -Tpng -o graph.png`), legend: blue=build, red=run, tan=test, dashed=indirect')
    group.add_argument('--density', action='store_true', default=False, help='Output density of the graph (only without --dot)')
    parser.add_argument('--legend', action='store_true', default=False, help='Output legend for the graph')
    parser.add_argument('--dot-cluster', action='store_true', default=False, help='Cluster packages by their filesystem path (only affects --dot)')
    parser.add_argument('--dot-include-skipped', action='store_true', default=False, help='Also output skipped packages (only affects --dot)')