diff --git a/mpcdf_common.py b/mpcdf_common.py index e411150301f56d6388e9b32449de3d77fff3fc4c..c01bb4717256a41a103029799dbb5e0367efca52 100644 --- a/mpcdf_common.py +++ b/mpcdf_common.py @@ -11,7 +11,7 @@ from xml.etree import ElementTree package_attributes = ["MPCDF:enable_repositories"] config_attributes = ["MPCDF:compiler_modules", "MPCDF:cuda_modules", "MPCDF:mpi_modules", "MPCDF:pgi_modules"] -default_attributes = ["MPCDF:default_compiler", "MPCDF:default_cuda", "MPCDF:default_mpi"] +default_attributes = ["MPCDF:default_compiler", "MPCDF:default_cuda", "MPCDF:default_mpi", "MPCDF:default_python2", "MPCDF:default_python3"] intel_parallel_studio = { "mpcdf_intel_parallel_studio_2017_7": {"compiler": "intel_17_0_7", "impi": "impi_2017_4", "mkl": "mkl_2017_4-module", }, @@ -139,6 +139,11 @@ def get_attribute_values(api_url, project, package, attribute, with_project=Fals return list(value.text for value in attribute.findall("./value")) +def get_attribute_value(api_url, project, package, attribute, with_project=False): + value, = get_attribute_values(api_url, project, package, attribute, with_project=False) + return value + + def set_attribute(api_url, project, package, attribute): path = ["source", project] if package: @@ -341,10 +346,12 @@ def mpcdf_setup_repositories(api_url, project, distribution=None, parent=None, p print("Copying attribute '{0}' from parent project".format(attribute)) set_attribute(api_url, project, None, get_attribute(api_url, parent, None, attribute)) - compilers = list(get_attribute_values(api_url, project, None, "MPCDF:compiler_modules")) - mpis = list(get_attribute_values(api_url, project, None, "MPCDF:mpi_modules")) - cudas = list(get_attribute_values(api_url, project, None, "MPCDF:cuda_modules")) - pgis = list(get_attribute_values(api_url, project, None, "MPCDF:pgi_modules")) + compilers = get_attribute_values(api_url, project, None, "MPCDF:compiler_modules") + mpis = get_attribute_values(api_url, project, None, "MPCDF:mpi_modules") + cudas = get_attribute_values(api_url, project, None, "MPCDF:cuda_modules") + pgis = get_attribute_values(api_url, project, None, "MPCDF:pgi_modules") + default_python2 = get_attribute_value(api_url, project, None, "MPCDF:default_python2") + default_python3 = get_attribute_value(api_url, project, None, "MPCDF:default_python3") if distribution is None: # Get existing value from project meta @@ -379,6 +386,10 @@ def mpcdf_setup_repositories(api_url, project, distribution=None, parent=None, p prjconf_tail = "".join(prjconf[end + 1:]) prjconf = [start_marker] + prjconf.append("Prefer: mpcdf_python2_" + default_python2) + prjconf.append("Prefer: mpcdf_python3_" + default_python3) + prjconf.append("") + # Remove existing repositories if remove_old: for oldrepo in root.findall("./repository"):