def download_data_set(request, data_set_id, what, file_ext): us = get_session(request) data_sets = DataSet.get_common_data_sets() if us is None else us.get_all_allowed_dataset_set() if what == 'reference': data_set_id, file_ext = DataSet.split_seq_ext(data_set_id + file_ext) try: ds = data_sets.get(dirname=data_set_id) except DataSet.DoesNotExist: return HttpResponseNotFound('Data set %s was not found' % data_set_id) if what == 'reference': fpath = os.path.join(ds.get_dirpath(), ds.reference_fname) if DataSet.split_seq_ext(fpath)[1] != file_ext: return HttpResponseNotFound() return __download(fpath, data_set_id + file_ext) else: if what == 'genes': fpath = os.path.join(ds.get_dirpath(), ds.genes_fname) elif what == 'operons': fpath = os.path.join(ds.get_dirpath(), ds.operons_fname) else: return HttpResponseNotFound() if DataSet.split_genes_ext(fpath)[1] != file_ext: return HttpResponseNotFound() return __download(fpath, data_set_id + '_' + what + file_ext)