"""
Extract information about the Firecrest run
-Firecrest - class holding the properties we found
-firecrest - Firecrest factory function initalized from a directory name
-fromxml - Firecrest factory function initalized from an xml dump from
- the Firecrest object.
+Firecrest
+ class holding the properties we found
+firecrest
+ Firecrest factory function initalized from a directory name
+fromxml
+ Firecrest factory function initalized from an xml dump from
+ the Firecrest object.
"""
from datetime import date
+from glob import glob
import os
import re
import time
VERSION_RE, \
EUROPEAN_STRPTIME
+__docformat__ = "restructuredtext en"
+
class Firecrest(object):
XML_VERSION=1
run_date.text = str(self.time)
user = ElementTree.SubElement(root, Firecrest.USER)
user.text = self.user
- matrix = ElementTree.SubElement(root, Firecrest.MATRIX)
- matrix.text = self.matrix
+ if self.matrix is not None:
+ matrix = ElementTree.SubElement(root, Firecrest.MATRIX)
+ matrix.text = self.matrix
return root
def set_elements(self, tree):
# username
f.user = groups[3]
+ bustard_pattern = os.path.join(pathname, 'Bustard*')
# should I parse this deeper than just stashing the
# contents of the matrix file?
matrix_pathname = os.path.join(pathname, 'Matrix', 's_matrix.txt')
- f.matrix = open(matrix_pathname, 'r').read()
+ if os.path.exists(matrix_pathname):
+ # this is for firecrest < 1.3.2
+ f.matrix = open(matrix_pathname, 'r').read()
+ elif glob(bustard_pattern) > 0:
+ f.matrix = None
+ # there are runs here. Bustard should save the matrix.
+ else:
+ return None
+
return f
def fromxml(tree):