def add_resource(resource_info, update=True): if 'trait' in resource_info['data']: resource_id = hmac_creation('{}:{}:{}'.format( str(resource_info['type']), str(resource_info['data']['dataset']), str(resource_info['data']['trait']))) else: resource_id = hmac_creation('{}:{}'.format( str(resource_info['type']), str(resource_info['data']['dataset']))) if update or not Redis.hexists("resources", resource_id): Redis.hset("resources", resource_id, json.dumps(resource_info)) return resource_info
def get_resource_id(dataset, trait_id=None): resource_id = False if dataset.type == "Publish": if trait_id: resource_id = hmac_creation("{}:{}:{}".format( 'dataset-publish', dataset.id, trait_id)) elif dataset.type == "ProbeSet": resource_id = hmac_creation("{}:{}".format('dataset-probeset', dataset.id)) elif dataset.type == "Geno": resource_id = hmac_creation("{}:{}".format('dataset-geno', dataset.id)) return resource_id
def verify_cookie(cookie): the_uuid, separator, the_signature = cookie.partition(':') assert len(the_uuid) == 36, "Is session_id a uuid?" assert separator == ":", "Expected a : here" assert the_signature == hmac.hmac_creation( the_uuid), "Uh-oh, someone tampering with the cookie?" return the_uuid
def process_traits(unprocessed_traits): if isinstance(unprocessed_traits, basestring): unprocessed_traits = unprocessed_traits.split(",") traits = set() for trait in unprocessed_traits: data, _separator, the_hmac = trait.rpartition(':') data = data.strip() if g.user_session.logged_in: assert the_hmac == hmac.hmac_creation(data), "Data tampering?" traits.add(str(data)) return traits
def create_signed_cookie(): the_uuid = str(uuid.uuid4()) signature = hmac.hmac_creation(the_uuid) uuid_signed = the_uuid + ":" + signature logger.debug("uuid_signed:", uuid_signed) return the_uuid, uuid_signed
def generate_corr_json(corr_results, this_trait, dataset, target_dataset, for_api=False): results_list = [] for i, trait in enumerate(corr_results): results_dict = {} if not for_api: results_dict[ 'checkbox'] = "<INPUT TYPE='checkbox' NAME='searchResult' class='checkbox trait_checkbox' style='padding-right: 0px;' VALUE='" + hmac.hmac_creation( '{}:{}'.format(trait.name, trait.dataset.name)) + "'>" results_dict['index'] = i + 1 results_dict['trait_id'] = "<a href='/show_trait?trait_id=" + str( trait.name) + "&dataset=" + str(dataset.name) + "'>" + str( trait.name) + "</a>" else: results_dict['trait_id'] = trait.name if target_dataset.type == "ProbeSet": results_dict['symbol'] = trait.symbol results_dict['description'] = trait.description_display results_dict['location'] = trait.location_repr results_dict['mean'] = float(trait.mean) if trait.LRS_score_repr != "N/A": results_dict['lrs_score'] = "%.1f" % float( trait.LRS_score_repr) else: results_dict['lrs_score'] = "N/A" results_dict['lrs_location'] = trait.LRS_location_repr if trait.additive != "": results_dict['additive'] = "%0.3f" % float(trait.additive) else: results_dict['additive'] = "N/A" if for_api: results_dict['sample_r'] = "%0.3f" % float(trait.sample_r) else: results_dict[ 'sample_r'] = "<a target='_blank' href='corr_scatter_plot?dataset_1=" + str( dataset.name) + "&dataset_2=" + str( trait.dataset.name) + "&trait_1=" + str( this_trait.name) + "&trait_2=" + str( trait.name) + "'>" + "%0.3f" % float( trait.sample_r) + "</a>" results_dict['num_overlap'] = trait.num_overlap results_dict['sample_p'] = "%0.3e" % float(trait.sample_p) if trait.lit_corr == "" or trait.lit_corr == 0: results_dict['lit_corr'] = "--" else: results_dict['lit_corr'] = "%0.3f" % float(trait.lit_corr) if trait.tissue_corr == "" or trait.tissue_corr == 0: results_dict['tissue_corr'] = "--" else: results_dict['tissue_corr'] = "%0.3f" % float( trait.tissue_corr) elif target_dataset.type == "Publish": results_dict['description'] = trait.description_display results_dict['authors'] = trait.authors if trait.pubmed_id: if for_api: results_dict['pubmed_id'] = trait.pubmed_id results_dict['year'] = trait.pubmed_text else: results_dict[ 'pubmed'] = "<a href='" + trait.pubmed_link + "'> " + trait.pubmed_text + "</a>" else: if for_api: results_dict['pubmed_id'] = "N/A" results_dict['year'] = "N/A" else: results_dict['pubmed'] = "N/A" results_dict['lrs_score'] = trait.LRS_score_repr results_dict['lrs_location'] = trait.LRS_location_repr if trait.additive != "": results_dict['additive'] = "%0.3f" % float(trait.additive) else: results_dict['additive'] = "N/A" if for_api: results_dict['sample_r'] = "%0.3f" % trait.sample_r else: results_dict[ 'sample_r'] = "<a target='_blank' href='corr_scatter_plot?dataset_1=" + str( dataset.name) + "&dataset_2=" + str( trait.dataset.name) + "&trait_1=" + str( this_trait.name) + "&trait_2=" + str( trait.name ) + "'>" + "%0.3f" % trait.sample_r + "</a>" results_dict['num_overlap'] = trait.num_overlap results_dict['sample_p'] = "%0.3e" % float(trait.sample_p) else: results_dict['lrs_location'] = trait.LRS_location_repr if for_api: results_dict['sample_r'] = "%0.3f" % trait.sample_r else: results_dict[ 'sample_r'] = "<a target='_blank' href='corr_scatter_plot?dataset_1=" + str( dataset.name) + "&dataset_2=" + str( trait.dataset.name) + "&trait_1=" + str( this_trait.name) + "&trait_2=" + str( trait.name) + "'>" + "%0.3f" % float( trait.sample_r) + "</a>" results_dict['num_overlap'] = trait.num_overlap results_dict['sample_p'] = "%0.3e" % float(trait.sample_p) results_list.append(results_dict) return json.dumps(results_list)
def test_hmac_creation_with_cookie(self): """Test hmac creation with a cookie""" cookie = "3f4c1dbf-5b56-4260-87d6-f35445bda37e:af4fcf5eace9e7c864ce" uuid_, _, signature = cookie.partition(":") self.assertEqual(hmac_creation(uuid_), "af4fcf5eace9e7c864ce")
def test_hmac_creation(self): """Test hmac creation with a utf-8 string""" self.assertEqual(hmac_creation("ファイ"), "7410466338cfe109e946")