elif parts[0] == 'set_data': data_dir = dict['path'][0] print "Changing datafile storage to %s." % data_dir global storage_class from datafile_storage import DatafileStorage, \ DatafileInitializationError storage_class = DatafileStorage storage = DatafileStorage() try: storage.storage_init_read(data_dir) except Exception, e: self.output_error_msg_page('Error opening datafile storage ' 'at %s:<br />%s' % (data_dir, str(e))) return if storage.is_readable(): global config global configfile config.set('evopedia', 'data_directory', data_dir) with open(os.path.expanduser(configfile), 'wb') as f: config.write(f) self.send_response(302) self.send_header('Location', '/') self.end_headers() return elif parts[0] == 'math' or ( parts[0] == 'wiki' and parts[1] == 'math'): # second case is workaround for bug in dumps if not storage.is_readable(): self.send_response(302) self.send_header('Location', '/choose_data')