X-Git-Url: http://woldlab.caltech.edu/gitweb/?a=blobdiff_plain;f=htsworkflow%2Fpipelines%2Fipar.py;h=8203f5e0f29fda173728e3f504522f6cd579520f;hb=5644e2bfe7c1f7e5af99289cd918f783b61c441a;hp=e17db4b86c6844ae7d0575c3754f05005773a75c;hpb=61ce2870651f2f3d7d63d3f7efce2d4bd84cc92f;p=htsworkflow.git diff --git a/htsworkflow/pipelines/ipar.py b/htsworkflow/pipelines/ipar.py index e17db4b..8203f5e 100644 --- a/htsworkflow/pipelines/ipar.py +++ b/htsworkflow/pipelines/ipar.py @@ -19,7 +19,7 @@ import re import stat import time -from htsworkflow.pipelines.runfolder import \ +from htsworkflow.pipelines import \ ElementTree, \ VERSION_RE, \ EUROPEAN_STRPTIME @@ -71,10 +71,31 @@ class IPAR(object): def __init__(self, xml=None): self.tree = None self.date = datetime.datetime.today() - self._tiles = None + self._tiles = None if xml is not None: self.set_elements(xml) + def _get_runfolder_name(self): + """Return runfolder name""" + if self.tree is None: + raise ValueError("Can't query an empty run") + runfolder = self.tree.xpath('RunParameters/Runfolder') + return runfolder + runfolder_name = property(_get_runfolder) + + def _get_software(self): + """Return software name""" + if self.tree is None: + raise ValueError("Can't determine software name, please load a run") + software = self.tree.xpath('Software') + if len(software) == 0: + return None + elif len(software) > 1: + raise RuntimeError("Too many software tags, please update ipar.py") + else: + return software[0].attrib['Name'] + software = property(_get_software) + def _get_time(self): return time.mktime(self.date.timetuple()) def _set_time(self, value): @@ -213,7 +234,8 @@ def ipar(pathname): # its still live. # look for parameter xml file - paramfiles = [os.path.join(pathname, 'config.xml'), + paramfiles = [os.path.join(pathname, 'RTAConfig.xml'), + os.path.join(pathname, 'config.xml'), os.path.join(path, '.params')] for paramfile in paramfiles: if os.path.exists(paramfile):