def __init__(self, prototype, fileName=None, type=0): """ @param prototype: The configuration prototype mapping @param fileName: The file that holds this configuration registry """ self.prototype = prototype # read configuration self.config = MyConfigParser() if fileName: if not os.path.isfile(fileName): path = VFS.getWritableResourcePath() fileName = os.path.join(path, fileName) self.config.read(fileName) self.fileName = fileName self.type = type # fix the defaults and non-existing keys for section, options in prototype.items(): if not self.config.has_section(section): self.config.add_section(section) for option in options.keys(): type = options[option].type default = options[option].default if not self.config.has_option(section, option): self.config.set(section, option, str(default))
def read(self, fileName): if fileName: if not os.path.isfile(fileName): path = VFS.getWritableResourcePath() fileName = os.path.join(path, fileName) self.config.read(fileName) self.fileName = fileName
def load_config(configPath): ''' Load the configuration file. ''' if configPath is not None: if configPath.lower() == "reset": # Get os specific location of config file, and remove it. fileName = os.path.join(VFS.getWritableResourcePath(), Version.PROGRAM_UNIXSTYLE_NAME + ".ini") os.remove(fileName) # Recreate it config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) else: # Load specified config file config = Config.load(configPath, setAsDefault = True) else: # Use default configuration file config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) return config
def load_config(configPath): ''' Load the configuration file. ''' if configPath is not None: if configPath.lower() == "reset": # Get os specific location of config file, and remove it. fileName = os.path.join( VFS.getWritableResourcePath(), Version.PROGRAM_UNIXSTYLE_NAME + ".ini") os.remove(fileName) # Recreate it config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) else: # Load specified config file config = Config.load(configPath, setAsDefault=True) else: # Use default configuration file config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) return config