Initial port to python3
[htsworkflow.git] / htsworkflow / pipelines / firecrest.py
index e8d0a2898c0c4d5621732a2fd0abdb5778dcdfd1..d8fa8721a6aad2237e1578f019ae41fafcba7a08 100644 (file)
@@ -1,29 +1,32 @@
 """
 Extract information about the Firecrest run
 
-Firecrest 
+Firecrest
   class holding the properties we found
-firecrest 
+firecrest
   Firecrest factory function initalized from a directory name
-fromxml 
+fromxml
   Firecrest factory function initalized from an xml dump from
   the Firecrest object.
 """
 
 from datetime import date
 from glob import glob
+import logging
 import os
 import re
 import time
 
-from htsworkflow.pipelines.runfolder import \
+from htsworkflow.pipelines import \
    ElementTree, \
    VERSION_RE, \
    EUROPEAN_STRPTIME
 
-__docformat__ = "restructuredtext en"
+LOGGER = logging.getLogger(__name__)
 
 class Firecrest(object):
+    """Gather information about older firecrest runs
+    """
     XML_VERSION=1
 
     # xml tag names
@@ -36,6 +39,12 @@ class Firecrest(object):
     MATRIX = 'matrix'
 
     def __init__(self, xml=None):
+        """Initialize a Firecrest object
+        
+        consider using factory :function:firecrest
+        
+        :param xml: xml serialzation element to initialze from [optional]
+        """
         self.start = None
         self.stop = None
         self.version = None
@@ -45,19 +54,27 @@ class Firecrest(object):
 
         if xml is not None:
             self.set_elements(xml)
-        
+
+    def _get_software(self):
+        return "Firecrest"
+    software = property(_get_software)
+
     def _get_time(self):
         return time.mktime(self.date.timetuple())
     time = property(_get_time, doc='return run time as seconds since epoch')
 
     def dump(self):
-        print "Starting cycle:", self.start
-        print "Ending cycle:", self.stop
-        print "Firecrest version:", self.version
-        print "Run date:", self.date
-        print "user:", self.user
+        """Report debugginf information
+        """
+        print("Starting cycle:", self.start)
+        print("Ending cycle:", self.stop)
+        print("Firecrest version:", self.version)
+        print("Run date:", self.date)
+        print("user:", self.user)
 
     def get_elements(self):
+        """Return XML serialization structure.
+        """
         attribs = {'version': str(Firecrest.XML_VERSION) }
         root = ElementTree.Element(Firecrest.FIRECREST, attrib=attribs)
         version = ElementTree.SubElement(root, Firecrest.SOFTWARE_VERSION)
@@ -80,7 +97,7 @@ class Firecrest(object):
             raise ValueError('Expected "Firecrest" SubElements')
         xml_version = int(tree.attrib.get('version', 0))
         if xml_version > Firecrest.XML_VERSION:
-            logging.warn('Firecrest XML tree is a higher version than this class')
+            LOGGER.warn('Firecrest XML tree is a higher version than this class')
         for element in list(tree):
             if element.tag == Firecrest.SOFTWARE_VERSION:
                 self.version = element.text
@@ -102,6 +119,7 @@ def firecrest(pathname):
     Examine the directory at pathname and initalize a Firecrest object
     """
     f = Firecrest()
+    f.pathname = pathname
 
     # parse firecrest directory name
     path, name = os.path.split(pathname)
@@ -120,7 +138,7 @@ def firecrest(pathname):
     f.user = groups[3]
 
     bustard_pattern = os.path.join(pathname, 'Bustard*')
-    # should I parse this deeper than just stashing the 
+    # should I parse this deeper than just stashing the
     # contents of the matrix file?
     matrix_pathname = os.path.join(pathname, 'Matrix', 's_matrix.txt')
     if os.path.exists(matrix_pathname):