def releases(rel_name=None, rfilter=None): "Return information about CMS releases" if rel_name: if not pat_release.match(rel_name): msg = 'Wrong CMSSW release name' raise ValueError(msg) args = {'release_name': rel_name} else: args = {} url = tc_url('getReleasesInformation') rel_info = get_data(url, args) columns = rel_info['columns'] pat = re.compile('CMSSW_[1-9]_[0-9]_X\.*') for key, val in rel_info['data'].iteritems(): if rfilter == 'list': if pat.match(key) or not key.find('CMSSW') != -1 or \ key.find('EXPERIMENTAL') != -1 or \ key.find('CLANG') != -1 or \ key.find('_X_') != -1 or \ key.find('FORTIFIED') != -1: continue row = {} pairs = zip(columns['release_name'], val) for kkk, vvv in pairs: if isinstance(kkk, basestring): row[kkk] = vvv elif isinstance(kkk, list): for item in vvv: row.setdefault('architectures', []).append(dict(zip(kkk, item))) row['release_name'] = key for item in row['architectures']: if match_platform(item['architecture_name']): yield row
def get_release_arch(rel): "Return architecture for given CMSSW release" args = {'release': rel} releases = get_data(tc_url('py_getReleaseArchitectures'), args) output = [] for item in releases: rel_arch = item[0] status = item[1] if check_os(rel_arch): output.append((rel_arch, status)) return output