7c3e6c34c6e24161c91c7051cbc7226e729d8d60 mmaddren Tue May 10 14:06:29 2011 -0700 updated Cv suite with unittest diff --git python/ucscgenomics/rafile/RaFile.py python/ucscgenomics/rafile/RaFile.py index a3c53d2..7c27048 100644 --- python/ucscgenomics/rafile/RaFile.py +++ python/ucscgenomics/rafile/RaFile.py @@ -7,57 +7,57 @@ Stores an Ra file in a set of entries, one for each stanza in the file. """ def __init__(self, filePath=''): OrderedDict.__init__(self) if filePath != '': self.read(filePath) def read(self, filePath): """ Reads an rafile stanza by stanza, and internalizes it. """ file = open(filePath, 'r') - #entry = self.__entryType() + #entry = None stanza = list() keyValue = '' for line in file: line = line.strip() if len(stanza) == 0 and (line.startswith('#') or line == ''): OrderedDict.append(self, line) continue if line != '': stanza.append(line) elif len(stanza) > 0: if keyValue == '': keyValue, name, entry = self.readStanza(stanza) else: testKey, name, entry = self.readStanza(stanza) - if keyValue != testKey: + if entry != None and keyValue != testKey: raise KeyError('Inconsistent Key ' + testKey) + if entry != None: if name in self: raise KeyError('Duplicate Key ' + name) - self[name] = entry - #entry = self.__entryType() + stanza = list() if len(stanza) > 0: raise IOError('File is not newline terminated') file.close() def readStanza(self, stanza): entry = RaStanza() val1, val2 = entry.readStanza(stanza) return val1, val2, entry def iter(self):