Ricordisamoa has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/118938

Change subject: add Site.wantedpages() and 
pagegenerators.WantedPagesPageGenerator()
......................................................................

add Site.wantedpages() and pagegenerators.WantedPagesPageGenerator()

per Bug 54557
also cleaned up some deprecate arguments in pagegenerators

Change-Id: I981d45342ed7f9eca07b2c0431b51240c496f285
---
M pywikibot/pagegenerators.py
M pywikibot/site.py
2 files changed, 54 insertions(+), 67 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core 
refs/changes/38/118938/1

diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index df3068e..4a8ded2 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -302,19 +302,19 @@
             if len(arg) == 12:
                 gen = UnusedFilesGenerator()
             else:
-                gen = UnusedFilesGenerator(number=int(arg[13:]))
+                gen = UnusedFilesGenerator(total=int(arg[13:]))
         elif arg.startswith('-unwatched'):
             if len(arg) == 10:
                 gen = UnwatchedPagesPageGenerator()
             else:
-                gen = UnwatchedPagesPageGenerator(number=int(arg[11:]))
+                gen = UnwatchedPagesPageGenerator(total=int(arg[11:]))
         elif arg.startswith('-usercontribs'):
             gen = UserContributionsGenerator(arg[14:])
         elif arg.startswith('-withoutinterwiki'):
             if len(arg) == 17:
                 gen = WithoutInterwikiPageGenerator()
             else:
-                gen = WithoutInterwikiPageGenerator(number=int(arg[18:]))
+                gen = WithoutInterwikiPageGenerator(total=int(arg[18:]))
         elif arg.startswith('-interwiki'):
             title = arg[11:]
             if not title:
@@ -326,12 +326,12 @@
             if len(arg) == 15:
                 gen = RandomRedirectPageGenerator()
             else:
-                gen = RandomRedirectPageGenerator(number=int(arg[16:]))
+                gen = RandomRedirectPageGenerator(total=int(arg[16:]))
         elif arg.startswith('-random'):
             if len(arg) == 7:
                 gen = RandomPageGenerator()
             else:
-                gen = RandomPageGenerator(number=int(arg[8:]))
+                gen = RandomPageGenerator(total=int(arg[8:]))
         elif arg.startswith('-recentchanges'):
             if len(arg) >= 15:
                 gen = RecentChangesPageGenerator(total=int(arg[15:]))
@@ -924,94 +924,101 @@
 
 #TODO below
 @deprecate_arg("extension", None)
-def UnusedFilesGenerator(number=100, repeat=False, site=None, extension=None):
+def UnusedFilesGenerator(total=100, site=None, extension=None):
     if site is None:
         site = pywikibot.Site()
-    for page in site.unusedfiles(number=number, repeat=repeat):
+    for page in site.unusedfiles(total=total):
         yield pywikibot.ImagePage(page.site, page.title())
 
 
-def WithoutInterwikiPageGenerator(number=100, repeat=False, site=None):
+def WithoutInterwikiPageGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page in site.withoutinterwiki(number=number, repeat=repeat):
+    for page in site.withoutinterwiki(total=total):
         yield page
 
 
-def UnCategorizedCategoryGenerator(number=100, repeat=False, site=None):
+def UnCategorizedCategoryGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page in site.uncategorizedcategories(number=number, repeat=repeat):
+    for page in site.uncategorizedcategories(total=total):
         yield page
 
 
-def UnCategorizedImageGenerator(number=100, repeat=False, site=None):
+def UnCategorizedImageGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page in site.uncategorizedimages(number=number, repeat=repeat):
+    for page in site.uncategorizedimages(total=total):
         yield page
 
 
-def UnCategorizedPageGenerator(number=100, repeat=False, site=None):
+def UnCategorizedPageGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page in site.uncategorizedpages(number=number, repeat=repeat):
+    for page in site.uncategorizedpages(total=total):
         yield page
 
 
-def LonelyPagesPageGenerator(number=100, repeat=False, site=None):
+def LonelyPagesPageGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page in site.lonelypages(number=number, repeat=repeat):
+    for page in site.lonelypages(total=total):
         yield page
 
 
-def UnwatchedPagesPageGenerator(number=100, repeat=False, site=None):
+def UnwatchedPagesPageGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page in site.unwatchedpages(number=number, repeat=repeat):
+    for page in site.unwatchedpages(total=total):
         yield page
 
 
-def AncientPagesPageGenerator(number=100, repeat=False, site=None):
+def WantedPagesPageGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page, date in site.ancientpages(number=number, repeat=repeat):
+    for page in site.wantedpages(total=total):
         yield page
 
 
-def DeadendPagesPageGenerator(number=100, repeat=False, site=None):
+def AncientPagesPageGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page in site.deadendpages(number=number, repeat=repeat):
+    for page, date in site.ancientpages(total=total):
         yield page
 
 
-def LongPagesPageGenerator(number=100, repeat=False, site=None):
+def DeadendPagesPageGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page, length in site.longpages(number=number, repeat=repeat):
+    for page in site.deadendpages(total=total):
         yield page
 
 
-def ShortPagesPageGenerator(number=100, repeat=False, site=None):
+def LongPagesPageGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page, length in site.shortpages(total=number, repeat=repeat):
+    for page, length in site.longpages(total=total):
         yield page
 
 
