Specify text vs binary mode for opening files.
[htsworkflow.git] / htsworkflow / submission / daf.py
index a74d71a667d1cb788cbdaab24cdf8661738c9413..b2d7419784e0ebf257b688b9867cecdfee3bed22 100644 (file)
@@ -5,9 +5,9 @@ import os
 from pprint import pformat
 import re
 import string
-from StringIO import StringIO
+from six.moves import StringIO
 import types
-import urlparse
+from six.moves import urllib
 
 import RDF
 from htsworkflow.util.rdfhelp import \
@@ -232,7 +232,7 @@ def submission_uri_to_string(submission_uri):
 
 def get_view_namespace(submission_uri):
     submission_uri = submission_uri_to_string(submission_uri)
-    view_uri = urlparse.urljoin(submission_uri, 'view/')
+    view_uri = urllib.parse.urljoin(submission_uri, 'view/')
     viewNS = RDF.NS(view_uri)
     return viewNS
 
@@ -270,7 +270,7 @@ class UCSCSubmission(object):
             self.daf = daf_file.read()
         else:
             # file
-            stream = open(daf_file, 'r')
+            stream = open(daf_file, 'rt')
             self.daf = stream.read()
             stream.close()
 
@@ -300,7 +300,7 @@ class UCSCSubmission(object):
             LOGGER.info("Importing %s from %s" % (lib_id, result_dir))
             try:
                 self.import_submission_dir(result_dir, lib_id)
-            except MetadataLookupException, e:
+            except MetadataLookupException as e:
                 LOGGER.error("Skipping %s: %s" % (lib_id, str(e)))
 
     def import_submission_dir(self, submission_dir, library_id):
@@ -361,7 +361,7 @@ class UCSCSubmission(object):
                           rdfNS['type'],
                           submissionOntology['submission']))
         self.model.add_statement(RDF.Statement(submissionNode,
-                                               submissionOntology['library'],
+                                               libraryOntology['library'],
                                                libNode))
 
         LOGGER.debug("Adding statements to {0}".format(str(submissionView)))
@@ -385,8 +385,8 @@ class UCSCSubmission(object):
     def create_file_attributes(self, filename, submissionView, submission_uri, submission_dir):
         # add file specific information
         LOGGER.debug("Updating file md5sum")
-        fileNode = RDF.Node(RDF.Uri(submission_uri + '/' + filename))
         submission_pathname = os.path.join(submission_dir, filename)
+        fileNode = RDF.Node(RDF.Uri("file://" + submission_pathname))
         self.model.add_statement(
             RDF.Statement(submissionView,
                           dafTermOntology['has_file'],
@@ -531,7 +531,7 @@ class UCSCSubmission(object):
             LOGGER.debug("Found: %s" % (literal_re,))
             try:
                 filename_re = re.compile(literal_re)
-            except re.error, e:
+            except re.error as e:
                 LOGGER.error("Unable to compile: %s" % (literal_re,))
             patterns[literal_re] = view_name
         return patterns