Initial port to python3
[htsworkflow.git] / htsworkflow / pipelines / run_status.py
index 39dc54cb5adc435fa1e59c8aeda945269a655937..0903e7018f7760aa43fafeb3289c7194ebd0d9d6 100644 (file)
@@ -1,3 +1,5 @@
+__docformat__ = "restructuredtext en"
+
 import glob
 import re
 import os
@@ -11,33 +13,6 @@ s_read_len = re.compile('^[1-8]+:READ_LENGTH ')
 
 s_firecrest = None
 
-def _four_digit_num_in_string(num):
-  if num < 0:
-    pass
-  elif num < 10:
-    return '000' + str(num)
-  elif num < 100:
-    return '00' + str(num)
-  elif num < 1000:
-    return '0' + str(num)
-  elif num < 10000:
-    return str(num)
-
-  msg = 'Invalid number: %s' % (num)
-  raise ValueError, msg
-
-def _two_digit_num_in_string(num):
-  if num < 0:
-    pass
-  elif num < 10:
-    return '0' + str(num)
-  elif num < 100:
-    return str(num)
-
-  msg = 'Invalid number: %s' % (num)
-  raise ValueError, msg
-
-
 # FIRECREST PATTERNS
 # _p2f(<pattern>, lane, tile, cycle)
 PATTERN_FIRECREST_QCM = 's_%s_%s_%s_qcm.xml'
@@ -103,17 +78,17 @@ def _p2f(pattern, lane, tile=None, cycle=None):
   # lane, and cycle provided (INVALID)
   if tile is None and cycle is not None:
     msg = "Handling of cycle without tile is not currently implemented."
-    raise ValueError, msg
+    raise ValueError(msg)
 
   # lane, tile, cycle provided
   elif cycle:
     return pattern % (lane,
-                      _four_digit_num_in_string(tile),
-                      _two_digit_num_in_string(cycle))
+                      "%04d" % (tile,),
+                     "%02d" % (cycle,))
   
   # lane, tile provided
   elif tile:
-    return pattern % (lane, _four_digit_num_in_string(tile))
+    return pattern % (lane, "%04d" % (tile,))
 
   # lane provided
   else:
@@ -324,7 +299,7 @@ class GARunStatus(object):
     """
     firecrest = self.status['firecrest']
     total = len(firecrest)
-    completed = firecrest.values().count(True)
+    completed = list(firecrest.values()).count(True)
 
     return (completed, total)
 
@@ -335,7 +310,7 @@ class GARunStatus(object):
     """
     bustard = self.status['bustard']
     total = len(bustard)
-    completed = bustard.values().count(True)
+    completed = list(bustard.values()).count(True)
 
     return (completed, total)
 
@@ -346,7 +321,7 @@ class GARunStatus(object):
     """
     gerald = self.status['gerald']
     total = len(gerald)
-    completed = gerald.values().count(True)
+    completed = list(gerald.values()).count(True)
 
     return (completed, total)
 
@@ -424,23 +399,24 @@ def _cmdLineStatusMonitorFunc(conf_info):
   You should probably use startCmdLineStatusMonitor()
   instead of ths function.
 
-  Use with:
-    t = threading.Thread(target=_cmdLineStatusMonitorFunc,
-                         args=[conf_info])
-    t.setDaemon(True)
-    t.start()
+  .. python:
+    def example_launch():
+        t = threading.Thread(target=_cmdLineStatusMonitorFunc,
+                             args=[conf_info])
+        t.setDaemon(True)
+        t.start()
   """
   SLEEP_AMOUNT = 30
 
   while 1:
     if conf_info.status is None:
-      print "No status object yet."
+      print("No status object yet.")
       time.sleep(SLEEP_AMOUNT)
       continue
 
     report = conf_info.status.statusReport()
-    print os.linesep.join(report)
-    print
+    print(os.linesep.join(report))
+    print()
 
     time.sleep(SLEEP_AMOUNT)
 
@@ -470,7 +446,7 @@ def main(cmdline=None):
     parser.error("need name of configuration file")
     
   status = GARunStatus(args[0])
-  print os.linesep.join(status.statusReport())
+  print(os.linesep.join(status.statusReport()))
   return 0
 
 if __name__ == "__main__":