import dataset import inputs from results import save_model_metrics from results import print_model_metrics from results import save_cv_metrics from results import print_cv_metrics from models import predict from models import calculate_metrics from models import calculate_cv_score from models import SPOT_CHECK_MODELS import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split args = inputs.parse_args() wine_data = pd.read_csv(args.input_data_file, names=dataset.COLUMNS) SEED = 1234 X = wine_data.drop('Class', axis=1) y = wine_data['Class'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=SEED) print('\nEvaluating models...') results = []
def main(arg_strings=None): ''' Entry function. ''' parser = make_parser() args = inputs.parse_args(parser, arg_strings) variants = utils.make_variants(args.python_versions, args.build_types, args.mpi_types, args.cuda_versions) pr_branch = utils.get_output("git log -1 --format='%H'") utils.run_and_log("git remote set-head origin -a") default_branch = utils.get_output( "git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'" ) variant_build_results = dict() for variant in variants: utils.run_and_log("git checkout {}".format(default_branch)) master_build_config_data, master_config = _get_configs( variant, args.conda_build_config) master_build_numbers = _get_build_numbers(master_build_config_data, master_config, variant) utils.run_and_log("git checkout {}".format(pr_branch)) pr_build_config_data, pr_config = _get_configs(variant, args.conda_build_config) current_pr_build_numbers = _get_build_numbers(pr_build_config_data, pr_config, variant) print("Build Info for Variant: {}".format(variant)) print("Current PR Build Info: {}".format(current_pr_build_numbers)) print("Master Branch Build Info: {}".format(master_build_numbers)) #No build numbers can go backwards without a version change. for package in master_build_numbers: if package in current_pr_build_numbers and current_pr_build_numbers[ package]["version"] == master_build_numbers[package][ "version"]: assert int(current_pr_build_numbers[package]["number"]) >= int( master_build_numbers[package]["number"] ), "If the version doesn't change, the build number can't be reduced." #If packages are added or removed, don't require a version change if set(master_build_numbers.keys()) != set( current_pr_build_numbers.keys()): return #At least one package needs to increase the build number or change the version. checks = [ current_pr_build_numbers[package]["version"] != master_build_numbers[package]["version"] or int(current_pr_build_numbers[package]["number"]) > int( master_build_numbers[package]["number"]) for package in master_build_numbers ] variant_build_results[utils.variant_string( variant["python"], variant["build_type"], variant["mpi_type"], variant["cudatoolkit"])] = any(checks) assert any( variant_build_results.values() ), "At least one package needs to increase the build number or change the version in at least one variant."