diff --git a/mpcdf_common.py b/mpcdf_common.py index 2a46f4ee2976ff131461caf8ecfaa0255c5ddf01..6fd0fd1e1148ee2eb15da8c6d4f2ce0c9577b551 100644 --- a/mpcdf_common.py +++ b/mpcdf_common.py @@ -386,10 +386,22 @@ def get_attribute(api_url, project, package, attribute, with_project=None): def overloaded_project_attribute(api_url, project, attribute): + ignore_attribute = attribute.replace("MPCDF:", "MPCDF:ignore_") + try: - return get_attribute_values(api_url, project, None, attribute) + values = get_attribute_values(api_url, project, None, attribute) except UnsetAttributeException: - return get_attribute_values(api_url, "software", None, attribute) + values = None + + try: + ignored = get_attribute_values(api_url, project, None, ignore_attribute) + except UnsetAttributeException: + ignored = () + + if values is None: + values = get_attribute_values(api_url, "software", None, attribute) + + return list(filter(lambda v: v not in ignored, values)) def overloaded_package_attribute(api_url, project, package, attribute):