older librdf wanted to include type information when showing query strings.
[htsworkflow.git] / htsworkflow / util / rdfhelp.py
index 93b7ada645e876834319236359b3121c73f94c74..e5c8718d8906897b86069be8e88baf19bcc2709c 100644 (file)
@@ -7,6 +7,7 @@ from urlparse import urlparse, urlunparse
 from urllib2 import urlopen
 import logging
 import os
+import sys
 import types
 
 import lxml.html
@@ -118,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']
@@ -419,6 +422,9 @@ def get_serializer(name='turtle'):
     return writer
 
 
-def dump_model(model):
+def dump_model(model, destination=None):
+    if destination is None:
+        destination = sys.stdout
     serializer = get_serializer()
-    print serializer.serialize_model_to_string(model)
+    destination.write(serializer.serialize_model_to_string(model))
+    destination.write(os.linesep)