def parse_args()

in assets/responsibleai/vision/components/src/rai_vision_insights.py [0:0]


def parse_args():
    # setup arg parser
    parser = argparse.ArgumentParser()

    # add arguments
    parser.add_argument(
        "--task_type", type=str, required=True,
        choices=[TaskType.IMAGE_CLASSIFICATION,
                 TaskType.MULTILABEL_IMAGE_CLASSIFICATION,
                 TaskType.OBJECT_DETECTION]
    )

    parser.add_argument(
        "--model_input", type=str, help="model local path on remote",
        required=True
    )
    parser.add_argument(
        "--model_info", type=str, help="name:version", required=True
    )

    parser.add_argument("--test_dataset", type=str, required=True)
    parser.add_argument(
        "--dataset_type", type=str, required=False,
        default=DatasetStoreType.PUBLIC,
        choices=[DatasetStoreType.PRIVATE, DatasetStoreType.PUBLIC],
        help="Whether it is dataset from private datastore"
        "or from public url"
    )
    parser.add_argument("--target_column_name", type=str, required=True)
    parser.add_argument(
        "--maximum_rows_for_test_dataset", type=int,
        default=5000
    )
    parser.add_argument("--classes", type=str, help="Optional[List[str]]")

    parser.add_argument("--categorical_metadata_features", type=str,
                        help="Optional[List[str]]")

    parser.add_argument("--dropped_metadata_features", type=str,
                        help="Optional[List[str]]")

    # Explanations
    parser.add_argument("--precompute_explanation", type=boolean_parser)

    # Error analysis
    parser.add_argument("--enable_error_analysis", type=boolean_parser)

    parser.add_argument("--use_model_dependency", type=boolean_parser,
                        help="Use model dependency")
    parser.add_argument("--use_conda", type=boolean_parser,
                        help="Use conda instead of pip")

    parser.add_argument(
        "--model_type", type=str, required=True,
        choices=[ModelType.PYFUNC, ModelType.FASTAI, ModelType.PYTORCH]
    )
    # XAI args
    parser.add_argument(
        _make_arg(ExplainabilityLiterals.XAI_ALGORITHM),
        type=str,
        required=False,
        choices=[
            ExplainabilityLiterals.SHAP_METHOD_NAME,
            ExplainabilityLiterals.GUIDEDBACKPROP_METHOD_NAME,
            ExplainabilityLiterals.GUIDEDGRADCAM_METHOD_NAME,
            ExplainabilityLiterals.INTEGRATEDGRADIENTS_METHOD_NAME,
            ExplainabilityLiterals.XRAI_METHOD_NAME,
        ],
    )

    parser.add_argument(
        _make_arg(ExplainabilityLiterals.N_STEPS),
        type=int, required=False,
    )

    parser.add_argument(
        _make_arg(ExplainabilityLiterals.APPROXIMATION_METHOD),
        type=str,
        required=False,
        choices=["gausslegendre", "riemann_middle"]
    )

    parser.add_argument(
        "--xrai_fast",
        type=bool, required=False,
    )

    parser.add_argument(
        _make_arg(
            ExplainabilityLiterals.CONFIDENCE_SCORE_THRESHOLD_MULTILABEL
            ),
        type=float, required=False,
    )

    parser.add_argument("--image_width_in_inches", type=float,
                        required=False, help="Image width in inches")

    parser.add_argument("--max_evals", type=int, required=False,
                        help="Maximum number of evaluations for shap")

    parser.add_argument("--num_masks", type=int, required=False,
                        help="Number of masks for DRISE")

    parser.add_argument("--mask_res", type=int, required=False,
                        help="Mask resolution for DRISE")
    parser.add_argument(
        "--device", type=int, help=(
            "Device for CPU/GPU supports. Setting this to -1 will leverage "
            "CPU, >=0 will run the model on the associated CUDA device id.")
    )

    # Component info
    parser.add_argument("--component_name", type=str, required=True)
    parser.add_argument("--component_version", type=str, required=True)

    # Outputs
    parser.add_argument("--dashboard", type=str, required=True)
    parser.add_argument("--ux_json", type=str, required=True)

    # parse args
    args = parser.parse_args()

    # return args
    return args