From 56cb3b470969ed4273e0f8437216e1642c7c4d0f Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Thu, 27 Sep 2012 11:46:56 -0700 Subject: [PATCH] older librdf wanted to include type information when showing query strings. So I ran everything through fromTypedNode to convert the nodes to simple python types. However fromTypedNode wasn't intended to handle non-literal nodes so I had to adjust it a bit to return resource nodes safely. --- htsworkflow/submission/submission.py | 7 +++++-- htsworkflow/util/rdfhelp.py | 6 ++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/htsworkflow/submission/submission.py b/htsworkflow/submission/submission.py index c944b76..01bdb17 100644 --- a/htsworkflow/submission/submission.py +++ b/htsworkflow/submission/submission.py @@ -308,6 +308,9 @@ class Submission(object): query = RDF.SPARQLQuery(str(formatted_query)) rdfstream = query.execute(self.model) results = [] - for r in rdfstream: - results.append(r) + for record in rdfstream: + d = {} + for key, value in record.items(): + d[key] = fromTypedNode(value) + results.append(d) return results diff --git a/htsworkflow/util/rdfhelp.py b/htsworkflow/util/rdfhelp.py index 6fa326d..e5c8718 100644 --- a/htsworkflow/util/rdfhelp.py +++ b/htsworkflow/util/rdfhelp.py @@ -119,8 +119,10 @@ def toTypedNode(value): def fromTypedNode(node): """Convert a typed RDF Node to its closest python equivalent """ - if node is None: - return None + if not isinstance(node, RDF.Node): + return node + if node.is_resource(): + return node value_type = get_node_type(node) literal = node.literal_value['string'] -- 2.30.2