http://www.mediawiki.org/wiki/Special:Code/pywikipedia/10186
Revision: 10186 Author: xqt Date: 2012-05-05 17:14:00 +0000 (Sat, 05 May 2012) Log Message: ----------- use xrange iterator instead of range list in for statements
Modified Paths: -------------- trunk/pywikipedia/date.py trunk/pywikipedia/interwiki.py trunk/pywikipedia/pagegenerators.py trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/date.py =================================================================== --- trunk/pywikipedia/date.py 2012-05-05 17:08:48 UTC (rev 10185) +++ trunk/pywikipedia/date.py 2012-05-05 17:14:00 UTC (rev 10186) @@ -204,28 +204,28 @@
# Helper for KN: digits representation _knDigits = u'೦೧೨೩೪೫೬೭೮೯' -_knDigitsToLocal = dict([(ord(unicode(i)), _knDigits[i]) for i in range(10)]) -_knLocalToDigits = dict([(ord(_knDigits[i]), unicode(i)) for i in range(10)]) +_knDigitsToLocal = dict([(ord(unicode(i)), _knDigits[i]) for i in xrange(10)]) +_knLocalToDigits = dict([(ord(_knDigits[i]), unicode(i)) for i in xrange(10)])
# Helper for Urdu/Persian languages _faDigits = u'۰۱۲۳۴۵۶۷۸۹' -_faDigitsToLocal = dict([(ord(unicode(i)), _faDigits[i]) for i in range(10)]) -_faLocalToDigits = dict([(ord(_faDigits[i]), unicode(i)) for i in range(10)]) +_faDigitsToLocal = dict([(ord(unicode(i)), _faDigits[i]) for i in xrange(10)]) +_faLocalToDigits = dict([(ord(_faDigits[i]), unicode(i)) for i in xrange(10)])
# Helper for HI:, MR: _hiDigits = u'०१२३४५६७८९' -_hiDigitsToLocal = dict([(ord(unicode(i)), _hiDigits[i]) for i in range(10)]) -_hiLocalToDigits = dict([(ord(_hiDigits[i]), unicode(i)) for i in range(10)]) +_hiDigitsToLocal = dict([(ord(unicode(i)), _hiDigits[i]) for i in xrange(10)]) +_hiLocalToDigits = dict([(ord(_hiDigits[i]), unicode(i)) for i in xrange(10)])
# Helper for BN: _bnDigits = u'০১২৩৪৫৬৭৮৯' -_bnDigitsToLocal = dict([(ord(unicode(i)), _bnDigits[i]) for i in range(10)]) -_bnLocalToDigits = dict([(ord(_bnDigits[i]), unicode(i)) for i in range(10)]) +_bnDigitsToLocal = dict([(ord(unicode(i)), _bnDigits[i]) for i in xrange(10)]) +_bnLocalToDigits = dict([(ord(_bnDigits[i]), unicode(i)) for i in xrange(10)])
# Helper for GU: _guDigits = u'૦૧૨૩૪૫૬૭૮૯' -_guDigitsToLocal = dict([(ord(unicode(i)), _guDigits[i]) for i in range(10)]) -_guLocalToDigits = dict([(ord(_guDigits[i]), unicode(i)) for i in range(10)]) +_guDigitsToLocal = dict([(ord(unicode(i)), _guDigits[i]) for i in xrange(10)]) +_guLocalToDigits = dict([(ord(_guDigits[i]), unicode(i)) for i in xrange(10)])
def intToLocalDigitsStr( value, digitsToLocalDict ): # Encode an integer value into a textual form. @@ -368,7 +368,7 @@ m = compPattern.match(value) if m: # decode each found value using provided decoder - values = [ decoders[i][2](m.group(i+1)) for i in range(len(decoders))] + values = [ decoders[i][2](m.group(i+1)) for i in xrange(len(decoders))] decValue = decf( values )
if decValue in _stringTypes: @@ -391,7 +391,7 @@ if len(params) != len(decoders): raise AssertionError("parameter count (%d) does not match decoder count (%d)" % (len(params), len(decoders))) # convert integer parameters into their textual representation - params = [ MakeParameter(decoders[i], params[i]) for i in range(len(params)) ] + params = [ MakeParameter(decoders[i], params[i]) for i in xrange(len(params)) ] return strPattern % tuple(params) else: if 1 != len(decoders): @@ -1503,7 +1503,7 @@ if len(patterns) != 12: raise AssertionError(u'pattern %s does not have 12 elements' % lang )
- for i in range(12): + for i in xrange(12): if patterns[i] is not None: if isMnthOfYear: formats[yrMnthFmts[i]][lang] = eval(u'lambda v: dh_mnthOfYear( v, u"%s" )' % patterns[i]) @@ -1511,7 +1511,7 @@ formats[dayMnthFmts[i]][lang] = eval(u'lambda v: dh_dayOfMnth( v, u"%s" )' % patterns[i])
def makeMonthList(pattern): - return [pattern % m for m in range(1,13)] + return [pattern % m for m in xrange(1,13)]
def makeMonthNamedList(lang, pattern, makeUpperCase=None): """Creates a list of 12 elements based on the name of the month. @@ -1526,7 +1526,7 @@ elif makeUpperCase == False: f = lambda s: s[0].lower() + s[1:]
- return [ pattern % f(monthName(lang, m)) for m in range(1,13) ] + return [ pattern % f(monthName(lang, m)) for m in xrange(1,13) ]
def addFmt2( lang, isMnthOfYear, pattern, makeUpperCase = None ): addFmt( lang, isMnthOfYear, makeMonthNamedList( lang, pattern, makeUpperCase )) @@ -1646,7 +1646,7 @@
# Brazil uses "1añ" for the 1st of every month, and number without suffix for all other days brMonthNames = makeMonthNamedList( 'br', u"%s", True ) -for i in range(0,12): +for i in xrange(0,12): formats[dayMnthFmts[i]]['br'] = eval( (u'lambda m: multi( m, [' + u'(lambda v: dh_dayOfMnth( v, u"%%dañ %s" ), lambda p: p == 1),' + @@ -1669,7 +1669,7 @@ addFmt ('fr', True, [ u"Janvier %d", u"Février %d", u"Mars %d", u"Avril %d", u"Mai %d", u"Juin %d", u"Juillet %d", u"Août %d", u"Septembre %d", u"Octobre %d", u"Novembre %d", u"Décembre %d" ]) addFmt2('he', True, u"%s %%d", True ) addFmt2('it', True, u"Attualità/Anno %%d - %s", True ) -addFmt ('ja', True, [ u"「最近の出来事」%%d年%d月" % mm for mm in range(1,13)]) +addFmt ('ja', True, [ u"「最近の出来事」%%d年%d月" % mm for mm in xrange(1,13)]) addFmt2('ka', True, u"%s, %%d" ) addFmt ('ko', True, [ u"%d년 1월", u"%d년 2월", u"%d년 3월", u"%d년 4월", u"%d년 5월", u"%d년 6월", u"%d년 7월", u"%d년 8월", u"%d년 9월", u"%d년 10월", u"%d년 11월", u"%d년 12월" ]) addFmt ('li', True, [ u"januari %d", u"februari %d", u"miert %d", u"april %d", u"mei %d", u"juni %d", u"juli %d", u"augustus %d", u"september %d", u"oktober %d", u"november %d", u"december %d" ]) @@ -1725,7 +1725,7 @@ _formatLimit_DayOfMonth31 = (lambda v: 1 <= v and v < 32, 1, 32) _formatLimit_DayOfMonth30 = (lambda v: 1 <= v and v < 31, 1, 31) _formatLimit_DayOfMonth29 = (lambda v: 1 <= v and v < 30, 1, 30) -for monthId in range(12): +for monthId in xrange(12): if (monthId + 1) in [1, 3, 5, 7, 8, 10, 12]: formatLimits[dayMnthFmts[monthId]] = _formatLimit_DayOfMonth31 # 31 days a month elif (monthId+1) == 2: # February @@ -1804,7 +1804,7 @@ for code, convFunc in formats[formatName].iteritems(): # import time # startClock = time.clock() - for value in range(start, stop, step): + for value in xrange(start, stop, step): try: if not predicate(value): raise AssertionError(" Not a valid value for this format.")
Modified: trunk/pywikipedia/interwiki.py =================================================================== --- trunk/pywikipedia/interwiki.py 2012-05-05 17:08:48 UTC (rev 10185) +++ trunk/pywikipedia/interwiki.py 2012-05-05 17:14:00 UTC (rev 10186) @@ -2106,7 +2106,7 @@ % fs.originPage) pywikibot.output(u"NOTE: Number of pages queued is %d, trying to add %d more." % (len(self.subjects), number)) - for i in range(number): + for i in xrange(number): try: while True: try: @@ -2263,7 +2263,7 @@ def queryStep(self): self.oneQuery() # Delete the ones that are done now. - for i in range(len(self.subjects)-1, -1, -1): + for i in xrange(len(self.subjects)-1, -1, -1): subj = self.subjects[i] if subj.isDone(): subj.finish(self) @@ -2483,7 +2483,8 @@ for FileName in glob.iglob('interwiki-dumps/interwikidump-*.txt'): s = FileName.split('\')[1].split('.')[0].split('-') sitename = s[1] - for i in range(0,2): s.remove(s[0]) + for i in xrange(0,2): + s.remove(s[0]) sitelang = '-'.join(s) if site.family.name == sitename: File2Restore.append([sitename, sitelang])
Modified: trunk/pywikipedia/pagegenerators.py =================================================================== --- trunk/pywikipedia/pagegenerators.py 2012-05-05 17:08:48 UTC (rev 10185) +++ trunk/pywikipedia/pagegenerators.py 2012-05-05 17:14:00 UTC (rev 10186) @@ -762,13 +762,13 @@ def RandomPageGenerator(number = 10, site = None): if site is None: site = pywikibot.getSite() - for i in range(number): + for i in xrange(number): yield site.randompage()
def RandomRedirectPageGenerator(number = 10, site = None): if site is None: site = pywikibot.getSite() - for i in range(number): + for i in xrange(number): yield site.randomredirectpage()
def PagesFromTitlesGenerator(iterable, site=None):
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2012-05-05 17:08:48 UTC (rev 10185) +++ trunk/pywikipedia/wikipedia.py 2012-05-05 17:14:00 UTC (rev 10186) @@ -4551,11 +4551,11 @@ # The first two chars represent an Esperanto letter. # Following x's are doubled. new = esperanto + ''.join([old[2 * i] - for i in range(1, len(old)/2)]) + for i in xrange(1, len(old)/2)]) else: # The first character stays latin; only the x's are doubled. new = latin + ''.join([old[2 * i + 1] - for i in range(0, len(old)/2)]) + for i in xrange(0, len(old)/2)]) result += text[pos : match.start() + pos] + new pos += match.start() + len(old) else: @@ -4583,7 +4583,7 @@ if match: old = match.group() # the first letter stays; add an x after each X or x. - new = old[0] + ''.join([old[i] + 'x' for i in range(1, len(old))]) + new = old[0] + ''.join([old[i] + 'x' for i in xrange(1, len(old))]) result += text[pos : match.start() + pos] + new pos += match.start() + len(old) else:
pywikipedia-svn@lists.wikimedia.org