# Copyright (c) 2004-5 Marek Hnilica. All rights reserved. # Module for parsing settings file # Distributed under GPL version 2, or (at your option) later import string class Data: def __init__(self,filename): self.Settings={} try: self.Settings=self.__ReadAllData(filename) except: pass self.Filename=filename def __ReadAllData(self,filename): file=open(filename,'r') d=file.readlines() cd={} for i in d: spl=string.split(string.strip(i),'=') try: spl[1]=int(spl[1]) except: try: spl[1]=float(spl[1]) except: if spl[1][0]=='(' or spl[1][0]=='[': WasDict=0 if spl[1][0]=='[':WasDict=1 spl[1]=string.split(spl[1][1:-1],',') d=[] for i in spl[1]: try: i=int(i) except: try: i=float(i) except: pass d.append(i) if WasDict:spl[1]=list(d) else: spl[1]=tuple(d) cd[spl[0]]=spl[1] return cd file.close() def GetValue(self,ValueName): try: return self.Settings[ValueName] except: return None def AddEntry(self,entry): # must get list with this structure: # [variable_name,variable] self.Settings[entry[0]]=entry[1] def AddEntries(self,entries): for i in entries: self.AddEntry(i) def SaveFile(self): file=open(self.Filename,'w') text='' for i in self.Settings: text+=i+'='+str(self.Settings[i])+'\n' string.strip(text) file.write(text) file.close()