-def RandomPageGenerator(number=10, site=None):
+def ShortPagesPageGenerator(total=100, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page in site.randompages(total=number):
+    for page, length in site.shortpages(total=total):
         yield page
 
 
-def RandomRedirectPageGenerator(number=10, site=None):
+def RandomPageGenerator(total=10, site=None):
     if site is None:
         site = pywikibot.Site()
-    for page in site.randompages(total=number, redirects=True):
+    for page in site.randompages(total=total):
+        yield page
+
+
+def RandomRedirectPageGenerator(total=10, site=None):
+    if site is None:
+        site = pywikibot.Site()
+    for page in site.randompages(total=total, redirects=True):
         yield page
 
 
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 1cb32bf..92c4fe7 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -637,6 +637,9 @@
     def unwatchedpages_address(self, n=500):
         raise NotImplementedError
 
+    def wantedpages_address(self, n=500):
+        raise NotImplementedError
+
     def uncategorizedcategories_address(self, n=500):
         raise NotImplementedError
 
@@ -3388,8 +3391,6 @@
                 yield (newpage, pageitem['timestamp'], pageitem['newlen'],
                        u'', pageitem['user'], pageitem['comment'])
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
     def newimages(self, user=None, start=None, end=None, reverse=False,
                   step=None, total=None):
         """Yield information about newly uploaded images.
@@ -3410,8 +3411,6 @@
             comment = event['comment'] or u''
             yield (image, date, user, comment)
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
     def longpages(self, step=None, total=None):
         """Yield Pages and lengths from Special:Longpages.
 
@@ -3425,8 +3424,6 @@
             yield (pywikibot.Page(self, pageitem['title']),
                    int(pageitem['value']))
 
-    @deprecate_arg("number", "total")
-    @deprecate_arg("repeat", None)
     def shortpages(self, step=None, total=None):
         """Yield Pages and lengths from Special:Shortpages.
 
@@ -3440,8 +3437,6 @@
             yield (pywikibot.Page(self, pageitem['title']),
                    int(pageitem['value']))
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
     def deadendpages(self, step=None, total=None):
         """Yield Page objects retrieved from Special:Deadendpages."""
         degen = self._generator(api.PageGenerator,
@@ -3449,8 +3444,6 @@
                                 step=step, total=total)
         return degen
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
     def ancientpages(self, step=None, total=None):
         """Yield Pages, datestamps from Special:Ancientpages."""
         apgen = self._generator(api.ListGenerator,
@@ -3460,8 +3453,6 @@
             yield (pywikibot.Page(self, pageitem['title']),
                    pywikibot.Timestamp.fromISOformat(pageitem['timestamp']))
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
     def lonelypages(self, step=None, total=None):
         """Yield Pages retrieved from Special:Lonelypages."""
         lpgen = self._generator(api.PageGenerator,
@@ -3469,8 +3460,6 @@
                                 step=step, total=total)
         return lpgen
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
     def unwatchedpages(self, step=None, total=None):
         """Yield Pages from Special:Unwatchedpages (requires Admin privileges).
 
@@ -3480,10 +3469,16 @@
                                 step=step, total=total)
         return uwgen
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
-    def uncategorizedcategories(self, number=None, repeat=True,
-                                step=None, total=None):
+    def wantedpages(self, step=None, total=None):
+        """Yield Pages from Special:Wantedpages.
+
+        """
+        wpgen = self._generator(api.PageGenerator,
+                                type_arg="querypage", gqppage="Wantedpages",
+                                step=step, total=total)
+        return wpgen
+
+    def uncategorizedcategories(self, step=None, total=None):
         """Yield Categories from Special:Uncategorizedcategories."""
         ucgen = self._generator(api.CategoryPageGenerator,
                                 type_arg="querypage",
@@ -3491,10 +3486,7 @@
                                 step=step, total=total)
         return ucgen
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
-    def uncategorizedimages(self, number=None, repeat=True,
-                            step=None, total=None):
+    def uncategorizedimages(self, step=None, total=None):
         """Yield ImagePages from Special:Uncategorizedimages."""
         uigen = self._generator(api.ImagePageGenerator,
                                 type_arg="querypage",
@@ -3505,10 +3497,7 @@
     #synonym
     uncategorizedfiles = uncategorizedimages
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
-    def uncategorizedpages(self, number=None, repeat=True,
-                           step=None, total=None):
+    def uncategorizedpages(self, step=None, total=None):
         """Yield Pages from Special:Uncategorizedpages."""
         upgen = self._generator(api.PageGenerator,
                                 type_arg="querypage",
@@ -3516,10 +3505,7 @@
                                 step=step, total=total)
         return upgen
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
-    def uncategorizedtemplates(self, number=None, repeat=True, step=None,
-                               total=None):
+    def uncategorizedtemplates(self, step=None, total=None):
         """Yield Pages from Special:Uncategorizedtemplates."""
         utgen = self._generator(api.PageGenerator,
                                 type_arg="querypage",
@@ -3527,8 +3513,6 @@
                                 step=step, total=total)
         return utgen
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
     def unusedcategories(self, step=None, total=None):
         """Yield Category objects from Special:Unusedcategories."""
         ucgen = self._generator(api.CategoryPageGenerator,
@@ -3537,8 +3521,6 @@
                                 step=step, total=total)
         return ucgen
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
     def unusedfiles(self, step=None, total=None):
         """Yield ImagePage objects from Special:Unusedimages."""
         uigen = self._generator(api.ImagePageGenerator,
@@ -3550,8 +3532,6 @@
     #synonym
     unusedimages = unusedfiles
 
-    @deprecate_arg("number", None)
-    @deprecate_arg("repeat", None)
     def withoutinterwiki(self, step=None, total=None):
         """Yield Pages without language links from Special:Withoutinterwiki."""
         wigen = self._generator(api.PageGenerator,

-- 
To view, visit https://gerrit.wikimedia.org/r/118938
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I981d45342ed7f9eca07b2c0431b51240c496f285
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Ricordisamoa <ricordisa...@live.it>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to