Initial port to python3
[htsworkflow.git] / htsworkflow / pipelines / eland.py
index a508a494c8c24900e8574c75f43c3616bf309814..feb7ff7c066ea070b836f47ce4d03536b8416095 100644 (file)
@@ -376,7 +376,7 @@ class ElandLane(ResultLane):
     def get_elements(self):
         lane = ElementTree.Element(ElandLane.LANE,
                                    {'version':
-                                    unicode(ElandLane.XML_VERSION)})
+                                    str(ElandLane.XML_VERSION)})
         sample_tag = ElementTree.SubElement(lane, SAMPLE_NAME)
         sample_tag.text = self.sample_name
         lane_tag = ElementTree.SubElement(lane, LANE_ID)
@@ -385,22 +385,22 @@ class ElandLane(ResultLane):
             end_tag = ElementTree.SubElement(lane, END)
             end_tag.text = str(self.end)
         genome_map = ElementTree.SubElement(lane, GENOME_MAP)
-        for k, v in self.genome_map.items():
+        for k, v in list(self.genome_map.items()):
             item = ElementTree.SubElement(
                 genome_map, GENOME_ITEM,
-                {'name':k, 'value':unicode(v)})
+                {'name':k, 'value':str(v)})
         mapped_reads = ElementTree.SubElement(lane, MAPPED_READS)
-        for k, v in self.mapped_reads.items():
+        for k, v in list(self.mapped_reads.items()):
             item = ElementTree.SubElement(
                 mapped_reads, MAPPED_ITEM,
-                {'name':k, 'value':unicode(v)})
+                {'name':k, 'value':str(v)})
         match_codes = ElementTree.SubElement(lane, MATCH_CODES)
-        for k, v in self.match_codes.items():
+        for k, v in list(self.match_codes.items()):
             item = ElementTree.SubElement(
                 match_codes, MATCH_ITEM,
-                {'name':k, 'value':unicode(v)})
+                {'name':k, 'value':str(v)})
         reads = ElementTree.SubElement(lane, READS)
-        reads.text = unicode(self.reads)
+        reads.text = str(self.reads)
 
         return lane
 
@@ -457,7 +457,7 @@ class MatchCodes(collections.MutableMapping):
             for key in initializer:
                 if key not in self.match_codes:
                     errmsg = "Initializer can only contain: %s"
-                    raise ValueError(errmsg % (",".join(self.match_codes.keys())))
+                    raise ValueError(errmsg % (",".join(list(self.match_codes.keys()))))
                 self.match_codes[key] += initializer[key]
 
     def __iter__(self):
@@ -472,7 +472,7 @@ class MatchCodes(collections.MutableMapping):
     def __setitem__(self, key, value):
         if key not in self.match_codes:
             errmsg = "Unrecognized key, allowed values are: %s"
-            raise ValueError(errmsg % (",".join(self.match_codes.keys())))
+            raise ValueError(errmsg % (",".join(list(self.match_codes.keys()))))
         self.match_codes[key] = value
 
     def __len__(self):
@@ -483,7 +483,7 @@ class MatchCodes(collections.MutableMapping):
             raise ValueError("Expected a MatchCodes, got %s", str(type(other)))
 
         newobj = MatchCodes(self)
-        for key, value in other.items():
+        for key, value in list(other.items()):
             newobj[key] = self.get(key, 0) + other[key]
 
         return newobj
@@ -574,7 +574,7 @@ class SequenceLane(ResultLane):
         LOGGER.info("summarizing results for %s" % (pathname))
         lines = 0
         f = open(pathname)
-        for l in f.xreadlines():
+        for l in f:
             lines += 1
         f.close()
 
@@ -589,7 +589,7 @@ class SequenceLane(ResultLane):
     def get_elements(self):
         lane = ElementTree.Element(SequenceLane.LANE,
                                    {'version':
-                                    unicode(SequenceLane.XML_VERSION)})
+                                    str(SequenceLane.XML_VERSION)})
         sample_tag = ElementTree.SubElement(lane, SAMPLE_NAME)
         sample_tag.text = self.sample_name
         lane_tag = ElementTree.SubElement(lane, LANE_ID)
@@ -598,16 +598,16 @@ class SequenceLane(ResultLane):
             end_tag = ElementTree.SubElement(lane, END)
             end_tag.text = str(self.end)
         reads = ElementTree.SubElement(lane, READS)
-        reads.text = unicode(self.reads)
+        reads.text = str(self.reads)
         sequence_type = ElementTree.SubElement(lane, SequenceLane.SEQUENCE_TYPE)
-        sequence_type.text = unicode(SequenceLane.SEQUENCE_DESCRIPTION[self.sequence_type])
+        sequence_type.text = str(SequenceLane.SEQUENCE_DESCRIPTION[self.sequence_type])
 
         return lane
 
     def set_elements(self, tree):
         if tree.tag != SequenceLane.LANE:
             raise ValueError('Exptecting %s' % (SequenceLane.LANE,))
-        lookup_sequence_type = dict([ (v,k) for k,v in SequenceLane.SEQUENCE_DESCRIPTION.items()])
+        lookup_sequence_type = dict([ (v,k) for k,v in list(SequenceLane.SEQUENCE_DESCRIPTION.items())])
 
         for element in tree:
             tag = element.tag.lower()
@@ -657,7 +657,7 @@ class ELAND(collections.MutableMapping):
         del self.result[key]
 
     def __iter__(self):
-        keys = self.results.iterkeys()
+        keys = iter(self.results.keys())
         for k in sorted(keys):
             yield k
 
@@ -670,18 +670,18 @@ class ELAND(collections.MutableMapping):
             raise ValueError("Key must be a %s" % (str(type(SampleKey))))
         if not search.iswild:
             yield self[search]
-        for key in self.keys():
+        for key in list(self.keys()):
             if key.matches(search): yield key
 
     def get_elements(self):
         root = ElementTree.Element(ELAND.ELAND,
-                                   {'version': unicode(ELAND.XML_VERSION)})
+                                   {'version': str(ELAND.XML_VERSION)})
 
         for key in self:
             eland_lane = self[key].get_elements()
-            eland_lane.attrib[ELAND.END] = unicode(self[key].end-1)
-            eland_lane.attrib[ELAND.LANE_ID] = unicode(self[key].lane_id)
-            eland_lane.attrib[ELAND.SAMPLE] = unicode(self[key].sample_name)
+            eland_lane.attrib[ELAND.END] = str(self[key].end-1)
+            eland_lane.attrib[ELAND.LANE_ID] = str(self[key].lane_id)
+            eland_lane.attrib[ELAND.SAMPLE] = str(self[key].sample_name)
             root.append(eland_lane)
         return root
         return root
@@ -895,7 +895,7 @@ def main(cmdline=None):
     for a in args:
         LOGGER.info("Starting scan of %s" % (a,))
         e = eland(a)
-        print ElementTree.tostring(e.get_elements())
+        print(ElementTree.tostring(e.get_elements()))
     return