def test_round_trip_annotations(): a = Annotations(foo=1234, zoo=[123.1, 456.2, 789.3], species='Moose', birthdays=[datetime(1969,4,28), datetime(1973,12,8), datetime(2008,1,3)]) sa = a.toSynapseAnnotations() # print sa a2 = Annotations.fromSynapseAnnotations(sa) # print a2 a = a2
def _getAnnotations(self, entity): entity_id = entity['id'] if 'id' in entity else str(entity) url = '%s/entity/%s/annotations' % (self.repoEndpoint, entity_id,) response = requests.get(url, headers=self.headers) response.raise_for_status() return Annotations.fromSynapseAnnotations(response.json())
def test_mixed_annotations(): """test that toSynapseAnnotations will coerce a list of mixed types to strings""" a = Annotations(foo=[1, 'a', datetime(1969,4,28,11,47)]) sa = a.toSynapseAnnotations() # print sa a2 = Annotations.fromSynapseAnnotations(sa) # print a2 assert a2['foo'][0] == '1' assert a2['foo'][1] == 'a' assert a2['foo'][2].find('1969') > -1
def _setAnnotations(self, entity, annotations): entity_id = entity['id'] if 'id' in entity else str(entity) url = '%s/entity/%s/annotations' % (self.repoEndpoint, entity_id,) a = annotations.toSynapseAnnotations() a['id'] = entity_id if 'etag' in entity and 'etag' not in a: a['etag'] = entity['etag'] response = requests.put(url, data=json.dumps(a), headers=self.headers) response.raise_for_status() return Annotations.fromSynapseAnnotations(response.json())