def retrieve_classify_parameters()

in mozci/console/commands/push.py [0:0]


def retrieve_classify_parameters(options):
    default_parameters = []
    for name, parameter in signature(Push.classify).parameters.items():
        if name != "self":
            default_parameters.append(parameter)

    classify_parameters = {}
    for parameter in default_parameters:
        parameter_name = parameter.name
        parameter_type = parameter.annotation
        option_name = parameter_name.replace("_", "-")
        try:
            option = options(option_name)
        except CleoNoSuchOptionError:
            option = None

        if config.get(parameter_name) is not None and option is not None:
            raise Exception(
                f"You should provide either --{option_name} CLI option OR '{parameter_name}' in the config secret not both."
            )

        if config.get(parameter_name) is not None:
            classify_parameters[parameter_name] = check_type(
                parameter_type,
                f"'{parameter_name}' in the config secret",
                config[parameter_name],
            )
        elif option is not None:
            classify_parameters[parameter_name] = check_type(
                parameter_type, f"--{option_name}", option
            )

    return classify_parameters