def parse_args()

in diabetes_regression/scoring/parallel_batchscore.py [0:0]


def parse_args() -> List[str]:
    """
    The AML pipeline calls this file with a set of additional command
    line arguments whose names are not documented. As such using the
    ArgumentParser which necessitates that we supply the names of the
    arguments is risky should those undocumented names change. Hence
    we parse the arguments manually.

    :returns: List of model filters

    :raises: ValueError
    """
    model_name_param = [
        (sys.argv[idx], sys.argv[idx + 1])
        for idx, itm in enumerate(sys.argv)
        if itm == "--model_name"
    ]

    if len(model_name_param) == 0:
        raise ValueError(
            "Model name is required but no model name parameter was passed to the script"  # NOQA: E501
        )

    model_name = model_name_param[0][1]

    model_version_param = [
        (sys.argv[idx], sys.argv[idx + 1])
        for idx, itm in enumerate(sys.argv)
        if itm == "--model_version"
    ]
    model_version = (
        None
        if len(model_version_param) < 1
        or len(model_version_param[0][1].strip()) == 0  # NOQA: E501
        else model_version_param[0][1]
    )

    model_tag_name_param = [
        (sys.argv[idx], sys.argv[idx + 1])
        for idx, itm in enumerate(sys.argv)
        if itm == "--model_tag_name"
    ]
    model_tag_name = (
        None
        if len(model_tag_name_param) < 1
        or len(model_tag_name_param[0][1].strip()) == 0  # NOQA: E501
        else model_tag_name_param[0][1]
    )

    model_tag_value_param = [
        (sys.argv[idx], sys.argv[idx + 1])
        for idx, itm in enumerate(sys.argv)
        if itm == "--model_tag_value"
    ]
    model_tag_value = (
        None
        if len(model_tag_value_param) < 1
        or len(model_tag_name_param[0][1].strip()) == 0
        else model_tag_value_param[0][1]
    )

    return [model_name, model_version, model_tag_name, model_tag_value]