Config objects are created now once, then shared between requests and threads. This can lead to two problems:
- code make unwanted changes to config
- multiple threads trying to change config at the same time, clobbering each other changes
Tests
Change the current config to test various settings, this might break the config for other threads. Currently the test are disabled when using threads.
we may work on a copy of the config instead of the shared instance.
Code that needs review
Alexander said he reviewed this list, and found only 3 problems, listed on the parent page.
Here is a list of all code that need review:
$ egrep -rn \.cfg\. MoinMoin MoinMoin/action/AttachFile.py:34: return isinstance(request.cfg.attachments, type({})) MoinMoin/action/AttachFile.py:45: return request.cfg.attachments['dir'] MoinMoin/action/AttachFile.py:56: attach_dir = os.path.join(request.cfg.attachments['dir'], pagename, "attachments") MoinMoin/action/AttachFile.py:83: request.cfg.attachments['url'], wikiutil.quoteWikinameFS(pagename), MoinMoin/action/AttachFile.py:288: pubpath = request.cfg.url_prefix + "/applets/TWikiDrawPlugin" MoinMoin/action/AttachFile.py:391: if action_name in request.cfg.excluded_actions: MoinMoin/action/DeletePage.py:24: if actname in request.cfg.excluded_actions \ MoinMoin/action/links.py:29: _('Full Link List for "%s"') % request.cfg.sitename) MoinMoin/action/RenamePage.py:33: the filtering by action class name and cfg.allowed_actions. MoinMoin/action/RenamePage.py:36: return (self.__class__.__name__ in self.request.cfg.allowed_actions and MoinMoin/action/rss_rc.py:23: cfg = request.cfg MoinMoin/action/rss_rc.py:55: logo = re.search(r'src="([^"]*)"', cfg.logo_string) MoinMoin/action/rss_rc.py:98: handler.simpleNode('title', cfg.sitename) MoinMoin/action/rss_rc.py:100: handler.simpleNode('description', 'RecentChanges at %s' % cfg.sitename) MoinMoin/action/rss_rc.py:105: if cfg.interwikiname: MoinMoin/action/rss_rc.py:106: handler.simpleNode(('wiki', 'interwiki'), cfg.interwikiname) MoinMoin/action/rss_rc.py:125: handler.simpleNode('title', cfg.sitename) MoinMoin/action/rss_rc.py:169: if cfg.show_hosts: MoinMoin/action/SpellCheck.py:33: localdict = os.path.join(request.cfg.moinmoin_dir, 'dict') MoinMoin/action/SpellCheck.py:81: cachename = os.path.join(request.cfg.data_dir, 'cache', 'spellchecker.dict') MoinMoin/action/SpellCheck.py:113: lsw_page = PageEditor(request, request.cfg.page_local_spelling_words) MoinMoin/action/SpellCheck.py:135: lsw_page = Page(request, request.cfg.page_local_spelling_words) MoinMoin/caching.py:22: self.arena_dir = os.path.join(request.cfg.cache_dir, arena) MoinMoin/formatter/base.py:248: processor = wikiutil.importPlugin(self.request.cfg, "processor", MoinMoin/formatter/base.py:252: parser = wikiutil.importPlugin(self.request.cfg, "parser", MoinMoin/formatter/text_html.py:40: self.cfg = request.cfg MoinMoin/formatter/text_html.py:64: # the content lang from the default defined in cfg. MoinMoin/formatter/text_html.py:592: self._show_section_numbers = self.cfg.show_section_numbers MoinMoin/formatter/text_python.py:181: Dependencies = wikiutil.importPlugin(self.request.cfg, "processor", MoinMoin/formatter/text_python.py:184: Dependencies = wikiutil.importPlugin(self.request.cfg, "parser", MoinMoin/i18n/__init__.py:210: if available.has_key(request.cfg.default_lang): MoinMoin/i18n/__init__.py:211: lang = request.cfg.default_lang MoinMoin/logfile/editlog.py:42: result = ('ip', (request.cfg.show_hosts and self.hostname) or '') MoinMoin/logfile/editlog.py:69: (request.cfg.show_hosts and ("%s=%s" % (self.addr,editor))) or ''), wikiutil.escape(editor[:idx])) MoinMoin/logfile/editlog.py:72: (request.cfg.show_hosts and self.hostname) or ''), wikiutil.escape(editor)) MoinMoin/lupy.py:204: cache_dir = request.cfg.cache_dir MoinMoin/lupy.py:234: searcher, timestamp = self.request.cfg.lupy_searchers.pop() MoinMoin/lupy.py:245: self.request.cfg.lupy_searchers.append((searcher, timestamp)) MoinMoin/macro/EditTemplates.py:16: filter = re.compile(self.request.cfg.page_template_regex, re.UNICODE).search MoinMoin/macro/RecentChanges.py:84: if request.cfg.changed_time_fmt: MoinMoin/macro/RecentChanges.py:90: d['time_html'] = time.strftime(request.cfg.changed_time_fmt, line.time_tuple) MoinMoin/macro/RecentChanges.py:94: if request.cfg.show_hosts: MoinMoin/macro/TableOfContents.py:67: self.include_macro = wikiutil.importPlugin(self.macro.request.cfg, MoinMoin/Page.py:40: self.cfg = request.cfg MoinMoin/Page.py:72: if not self.cfg.data_underlay_dir is None: MoinMoin/Page.py:73: underlaypath = os.path.join(self.cfg.data_underlay_dir, "pages", qpagename) MoinMoin/Page.py:78: normalpath = self.cfg.data_dir MoinMoin/Page.py:252: underlay, path = 1, self.cfg.data_underlay_dir MoinMoin/Page.py:256: underlay, path = 0, self.cfg.data_dir MoinMoin/Page.py:337: tmpname = os.path.join(self.cfg.data_dir, '#%s.%d#' % (self.page_name_fs, rnd)) MoinMoin/Page.py:461: if domain == 'underlay' and not self.request.cfg.data_underlay_dir: MoinMoin/Page.py:675: if self.cfg.data_underlay_dir is not None: MoinMoin/Page.py:852: if self.cfg.SecurityPolicy: MoinMoin/Page.py:853: UserPerms = self.cfg.SecurityPolicy MoinMoin/Page.py:934: pi_format = self.cfg.default_markup or "wiki" MoinMoin/Page.py:975: if self.cfg.refresh: MoinMoin/Page.py:977: mindelay, targetallowed = self.cfg.refresh MoinMoin/Page.py:1127: Parser = wikiutil.importPlugin(self.request.cfg, "parser", MoinMoin/Page.py:1210: self.getFormatterName() in self.cfg.caching_formats): MoinMoin/Page.py:1213: parser = wikiutil.importPlugin(self.request.cfg, "parser", MoinMoin/Page.py:1515: if not self.cfg.acl_enabled: MoinMoin/Page.py:1522: aclRevision, acl = request.cfg._acl_cache.get(key, (None, None)) MoinMoin/Page.py:1524: request.cfg._acl_cache = {} MoinMoin/Page.py:1528: request.cfg._acl_cache[key] = (currentRevision, acl) MoinMoin/Page.py:1556: del request.cfg._acl_cache[key] MoinMoin/Page.py:1560: request.cfg._acl_cache = {} MoinMoin/PageEditor.py:230: text_rows = self.cfg.edit_rows MoinMoin/PageEditor.py:353: lang = self.language or self.request.cfg.default_lang MoinMoin/PageEditor.py:373: filter = re.compile(self.cfg.page_category_regex, re.UNICODE).search MoinMoin/PageEditor.py:392: if self.cfg.page_license_enabled: MoinMoin/PageEditor.py:398: 'license_link': wikiutil.getSysPage(self.request, self.cfg.page_license_page).link_to(self.request), MoinMoin/PageEditor.py:410: if self.cfg.mail_smarthost: MoinMoin/PageEditor.py:503: for formatter_name in self.cfg.caching_formats: MoinMoin/PageEditor.py:528: 'sitename': self.cfg.sitename or self.request.getBaseURL(), MoinMoin/PageEditor.py:552: 'sitename': self.cfg.sitename or "Wiki", MoinMoin/PageEditor.py:556: mailBody, mail_from=self.cfg.mail_from) MoinMoin/PageEditor.py:682: if self.cfg.acl_enabled: MoinMoin/PageEditor.py:892: elif self.cfg.acl_enabled: MoinMoin/PageEditor.py:922: if self.request.cfg.mail_smarthost: MoinMoin/PageEditor.py:925: if self.request.cfg.lupy_search: MoinMoin/PageEditor.py:954: self.cfg = self.request.cfg MoinMoin/PageEditor.py:964: if self.cfg.edit_locking: MoinMoin/PageEditor.py:965: lockinfo = self.cfg.edit_locking.split() MoinMoin/parser/docbook.py:56: docbook_html_directory = request.cfg.docbook_html_dir MoinMoin/parser/wiki.py:103: self.cfg = request.cfg MoinMoin/parser/wiki.py:124: self.formatting_rules = self.formatting_rules % {'macronames': u'|'.join(wikimacro.getNames(self.cfg))} MoinMoin/parser/wiki.py:279: Parser = wikiutil.getParserForExtension(self.cfg, ext) MoinMoin/parser/wiki.py:821: self.request.cfg, "processor", processor_name, "process") MoinMoin/parser/wiki.py:825: self.request.cfg, "parser", processor_name, "Parser") MoinMoin/parser/wiki.py:958: if self.cfg.allow_extended_names: MoinMoin/parser/wiki.py:960: if self.cfg.bang_meta: MoinMoin/parser/wiki.py:965: if self.cfg.backtick_meta: MoinMoin/parser/wiki.py:967: if self.cfg.allow_numeric_entities: MoinMoin/parser/wiki.py:1006: self.request.cfg, "processor", processor_name, "process") MoinMoin/parser/wiki.py:1011: self.request.cfg, "parser", processor_name, "Parser") MoinMoin/parser/xslt.py:44: if not self.request.cfg.allow_xslt: MoinMoin/request.py:87: self._load_multi_cfg() MoinMoin/request.py:117: if self.cfg.theme_force: MoinMoin/request.py:118: theme_name = self.cfg.theme_default MoinMoin/request.py:137: self.content_lang = self.cfg.default_lang MoinMoin/request.py:159: def _load_multi_cfg(self): MoinMoin/request.py:161: if not hasattr(self, 'cfg'): MoinMoin/request.py:163: self.cfg = multiconfig.getConfig(self.url) MoinMoin/request.py:282: self._load_multi_cfg() MoinMoin/request.py:284: if self.cfg.auth_http_enabled: MoinMoin/request.py:320: self.current_lang = self.cfg.default_lang MoinMoin/request.py:346: Theme = wikiutil.importPlugin(self.cfg, 'theme', theme_name, 'Theme') MoinMoin/request.py:349: Theme = wikiutil.importPlugin(self.cfg, 'theme', MoinMoin/request.py:350: self.cfg.theme_default, 'Theme') MoinMoin/request.py:406: self.cfg._known_actions # check MoinMoin/request.py:423: self.cfg._known_actions = actions MoinMoin/request.py:426: return self.cfg._known_actions.copy() MoinMoin/request.py:452: for key in self.cfg.excluded_actions: MoinMoin/request.py:632: if not forbidden and self.cfg.hosts_deny: MoinMoin/request.py:634: for host in self.cfg.hosts_deny: MoinMoin/request.py:854: if self.cfg.allow_extended_names: MoinMoin/request.py:882: if (self.cfg.show_timings and MoinMoin/request.py:1056: cfg.cookie_lifetime and the user 'remember_me' setting set the MoinMoin/request.py:1068: lifetime = int(self.cfg.cookie_lifetime) * 3600 MoinMoin/request.py:1167: sys.stderr = open(os.path.join(self.cfg.data_dir, 'error.log'), 'at') MoinMoin/request.py:1287: self._load_multi_cfg() MoinMoin/request.py:1289: if self.cfg.auth_http_enabled and self.cfg.auth_http_insecure: MoinMoin/request.py:1357: sys.stderr = open(os.path.join(self.cfg.data_dir, 'error.log'), 'at') MoinMoin/request.py:1437: self.cfg.caching_formats = [] # don't spoil the cache MoinMoin/scripts/moin_dump.py:111: request.cfg.url_prefix = url_prefix MoinMoin/scripts/moin_dump.py:167: 'theme': request.cfg.theme_default, MoinMoin/search.py:1131: if self.request.cfg.lupy_search: MoinMoin/security.py:51: if attr in request.cfg.acl_rights_valid: MoinMoin/server/standalone.py:301: TODO: should use request.cfg.url_prefix - and not a constant but MoinMoin/server/standalone.py~:284: TODO: should use request.cfg.url_prefix - and not a constant but MoinMoin/stats/hitcounts.py:28: if not request.cfg.chart_options: MoinMoin/stats/hitcounts.py:46: data.update(request.cfg.chart_options) MoinMoin/stats/hitcounts.py:226: if request.cfg.sitename: chart_title = "%s: " % request.cfg.sitename MoinMoin/stats/hitcounts.py:248: (request.cfg.chart_options['width'], request.cfg.chart_options['height']), MoinMoin/stats/pagesize.py:22: if not request.cfg.chart_options: MoinMoin/stats/pagesize.py:41: data.update(request.cfg.chart_options) MoinMoin/stats/pagesize.py:102: if request.cfg.sitename: title = "%s: " % request.cfg.sitename MoinMoin/stats/pagesize.py:115: (request.cfg.chart_options['width'], request.cfg.chart_options['height']), MoinMoin/stats/useragents.py:26: if not request.cfg.chart_options: MoinMoin/stats/useragents.py:42: data.update(request.cfg.chart_options) MoinMoin/stats/useragents.py:166: if request.cfg.sitename: title = "%s: " % request.cfg.sitename MoinMoin/stats/useragents.py:180: (request.cfg.chart_options['width'], request.cfg.chart_options['height']), MoinMoin/theme/__init__.py:105: self.cfg = request.cfg MoinMoin/theme/__init__.py:115: return "%s/%s/img/%s" % (self.cfg.url_prefix, self.name, img) MoinMoin/theme/__init__.py:141: if self.cfg.logo_string: MoinMoin/theme/__init__.py:144: logo = wikiutil.link_tag(self.request, pagename, self.cfg.logo_string) MoinMoin/theme/__init__.py:300: if request.cfg.navi_bar: MoinMoin/theme/__init__.py:301: for text in request.cfg.navi_bar: MoinMoin/theme/__init__.py:407: page_params, title, icon = self.cfg.page_icons_table[which] MoinMoin/theme/__init__.py:486: prefix = self.cfg.url_prefix MoinMoin/theme/__init__.py:603: if self.cfg.show_version and not keywords.get('print_mode', 0): MoinMoin/theme/__init__.py:735: u' title="%s Recent Changes"' % self.cfg.sitename, MoinMoin/theme/__init__.py:759: if isinstance(self.cfg.page_credits, (list, tuple)): MoinMoin/theme/__init__.py:760: items = ['<li>%s</li>' % i for i in self.cfg.page_credits] MoinMoin/theme/__init__.py:764: html = self.cfg.page_credits MoinMoin/theme/__init__.py:798: if self.cfg.mail_smarthost and user.valid: MoinMoin/theme/classic.py:39: self.emit_custom_html(self.cfg.page_footer1), MoinMoin/theme/classic.py:47: self.emit_custom_html(self.cfg.page_footer2),] MoinMoin/theme/classic.py:69: if self.cfg.page_iconbar and self.request.user.show_toolbar and d['page_name']: MoinMoin/theme/classic.py:71: icons = self.cfg.page_iconbar[:] MoinMoin/theme/classic.py:96: 'config_header1_html': self.emit_custom_html(self.cfg.page_header1), MoinMoin/theme/classic.py:97: 'config_header2_html': self.emit_custom_html(self.cfg.page_header2), MoinMoin/theme/modern.py:24: self.emit_custom_html(self.cfg.page_header1), MoinMoin/theme/modern.py:40: self.emit_custom_html(self.cfg.page_header2), MoinMoin/theme/modern.py:63: self.emit_custom_html(self.cfg.page_footer1), MoinMoin/theme/modern.py:73: self.emit_custom_html(self.cfg.page_footer2), MoinMoin/theme/rightsidebar.py:71: self.emit_custom_html(self.cfg.page_header1), MoinMoin/theme/rightsidebar.py:80: self.emit_custom_html(self.cfg.page_header2), MoinMoin/theme/rightsidebar.py:112: self.emit_custom_html(self.cfg.page_footer1), MoinMoin/theme/rightsidebar.py:121: self.emit_custom_html(self.cfg.page_footer2), MoinMoin/user.py:38: files = dircache.listdir(request.cfg.user_dir) MoinMoin/user.py:52: cfg = request.cfg MoinMoin/user.py:54: _name2id = cfg._name2id MoinMoin/user.py:63: cfg._name2id = _name2id MoinMoin/user.py:69: cfg._name2id = _name2id MoinMoin/user.py:91: return username or (request.cfg.show_hosts and request.remote_addr) or _("<unknown>") MoinMoin/user.py:220: self._cfg = request.cfg MoinMoin/user.py:243: self.edit_rows = self._cfg.edit_rows MoinMoin/user.py:245: self.tz_offset = int(float(self._cfg.tz_offset) * 3600) MoinMoin/user.py:253: self.theme_name = self._cfg.theme_default MoinMoin/user.py:267: setattr(self, key, self._cfg.user_checkbox_defaults.get(key, 0)) MoinMoin/user.py:296: if self._cfg.SecurityPolicy: MoinMoin/user.py:297: self.may = self._cfg.SecurityPolicy(self) MoinMoin/user.py:313: return os.path.join(self._cfg.user_dir, self.id or "...NONE...") MoinMoin/user.py:384: if user_data.has_key(key) and key in self._cfg.user_checkbox_disable: MoinMoin/user.py:505: user_dir = self._cfg.user_dir MoinMoin/user.py:515: time.strftime(self._cfg.datetime_fmt, time.localtime(time.time())), MoinMoin/user.py:553: @return: formatted date, see cfg.date_fmt MoinMoin/user.py:555: date_fmt = self.date_fmt or self._cfg.date_fmt MoinMoin/user.py:565: @return: formatted date and time, see cfg.datetime_fmt MoinMoin/user.py:567: datetime_fmt = self.datetime_fmt or self._cfg.datetime_fmt MoinMoin/user.py:712: self._trail = self._trail[-(self._cfg.trail_size-1):] MoinMoin/user.py:759: self._trail = self._trail[-self._cfg.trail_size:] MoinMoin/user.py:769: host = (self.isCurrentUser and self._cfg.show_hosts and MoinMoin/user.py:782: if (self._cfg.allow_extended_names and MoinMoin/userform.py:35: self.cfg = request.cfg MoinMoin/userform.py:75: if not self.cfg.mail_smarthost: MoinMoin/userform.py:109: formatted=False) % {'sitename': self.cfg.sitename or "Wiki"} MoinMoin/userform.py:111: text, mail_from=self.cfg.mail_from) MoinMoin/userform.py:207: if not theuser.email and self.cfg.acl_enabled: MoinMoin/userform.py:237: theme_name = form.get('theme_name', [self.cfg.theme_default])[0] MoinMoin/userform.py:259: if key not in self.cfg.user_checkbox_disable: MoinMoin/userform.py:304: self.cfg = request.cfg MoinMoin/userform.py:321: time.strftime(self.cfg.datetime_fmt, util.datetime.tmtuple(t)), MoinMoin/userform.py:363: cur_theme = self.request.user.valid and self.request.user.theme_name or self.cfg.theme_default MoinMoin/userform.py:365: for theme in wikiutil.getPlugins('theme', self.request.cfg): MoinMoin/userform.py:416: if self.cfg.mail_smarthost: MoinMoin/userform.py:450: if not self.cfg.theme_force: MoinMoin/userform.py:470: time.strftime(self.cfg.datetime_fmt, util.datetime.tmtuple()), MoinMoin/userform.py:487: disabled=key in self.cfg.user_checkbox_disable and True or None), MoinMoin/userform.py:498: if self.cfg.mail_smarthost: MoinMoin/util/antispam.py:165: invalidate_cache = not getattr(request.cfg, "_mmblcache", None) MoinMoin/util/antispam.py:181: request.cfg._mmblcache = mmblcache MoinMoin/util/antispam.py:195: for blacklist_re in request.cfg._mmblcache: MoinMoin/util/mail.py:34: cfg = request.cfg MoinMoin/util/mail.py:35: mail_from = kw.get('mail_from', '') or cfg.mail_from MoinMoin/util/mail.py:64: server = smtplib.SMTP(cfg.mail_smarthost) MoinMoin/util/mail.py:67: if cfg.mail_login: MoinMoin/util/mail.py:68: user, pwd = cfg.mail_login.split() MoinMoin/util/mail.py:88: 'server': cfg.mail_smarthost, MoinMoin/util/web.py:15: if not request.cfg.ua_spiders: MoinMoin/util/web.py:22: return re.search(request.cfg.ua_spiders, ua, re.I) is not None MoinMoin/wikiacl.py:28: "SomeGroup" is a page name matching cfg.page_group_regex with MoinMoin/wikiacl.py:36: Only words in cfg.acl_validrights are accepted, others are MoinMoin/wikiacl.py:90: cfg.acl_enabled MoinMoin/wikiacl.py:94: cfg.acl_rights_default MoinMoin/wikiacl.py:98: cfg.acl_rights_before MoinMoin/wikiacl.py:103: cfg.acl_rights_after MoinMoin/wikiacl.py:108: cfg.acl_rights_valid MoinMoin/wikiacl.py:119: self.setLines(request.cfg, lines) MoinMoin/wikiacl.py:121: def setLines(self, cfg, lines=[]): MoinMoin/wikiacl.py:123: self.addBefore(cfg) MoinMoin/wikiacl.py:125: self.addDefault(cfg) MoinMoin/wikiacl.py:128: self.addLine(cfg, line) MoinMoin/wikiacl.py:129: self.addAfter(cfg) MoinMoin/wikiacl.py:136: def addBefore(self, cfg): MoinMoin/wikiacl.py:137: self.addLine(cfg, cfg.acl_rights_before, remember=0) MoinMoin/wikiacl.py:138: def addDefault(self, cfg): MoinMoin/wikiacl.py:139: self.addLine(cfg, cfg.acl_rights_default, remember=0) MoinMoin/wikiacl.py:140: def addAfter(self, cfg): MoinMoin/wikiacl.py:141: self.addLine(cfg, cfg.acl_rights_after, remember=0) MoinMoin/wikiacl.py:143: def addLine(self, cfg, aclstring, remember=1): MoinMoin/wikiacl.py:149: @param cfg: current config MoinMoin/wikiacl.py:153: group_re = re.compile(cfg.page_group_regex) MoinMoin/wikiacl.py:160: acliter = ACLStringIterator(cfg.acl_rights_valid, aclstring) MoinMoin/wikiacl.py:163: self.addDefault(cfg) MoinMoin/wikiacl.py:180: for right in cfg.acl_rights_valid: MoinMoin/wikiacl.py:188: if not request.cfg.acl_enabled: MoinMoin/wikiacl.py:252: iter = ACLStringIterator(cfg.acl_rights_valid, 'user name:right') MoinMoin/wikiacl.py:330: if not request.cfg.acl_enabled: MoinMoin/wikiaction.py:262: Column('editor', label=_('Editor'), hidden=not request.cfg.show_hosts), MoinMoin/wikiaction.py:398: lang = page.language or request.cfg.default_lang MoinMoin/wikiaction.py:646: cfg = request.cfg MoinMoin/wikiaction.py:652: elif not cfg.mail_smarthost: MoinMoin/wikiaction.py:771: Formatter = wikiutil.importPlugin(request.cfg, "formatter", MoinMoin/wikiaction.py:788: if request.user.may.read(pagename) and request.cfg.chart_options: MoinMoin/wikiaction.py:855: dir = os.path.join(request.cfg.plugin_dir, 'action') MoinMoin/wikiaction.py:864: if action in request.cfg.excluded_actions: MoinMoin/wikiaction.py:867: handler = wikiutil.importPlugin(request.cfg, "action", action, identifier) MoinMoin/wikidicts.py:194: cfg.page_dict_regex MoinMoin/wikidicts.py:256: cfg.page_group_regex MoinMoin/wikidicts.py:261: self.cfg = request.cfg MoinMoin/wikidicts.py:316: self.__dict__.update(self.cfg.DICTS_DATA) MoinMoin/wikidicts.py:335: isdict = re.compile(self.cfg.page_dict_regex, re.UNICODE).search MoinMoin/wikidicts.py:336: isgroup = re.compile(self.cfg.page_group_regex, re.UNICODE).search MoinMoin/wikidicts.py:411: self.cfg.DICTS_DATA = data MoinMoin/wikimacro.py:33:def getNames(cfg): MoinMoin/wikimacro.py:34: if hasattr(cfg, 'macro_names'): MoinMoin/wikimacro.py:35: return cfg.macro_names MoinMoin/wikimacro.py:38: lnames.extend(wikiutil.getPlugins('macro', cfg)) MoinMoin/wikimacro.py:96: self.cfg = self.request.cfg MoinMoin/wikimacro.py:99: macro = wikiutil.importPlugin(self.request.cfg, 'macro', macro_name) MoinMoin/wikimacro.py:132: result = wikiutil.importPlugin(self.request.cfg, 'macro', macro_name, MoinMoin/wikimacro.py:316: list = self.cfg._interwiki_list.items() # this is where we cached it MoinMoin/wikimacro.py:380: ', '.join(wikiutil.wikiPlugins('macro', self.cfg)) or nonestr) MoinMoin/wikimacro.py:383: if not a in self.request.cfg.excluded_actions: MoinMoin/wikimacro.py:394: row(_('Lupy search'), state[self.request.cfg.lupy_search]) MoinMoin/wikirpc.py:45: self.cfg = request.cfg MoinMoin/wikirpc.py:229: if self.request.cfg.sitename == 'MoinMaster' and pagename == 'BadContent': MoinMoin/wikirpc.py:355: if self.request.cfg.xmlrpc_putpage_enabled: MoinMoin/wikirpc.py:367: if self.request.cfg.xmlrpc_putpage_trusted_only and not self.request.user.trusted: MoinMoin/wikirpc.py:427: fn = wikiutil.importPlugin(self.request.cfg, 'xmlrpc', method, MoinMoin/wikitest.py:46: dirs = [('data', request.cfg.data_dir), MoinMoin/wikitest.py:47: ('user', request.cfg.user_dir), MoinMoin/wikitest.py:84: # change request.cfg, which is now shared between threads. MoinMoin/wikitest.py~:46: dirs = [('data', request.cfg.data_dir), MoinMoin/wikitest.py~:47: ('user', request.cfg.user_dir), MoinMoin/wikiutil.py:320: _interwiki_list = request.cfg._interwiki_list MoinMoin/wikiutil.py:328: intermap_files = request.cfg.shared_intermap MoinMoin/wikiutil.py:331: intermap_files.append(os.path.join(request.cfg.data_dir, "intermap.txt")) MoinMoin/wikiutil.py:353: if request.cfg.interwikiname: MoinMoin/wikiutil.py:354: _interwiki_list[request.cfg.interwikiname] = request.getScriptname() + '/' MoinMoin/wikiutil.py:357: request.cfg._interwiki_list = _interwiki_list MoinMoin/wikiutil.py:393: filter = re.compile(request.cfg.page_template_regex, re.UNICODE) MoinMoin/wikiutil.py:404: filter = re.compile(request.cfg.page_form_regex, re.UNICODE) MoinMoin/wikiutil.py:414: filter = re.compile(request.cfg.page_group_regex, re.UNICODE) MoinMoin/wikiutil.py:432: func = re.compile(request.cfg.page_category_regex, re.UNICODE).search MoinMoin/wikiutil.py:484: return getSysPage(request, request.cfg.page_front_page) MoinMoin/wikiutil.py:541:def importPlugin(cfg, kind, name, function="execute"): MoinMoin/wikiutil.py:554: @param cfg: wiki config instance MoinMoin/wikiutil.py:562: plugin = importWikiPlugin(cfg, kind, name, function) MoinMoin/wikiutil.py:570:def importWikiPlugin(cfg, kind, name, function): MoinMoin/wikiutil.py:577: @param cfg: wiki config instance MoinMoin/wikiutil.py:586: modulename = '%s.plugin.%s.%s' % (cfg.siteid, kind, name) MoinMoin/wikiutil.py:590: plugin = cfg._wiki_plugins[key] MoinMoin/wikiutil.py:595: cfg._wiki_plugins[key] = plugin MoinMoin/wikiutil.py:597: cfg._wiki_plugins = {key: plugin} MoinMoin/wikiutil.py:616:def wikiPlugins(kind, cfg): MoinMoin/wikiutil.py:624: modulename = '%s.plugin.%s' % (cfg.siteid, kind) MoinMoin/wikiutil.py:629:def getPlugins(kind, cfg): MoinMoin/wikiutil.py:640: for plugin in wikiPlugins(kind, cfg): MoinMoin/wikiutil.py:651:def getParserForExtension(cfg, extension): MoinMoin/wikiutil.py:659: @param cfg: the Config instance for the wiki in question MoinMoin/wikiutil.py:664: if not hasattr(cfg, '_EXT_TO_PARSER'): MoinMoin/wikiutil.py:667: for pname in getPlugins('parser', cfg): MoinMoin/wikiutil.py:668: Parser = importPlugin(cfg, 'parser', pname, 'Parser') MoinMoin/wikiutil.py:677: cfg._EXT_TO_PARSER = etp MoinMoin/wikiutil.py:678: cfg._EXT_TO_PARSER_DEFAULT = etd MoinMoin/wikiutil.py:680: return cfg._EXT_TO_PARSER.get(extension, cfg._EXT_TO_PARSER_DEFAULT) MoinMoin/wikiutil.py:776: Map URLs according to 'cfg.url_mappings'. MoinMoin/wikiutil.py:783: if request.cfg.url_mappings: MoinMoin/wikiutil.py:785: for prefix in request.cfg.url_mappings.keys(): MoinMoin/wikiutil.py:788: return request.cfg.url_mappings[prefix] + url[len(prefix):] MoinMoin/wikiutil.py:1014: user_head = [request.cfg.html_head] MoinMoin/wikiutil.py:1030: user_head.append(request.cfg.html_head_queries) MoinMoin/wikiutil.py:1032: user_head.append(request.cfg.html_head_posts) MoinMoin/wikiutil.py:1036: elif pagename in [page_front_page, request.cfg.page_front_page, MoinMoin/wikiutil.py:1040: user_head.append(request.cfg.html_head_index) MoinMoin/wikiutil.py:1044: user_head.append(request.cfg.html_head_normal) MoinMoin/wikiutil.py:1063: 'sitename': escape(request.cfg.html_pagetitle or request.cfg.sitename), MoinMoin/wikiutil.py:1160: 'logo_string': request.cfg.logo_string, MoinMoin/wikiutil.py:1161: 'site_name': request.cfg.sitename, MoinMoin/wikiutil.py:1241: cfgvars = vars(config) MoinMoin/wikiutil.py:1242: for var in cfgvars.values(): MoinMoin/xmlrpc/putClientInfo.py:16: log = open(os.path.join(xmlrpcobj.request.cfg.data_dir, 'xmlrpc-log'), 'a')