def _parser()

in graspologic/layouts/__main__.py [0:0]


def _parser() -> argparse.ArgumentParser:
    root_parser = argparse.ArgumentParser(
        prog="python -m graspologic.layouts",
        description="Runnable module that automatically generates a layout of a graph "
        "by a provided edge list",
        formatter_class=argparse.ArgumentDefaultsHelpFormatter,
    )

    root_parser.add_argument(
        "--verbose",
        type=bool,
        required=False,
        default=False,
    )

    subparsers = root_parser.add_subparsers(
        dest="COMMAND",
        help="auto layout via umap, tsne, or a pure render only mode",
    )
    subparsers.required = True

    n2vumap_parser = subparsers.add_parser(
        "n2vumap",
        help="Auto layout using UMAP for dimensionality reduction",
    )
    _common_edge_list_args(n2vumap_parser)
    n2vumap_parser.set_defaults(func=_umap)
    n2vtsne_parser = subparsers.add_parser(
        "n2vtsne",
        help="Auto layout using tSNE for dimensionality reduction",
    )
    _common_edge_list_args(n2vtsne_parser)
    n2vtsne_parser.set_defaults(func=_tsne)
    render_parser = subparsers.add_parser(
        "render",
        help="Renders a graph via an input file",
    )
    render_parser.set_defaults(func=_render)
    render_parser.add_argument(
        "--edge_list",
        help="edge list in csv file. must be source,target,weight.",
        required=False,
        default=None,
    )
    render_parser.add_argument(
        "--skip_header",
        help="skip first line in csv file, corresponding to header.",
        action="store_true",
        required=False,
        default=False,
    )
    render_parser.add_argument(
        "--location_file",
        help="location file used for node positioning, partitioning, and coloring",
        required=True,
        default=None,
    )
    render_parser.add_argument(
        "--image_file",
        help="output path and filename for generated image file. ",
        required=True,
        default=None,
    )
    render_parser.add_argument(
        "--dark_background",
        dest="light_background",
        action="store_false",
        default=True,
    )
    render_parser.add_argument(
        "--vertex_alpha",
        help="Alpha (transparency) of vertices in visualization (default 0.9)",
        type=float,
        required=False,
        default=0.9,
    )
    render_parser.add_argument(
        "--vertex_line_width",
        help="Line width of vertex outline (default 0.01)",
        type=float,
        required=False,
        default=0.01,
    )
    render_parser.add_argument(
        "--edge_line_width",
        help="Line width of edge (default 0.5)",
        type=float,
        required=False,
        default=0.5,
    )
    render_parser.add_argument(
        "--edge_alpha",
        help="Alpha (transparency) of edges in visualization (default 0.2)",
        type=float,
        required=False,
        default=0.2,
    )
    render_parser.add_argument(
        "--figure_width",
        help="Width of figure (default 15.0)",
        type=float,
        required=False,
        default=15.0,
    )
    render_parser.add_argument(
        "--figure_height",
        help="Height of figure (default 15.0)",
        type=float,
        required=False,
        default=15.0,
    )
    render_parser.add_argument(
        "--vertex_shape",
        help="Matplotlib Marker for the vertex shape.",
        required=False,
        default="o",
    )
    render_parser.add_argument(
        "--arrows",
        dest="arrows",
        action="store_true",
        default=False,
    )
    render_parser.add_argument(
        "--dpi",
        help="Set dpi for image",
        type=int,
        required=False,
        default=500,
    )
    return root_parser