Don't use xsd:string for string data types in toTypedNode
authorDiane Trout <diane@caltech.edu>
Thu, 7 Jul 2011 23:58:29 +0000 (16:58 -0700)
committerDiane Trout <diane@caltech.edu>
Thu, 7 Jul 2011 23:58:29 +0000 (16:58 -0700)
I saw a reference that "foo" and "foo"^xsd:string should
be treated the same, and man isn't the first version shorter
to write and easier to read?

htsworkflow/util/rdfhelp.py
htsworkflow/util/test/test_rdfhelp.py

index faf8acb38d24c8d3bff90518088a851d43d89255..5c73d98be3e6e0b75afe6273824a708a7f608791 100644 (file)
@@ -60,13 +60,15 @@ def toTypedNode(value):
     elif type(value) == types.FloatType:
         value_type = xsdNS['float'].uri
         value = unicode(value)
-    elif type(value) in types.StringTypes:
-        value_type = xsdNS['string'].uri
     else:
         value_type = None
         value = unicode(value)
 
-    return RDF.Node(literal=value, datatype=value_type)
+    if value_type is not None:
+        node = RDF.Node(literal=value, datatype=value_type)
+    else:
+        node = RDF.Node(literal=value)
+    return node
 
 def fromTypedNode(node):
     if node is None:
index 0364d78dfdd2b5ca2129d0f496b3b45bed954022..10122528551d308305b44819f28941cb3c0cc9af 100644 (file)
@@ -14,8 +14,7 @@ try:
       def test_typed_node_string(self):
           node = toTypedNode('hello')
           self.failUnlessEqual(node.literal_value['string'], u'hello')
-          self.failUnlessEqual(str(node.literal_value['datatype']),
-                               'http://www.w3.org/2001/XMLSchema#string')
+          self.failUnless(node.literal_value['datatype'] is None)
   
       def test_blank_or_uri_blank(self):
           node = blankOrUri()