def readParsHelpFile(self): self.tags = {} fileLocation = os.path.join(getTopDirectory(), 'data', 'ccp', 'varian', 'parhelp.txt') fin = open(fileLocation, 'rU') line = fin.readline() while line: if not (self.patt['emptyline'].search(line) or self.patt['hash'].search(line)): cols = line.split() if len(cols) < 3 or cols[1] != '=': print "Error parsing following line:" + self.newline + line + self.newline else: # Sort out tag tag = cols[0] # Sort out value (remove ' and rejoin with single spaces) value = joinUnquote(cols[2:], "'") self.tags[tag] = value line = fin.readline()
def readParsHelpFile(self): self.tags = {} fileLocation = os.path.join(getTopDirectory(), 'data', 'ccp', 'bruker', 'parhelp.txt') fin = open(fileLocation, 'rU') line = fin.readline() while line: if not (self.patt['emptyline'].search(line) or self.patt['hash'].search(line)): cols = line.split() if len(cols) < 3 or cols[1] != '=': print "Error parsing following line:" + self.newline + line + self.newline else: # Sort out tag tag = cols[0] # Sort out value (remove ' and rejoin with single spaces) value = joinUnquote(cols[2:], "'") # Check if multivalue line (eg. SFO1, SFO2, ...) searchobj = self.patt[self.format + 'BracketMultiValue'].search(tag) if searchobj: for i in range(int(searchobj.group(1)), int(searchobj.group(2)) + 1): curTag = self.patt[self.format + 'BracketMultiValue'].sub( str(i), tag) curValue = self.patt[self.format + 'BracketMultiValue'].sub( str(i), value) self.tags[curTag] = curValue else: self.tags[tag] = value line = fin.readline()
def read(self, verbose=0, expname='unknown'): if verbose == 1: print "Reading Varian acquisition parameters file %s" % self.name # For reading: Varian parameter stored format is made up of 3 OR MORE lines! # See VarianPar class definition for more detailed info. fin = open(self.name, 'rU') line = fin.readline() while line: # Checking of empty lines and hashes not really necessary, but left in just in case if not (self.patt['emptyline'].search(line) or self.patt['hash'].search(line)): cols = line.split() if len(cols) != 11: print " ERROR: %s Varian procpar has wrong number of fields on following line:" % expname + self.newline + line elif self.parameters.has_key(cols[0]): print("Reoccuring parameter name: %s" % cols[0]) + self.newline else: parname = cols[0] self.parameters[parname] = VarianAcqPar( parname, cols[1], cols[2], cols[3], cols[4], cols[5], cols[6], cols[7], cols[8], cols[9]) self.parameters[parname].addHelp(self.parHelp, verbose) # Read values (LINE 2) line = fin.readline() cols = line.split() value_len = returnInt(cols[0]) if self.parameters[parname].basictype == 1: # Case real data type self.parameters[parname].addvalues( expname, value_len, returnFloats(cols[1:])) elif self.parameters[parname].basictype == 2: # Case string data type values = [] values.append(joinUnquote(cols[1:], '"')) # For multiple line string data, read other lines for value_num in range(1, value_len): # Read values line = fin.readline() cols = line.split() values.append(joinUnquote(cols, '"')) self.parameters[parname].addvalues( expname, value_len, values) else: # Case undefined data type print " ERROR: %s Varian procpar has undefined basic data type. Check parameter %s." % ( expname, parname) # Read enumerations (LAST LINE) line = fin.readline() cols = line.split() enum_len = returnInt(cols[0]) if enum_len == 0: self.parameters[parname].addenum(expname, enum_len, '') else: self.parameters[parname].addenum( expname, enum_len, unquote(cols[1:], '"')) line = fin.readline()