http://www.mediawiki.org/wiki/Special:Code/pywikipedia/11329
Revision: 11329 Author: xqt Date: 2013-04-03 19:59:51 +0000 (Wed, 03 Apr 2013) Log Message: ----------- return dictionary as default for extract_templates_and_params()
Modified Paths: -------------- trunk/pywikipedia/pywikibot/textlib.py
Modified: trunk/pywikipedia/pywikibot/textlib.py =================================================================== --- trunk/pywikipedia/pywikibot/textlib.py 2013-04-03 19:53:22 UTC (rev 11328) +++ trunk/pywikipedia/pywikibot/textlib.py 2013-04-03 19:59:51 UTC (rev 11329) @@ -828,14 +828,14 @@ # Functions dealing with templates #----------------------------------
-def extract_templates_and_params(text, asDict=False): +def extract_templates_and_params(text, asList=False): """Return a list of templates found in text.
Return value is a list of tuples. There is one tuple for each use of a template in the page, with the template title as the first entry and either a list of parameters or a dict of parameters as the second entry - which depends on asDict method parameter. - If asDict is True the parameters is a dict, and they are indexed by strings; + which depends on asList method parameter. + If asList is False the parameters is a dict, and they are indexed by strings; as in MediaWiki, an unnamed parameter is given a parameter name with an integer value corresponding to its position among the unnamed parameters, and if this results multiple parameters with the same name, only the last @@ -843,8 +843,8 @@
@param text: The wikitext from which templates are extracted @type text: unicode or string - @param asDict: If True, return parameters as list, else as dict - @type asDict: bool + @param asList: If True, return parameters as list, else as dict + @type asList: bool
""" # remove commented-out stuff etc. @@ -961,7 +961,7 @@ markedParams = paramString.split('|') # Replace markers for param in markedParams: - if asDict and "=" in param: + if not asList and "=" in param: param_name, param_val = param.split("=", 1) else: param_name = unicode(numbered_param) @@ -982,10 +982,10 @@ params[param_name.strip()] = param_val.strip()
# Add it to the result - if asDict: + if asList: + result.append((name, params.values())) + else: result.append((name, params)) - else: - result.append((name, params.values())) return result
pywikipedia-svn@lists.wikimedia.org