コード例 #1
0
ファイル: evopedia.py プロジェクト: adamschmalhofer/evopedia
        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')