http://www.mediawiki.org/wiki/Special:Code/pywikipedia/9632
Revision: 9632 Author: xqt Date: 2011-10-16 11:41:54 +0000 (Sun, 16 Oct 2011) Log Message: ----------- Bugfix for unexpected results of family.namespaces dict (bug #3424343). family.namespace() must work on a clone, not on the namespaces itself and always return a copy. Otherwise it could duplicate namespaces dictionarys content on every call.
Modified Paths: -------------- trunk/pywikipedia/family.py
Modified: trunk/pywikipedia/family.py =================================================================== --- trunk/pywikipedia/family.py 2011-10-15 17:34:36 UTC (rev 9631) +++ trunk/pywikipedia/family.py 2011-10-16 11:41:54 UTC (rev 9632) @@ -3733,7 +3733,9 @@ raise KeyError('ERROR: Unknown namespace %d for %s:%s' % (ns_number, code, self.name)) elif self.isNsI18N(ns_number, code): v = self.namespaces[ns_number][code] - if type(v) is not list: + if type(v) == list: + v = v[:] + else: v = [v,] if all and self.isNsI18N(ns_number, fallback): v2 = self.namespaces[ns_number][fallback] @@ -3743,7 +3745,9 @@ v.append(v2) elif fallback and self.isNsI18N(ns_number, fallback): v = self.namespaces[ns_number][fallback] - if type(v) is not list: + if type(v) == list: + v = v[:] + else: v = [v,] else: raise KeyError('ERROR: title for namespace %d in language %s unknown' % (ns_number, code))