X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=htsworkflow.git;a=blobdiff_plain;f=htsworkflow%2Fsubmission%2Fencoded.py;h=1228d387f015a39a9da12c8ad5ca296d218c68de;hp=05813fd550e7a352a6177ac7195c2c1586a167d9;hb=dd49302bb6f8b2503cc8c9b7151ed852858e10a1;hpb=c531eb18f04990f3118b93ae5222b3f3e2e8a6c6 diff --git a/htsworkflow/submission/encoded.py b/htsworkflow/submission/encoded.py index 05813fd..1228d38 100644 --- a/htsworkflow/submission/encoded.py +++ b/htsworkflow/submission/encoded.py @@ -277,6 +277,28 @@ class ENCODED: url = urlunparse(url.values()) return url + def search_jsonld(self, term, **kwargs): + '''Send search request to ENCODED + ''' + url = self.prepare_url('/search/') + result = self.get_json(url, searchTerm=term, **kwargs) + self.convert_search_to_jsonld(result) + return result + + def convert_search_to_jsonld(self, result): + '''Add the context to search result + + Also remove hard to handle nested attributes + e.g. remove object.term when we have no id + ''' + graph = result['@graph'] + for i, obj in enumerate(graph): + # suppress nested attributes + graph[i] = {k: v for k, v in obj.items() if '.' not in k} + + self.add_jsonld_context(result, self.prepare_url(result['@id'])) + return result + def validate(self, obj): obj_type = self.get_object_type(obj) schema_url = self.get_schema_url(obj)