def works(listofpackversions): """ Evaluation function that is run for each set of package version. This method is called by the liquid climber algorithm. """ global count count += 1 config = listofpackversions int2pkg = liquid.env.int2pkg pkg2int = liquid.env.pkg2int bidir = liquid.env.bidir_commits semantic_config = {} for pi, ci in config.iteritems(): pkg = int2pkg[pi] commit = bidir[pkg][1][ci] semantic_config[pkg] = commit for pkg, commit in semantic_config.iteritems(): liquid.checkout(pkg, commit) liquid.pip_install(pkg) status = liquid.run() if status == 0: res = [True, -1, -1] res = [True, 0, -1, -1] else: res = [False, pkg2int[status[1]], pkg2int[status[0]]] res = [False, 0, pkg2int[status[1]], pkg2int[status[0]]] #knowcaller=False res = [False, 2, pkg2int[status[1]], pkg2int[status[0]]] return res
def works2(listofpackversions): global count count += 1 config = listofpackversions int2pkg = liquid.env.int2pkg pkg2int = liquid.env.pkg2int bidir = liquid.env.bidir_commits semantic_config = {} for pi, ci in config.iteritems(): pkg = int2pkg[pi] commit = bidir[pkg][1][ci] semantic_config[pkg] = commit for pkg, commit in semantic_config.iteritems(): liquid.checkout(pkg, commit) liquid.pip_install(pkg) status = liquid.run() if status == 0: res = [True, -1, -1] else: res = [False, pkg2int[status[1]], pkg2int[status[0]]] return res