jenkins-bot has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/611425 )

Change subject: [4.0] Remove Python 2 related code in pagegenerators.py
......................................................................

[4.0] Remove Python 2 related code in pagegenerators.py

Change-Id: I376d19b712b27db7a7d56601c725f5b8391de4d7
---
M pywikibot/pagegenerators.py
1 file changed, 26 insertions(+), 45 deletions(-)

Approvals:
  Zhuyifei1999: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index 1328bd4..a37e88b 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -18,8 +18,6 @@
 #
 # Distributed under the terms of the MIT license.
 #
-from __future__ import absolute_import, division, unicode_literals
-
 import calendar
 import codecs
 import datetime
@@ -30,6 +28,7 @@

 from datetime import timedelta
 from functools import partial
+from itertools import zip_longest
 from requests.exceptions import ReadTimeout
 from warnings import warn

@@ -57,12 +56,7 @@
     UnknownExtension,
 )
 from pywikibot.proofreadpage import ProofreadPage
-from pywikibot.tools import PY2, UnicodeType

-if not PY2:
-    from itertools import zip_longest
-else:
-    from itertools import izip_longest as zip_longest

 _logger = 'pagegenerators'

@@ -423,7 +417,7 @@
     filter_unique, key=lambda page: '{}:{}:{}'.format(*page._cmpkey()))


-class GeneratorFactory(object):
+class GeneratorFactory:

     """Process command line arguments and return appropriate page generator.

@@ -674,7 +668,7 @@
         """
         total = None
         start = start or None  # because start might be an empty string
-        if isinstance(start, UnicodeType) and len(start) == 8:
+        if isinstance(start, str) and len(start) == 8:
             start = pywikibot.Timestamp.strptime(start, '%Y%m%d')
         elif start is not None:
             try:
@@ -1209,11 +1203,7 @@
         if value == '':
             value = None

-        try:
-            handler = getattr(self, '_handle_' + arg[1:], None)
-        except UnicodeEncodeError:
-            # getattr() on py2 does implicit unicode -> str
-            return False
+        handler = getattr(self, '_handle_' + arg[1:], None)
         if handler:
             handler_result = handler(value)
             if isinstance(handler_result, bool):
@@ -1545,8 +1535,7 @@
                         return
             return
         kwargs['startprefix'] = start
-    for a in category.articles(**kwargs):
-        yield a
+    yield from category.articles(**kwargs)


 @deprecated_args(step=None)
@@ -1633,7 +1622,7 @@

 def PagesFromTitlesGenerator(iterable, site=None):
     """
-    Generate pages from the titles (unicode strings) yielded by iterable.
+    Generate pages from the titles (strings) yielded by iterable.

     @param site: Site for generator results.
     @type site: L{pywikibot.site.BaseSite}
@@ -1641,7 +1630,7 @@
     if site is None:
         site = pywikibot.Site()
     for title in iterable:
-        if not isinstance(title, UnicodeType):
+        if not isinstance(title, str):
             break
         yield pywikibot.Page(pywikibot.Link(title, site))

@@ -1783,7 +1772,7 @@
                                  % page)


-class ItemClaimFilter(object):
+class ItemClaimFilter:

     """Item claim filter."""

@@ -1876,7 +1865,7 @@
                     % page)


-class RegexFilter(object):
+class RegexFilter:

     """Regex filter."""

@@ -1902,7 +1891,7 @@
             regex = [regex]
         # Test if regex is already compiled.
         # We assume that all list components have the same type
-        if isinstance(regex[0], UnicodeType):
+        if isinstance(regex[0], str):
             regex = [re.compile(r, flag) for r in regex]
         return regex

@@ -2093,7 +2082,7 @@
     @type show_filtered: bool
     """
     if timestamp:
-        if isinstance(timestamp, UnicodeType):
+        if isinstance(timestamp, str):
             ts = pywikibot.Timestamp.fromtimestampformat(timestamp)
         else:
             ts = timestamp
@@ -2190,8 +2179,8 @@
                 else:
                     break
             pywikibot.sleep(sleep_duration)
-        for item in list(filtered_generator())[::-1]:
-            yield item
+
+        yield from list(filtered_generator())[::-1]


 @deprecated_args(pageNumber='groupsize', step='groupsize', lookahead=None)
@@ -2213,12 +2202,11 @@
         if len(sites[site]) >= groupsize:
             # if this site is at the groupsize, process it
             group = sites.pop(site)
-            for i in site.preloadpages(group, groupsize):
-                yield i
+            yield from site.preloadpages(group, groupsize)
+
     for site, pages in sites.items():
         # process any leftover sites that never reached the groupsize
-        for i in site.preloadpages(pages, groupsize):
-            yield i
+        yield from site.preloadpages(pages, groupsize)


 @deprecated_args(step='groupsize')
@@ -2232,8 +2220,7 @@
         if not page_count:
             return

-        for page in PreloadingGenerator(generator, page_count):
-            yield page
+        yield from PreloadingGenerator(generator, page_count)


 @deprecated_args(step='groupsize')
@@ -2256,13 +2243,12 @@
             # if this site is at the groupsize, process it
             group = sites.pop(site)
             repo = site.data_repository()
-            for i in repo.preload_entities(group, groupsize):
-                yield i
+            yield from repo.preload_entities(group, groupsize)
+
     for site, pages in sites.items():
         # process any leftover sites that never reached the groupsize
         repo = site.data_repository()
-        for i in repo.preload_entities(pages, groupsize):
-            yield i
+        yield from repo.preload_entities(pages, groupsize)


 @deprecated_args(number='total', step=None, repeat=None)
@@ -2667,7 +2653,7 @@
 # following classes just ported from version 1 without revision; not tested


-class GoogleSearchPageGenerator(object):
+class GoogleSearchPageGenerator:

     """
     Page generator using Google search results.
@@ -2719,8 +2705,7 @@
                             'To install, please run: pip install google.')
             exit(1)
         pywikibot.warning('Please read http://www.google.com/accounts/TOS')
-        for url in google.search(query):
-            yield url
+        yield from google.search(query)
 
     def __iter__(self):
         """Iterate results."""
@@ -2845,10 +2830,7 @@
     def __next__(self):
         """Get next Page."""
         while True:
-            try:
-                entry = next(self.parser)
-            except StopIteration:
-                raise
+            entry = next(self.parser)
             if self.skipping:
                 if entry.title < self.start:
                     continue
@@ -2867,7 +2849,7 @@

     def __next__(self):
         """Get next Page from dump and remove the text."""
-        page = super(XMLDumpPageGenerator, self).__next__()
+        page = super().__next__()
         del page.text
         return page

@@ -3002,7 +2984,7 @@
     return (pywikibot.ItemPage(repo, item['id']) for item in data)


-class PetScanPageGenerator(object):
+class PetScanPageGenerator:
     """Queries PetScan (https://petscan.wmflabs.org/) to generate pages."""

     def __init__(self, categories, subset_combination=True, namespaces=None,
@@ -3075,8 +3057,7 @@
                 'received {0} status from {1}'.format(req.status, req.uri))
         j = json.loads(req.text)
         raw_pages = j['*'][0]['a']['*']
-        for raw_page in raw_pages:
-            yield raw_page
+        yield from raw_pages

     def __iter__(self):
         for raw_page in self.query():

--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/611425
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I376d19b712b27db7a7d56601c725f5b8391de4d7
Gerrit-Change-Number: 611425
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Zhuyifei1999 <[email protected]>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits

Reply via email to