def onCvresults(self, *args, **kwargs): del kwargs["how"] self._writePreamble("CV Test Results") text = "Display the results of a cross-validation test with the " \ "current settings against the defaults." nsets = options["TestToolsUI", "n"] # With defaults first. self.write("<p>Testing with defaults...</p>") saved = {} for opt in options.options(True): # Ignore those that have do_not_restore as True # (These are predominately storage options, and at least # the cache directory ones may be needed later on). sect, opt = opt[1:].split(']', 1) saved[(sect, opt)] = options[(sect, opt)] if not options.no_restore(sect, opt): options.set(sect, opt, options.default(sect, opt)) options["TestToolsUI", "source"] = kwargs["TestToolsUI_source"] # XXX Cache this somewhere? If the testing data isn't changing, # XXX and the user is running multiple tests, then it doesn't # XXX make much sense to rerun the 'default's test over and over # XXX again. cv_out, errors = self.timCV(nsets) ## print errors.read() defaults = self.rates(cv_out) # Now with specified settings. self.write("<p>Testing with selected settings...</p>") for opt in options.options(True): sect, opt = opt[1:].split(']', 1) try: value = kwargs["%s_%s" % (sect, opt)] except KeyError: # Leave as the default. pass else: options.set(sect, opt, value) cv_out, errors = self.timCV(nsets) ## print errors.read() current = self.rates(cv_out) # Restore the settings. for opt in options.options(True): sect, opt = opt[1:].split(']', 1) options.set(sect, opt, saved[(sect, opt)]) # Do the comparison. comp, errors = self.compare(defaults, current) ## print errors.read() # Output the results # XXX This is just what you'd get from running cmp.py # XXX at the moment - it could be prettied up a bit. comp = comp.read() box = self._buildBox('Cross-validation test', None, cgi.escape(comp).replace("\n", "<br />")) self.write(box) self._writePostamble()
def restoreConfigDefaults(self, parm_map): d = OptionsClass() d.load_defaults(defaults) for section, option in parm_map: if option is not None: if not options.no_restore(section, option): options.set(section, option, d.get(section, option)) options.update_file(optionsPathname)
def onCvresults(self, *args, **kwargs): del kwargs["how"] self._writePreamble("CV Test Results") text = "Display the results of a cross-validation test with the " \ "current settings against the defaults." nsets = options["TestToolsUI", "n"] self.write("<p>Testing with defaults...</p>") saved = {} for opt in options.options(True): sect, opt = opt[1:].split(']', 1) saved[(sect, opt)] = options[(sect, opt)] if not options.no_restore(sect, opt): options.set(sect, opt, options.default(sect, opt)) options["TestToolsUI", "source"] = kwargs["TestToolsUI_source"] cv_out, errors = self.timCV(nsets) defaults = self.rates(cv_out) self.write("<p>Testing with selected settings...</p>") for opt in options.options(True): sect, opt = opt[1:].split(']', 1) try: value = kwargs["%s_%s" % (sect, opt)] except KeyError: pass else: options.set(sect, opt, value) cv_out, errors = self.timCV(nsets) current = self.rates(cv_out) for opt in options.options(True): sect, opt = opt[1:].split(']', 1) options.set(sect, opt, saved[(sect, opt)]) comp, errors = self.compare(defaults, current) comp = comp.read() box = self._buildBox('Cross-validation test', None, cgi.escape(comp).replace("\n", "<br />")) self.write(box) self._writePostamble()