jenkins-bot submitted this change.

View Change

Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[cleanup] Remove functions and methods deprecated since release 3.0

- update tests
- update archived scripts

Change-Id: Ib4247ae2d9b302f26d2e7d08141ba789b5ad3a19
---
M pywikibot/page/__init__.py
M pywikibot/pagegenerators.py
M scripts/archive/imagecopy.py
M scripts/archive/imagecopy_self.py
M tests/pagegenerators_tests.py
5 files changed, 3 insertions(+), 374 deletions(-)

diff --git a/pywikibot/page/__init__.py b/pywikibot/page/__init__.py
index 91a74d2..e86ed10 100644
--- a/pywikibot/page/__init__.py
+++ b/pywikibot/page/__init__.py
@@ -1035,11 +1035,6 @@
"""
return self.site.page_can_be_edited(self, action)

- @deprecated("Page.has_permission('edit')", since='3.0.20200508')
- def canBeEdited(self): # pragma: no cover
- """DEPRECATED. Determine whether the page may be edited."""
- return self.has_permission()
-
def botMayEdit(self) -> bool:
"""
Determine whether the active bot is allowed to edit the page.
@@ -2391,11 +2386,6 @@
url_param=url_param)
return self.latest_file_info.thumburl

- @deprecated('file_is_shared', since='3.0.20200703')
- def fileIsShared(self) -> bool: # pragma: no cover
- """DEPRECATED. Check if the image is stored on Wikimedia Commons."""
- return self.file_is_shared()
-
def file_is_shared(self) -> bool:
"""Check if the file is stored on any known shared repository."""
# as of now, the only known repositories are commons and wikitravel
diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index 0190518..7889c4f 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -61,7 +61,6 @@
from pywikibot.proofreadpage import ProofreadPage
from pywikibot.tools import (
DequeGenerator,
- deprecated,
filter_unique,
intersect_generators,
itergroup,
@@ -1446,26 +1445,6 @@
return gen


-@deprecated('File.usingPages()', since='3.0.20200609')
-def FileLinksGenerator(referredFilePage: 'pywikibot.page.FilePage',
- total: Optional[int] = None,
- content: bool = False
- ) -> Iterable['pywikibot.page.Page']:
- """DEPRECATED. Yield Pages on which referredFilePage file is displayed."""
- return referredFilePage.usingPages(total=total,
- content=content) # pragma: no cover
-
-
-@deprecated('Page.imagelinks()', since='3.0.20200609')
-def ImagesPageGenerator(pageWithImages: 'pywikibot.page.Page',
- total: Optional[int] = None,
- content: bool = False
- ) -> Iterable['pywikibot.page.Page']:
- """DEPRECATED. Yield FilePages displayed on pageWithImages."""
- return pageWithImages.imagelinks(total=total,
- content=content) # pragma: no cover
-
-
def InterwikiPageGenerator(page: 'pywikibot.page.Page'
) -> Iterable['pywikibot.page.Page']:
"""Iterate over all interwiki (non-language) links on a page."""
@@ -1535,25 +1514,6 @@
yield s


-@deprecated('Page.linkedPages()', since='3.0.20200609')
-def LinkedPageGenerator(linkingPage: 'pywikibot.page.Page',
- total: Optional[int] = None,
- content: bool = False
- ) -> Iterable['pywikibot.page.Page']:
- """DEPRECATED. Yield all pages linked from a specific page.
-
- See :py:obj:`pywikibot.page.BasePage.linkedPages` for details.
-
- :param linkingPage: the page that links to the pages we want
- :param total: the total number of pages to iterate
- :param content: if True, retrieve the current content of each linked page
- :return: a generator that yields Page objects of pages linked to
- linkingPage
- """
- return linkingPage.linkedPages(total=total,
- content=content) # pragma: no cover
-
-
def _yield_titles(f: Union[codecs.StreamReaderWriter, io.StringIO],
site: pywikibot.site.BaseSite
) -> Iterable['pywikibot.page.Page']:
@@ -1630,27 +1590,6 @@
yield pywikibot.Page(pywikibot.Link(title, site))


-@deprecated('site.load_pages_from_pageids()', since='3.0.20200609')
-def PagesFromPageidGenerator(pageids: Iterable[str],
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- DEPRECATED. Return a page generator from pageids.
-
- Pages are iterated in the same order than in the underlying pageids.
- Pageids are filtered and only one page is returned in case of
- duplicate pageid.
-
- :param pageids: an iterable that returns pageids, or a comma-separated
- string of pageids (e.g. '945097,1483753,956608')
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
-
- return site.load_pages_from_pageids(pageids)
-
-
def UserContributionsGenerator(username: str,
namespaces: Optional[List[int]] = None,
site: OPT_SITE_TYPE = None,
@@ -2319,143 +2258,6 @@
yield page


-@deprecated('Site.unusedfiles()', since='3.0.20200609')
-def UnusedFilesGenerator(total: Optional[int] = None, # pragma: no cover
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.FilePage']:
- """
- DEPRECATED. Unused files generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.unusedfiles(total=total)
-
-
-@deprecated('Site.withoutinterwiki()', since='3.0.20200609')
-def WithoutInterwikiPageGenerator(total: Optional[int] = None,
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- DEPRECATED. Page lacking interwikis generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.withoutinterwiki(total=total)
-
-
-@deprecated('Site.uncategorizedcategories()', since='3.0.20200609')
-def UnCategorizedCategoryGenerator(total: Optional[int] = 100,
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.Category']:
- """
- DEPRECATED. Uncategorized category generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.uncategorizedcategories(total=total)
-
-
-@deprecated('Site.uncategorizedimages()', since='3.0.20200609')
-def UnCategorizedImageGenerator(total: int = 100, # pragma: no cover
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.FilePage']:
- """
- DEPRECATED. Uncategorized file generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.uncategorizedimages(total=total)
-
-
-@deprecated('Site.uncategorizedpages()', since='3.0.20200609')
-def UnCategorizedPageGenerator(total: int = 100, # pragma: no cover
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- DEPRECATED. Uncategorized page generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.uncategorizedpages(total=total)
-
-
-@deprecated('Site.uncategorizedtemplates()', since='3.0.20200609')
-def UnCategorizedTemplateGenerator(total: int = 100, # pragma: no cover
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- DEPRECATED. Uncategorized template generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.uncategorizedtemplates(total=total)
-
-
-@deprecated('Site.lonelypages()', since='3.0.20200609')
-def LonelyPagesPageGenerator(total: Optional[int] = None, # pragma: no cover
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- DEPRECATED. Lonely page generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.lonelypages(total=total)
-
-
-@deprecated('Site.unwatchedpages()', since='3.0.20200609')
-def UnwatchedPagesPageGenerator(total: Optional[int] = None,
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- DEPRECATED. Unwatched page generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.unwatchedpages(total=total)
-
-
-@deprecated('Site.pages_with_property()', since='3.0.20200609')
-def page_with_property_generator(name: str, # pragma: no cover
- total: Optional[int] = None,
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- Special:PagesWithProperty page generator.
-
- :param name: Property name of pages to be retrieved
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.pages_with_property(name, total=total)
-
-
def AncientPagesPageGenerator(total: int = 100, # pragma: no cover
site: OPT_SITE_TYPE = None
) -> Iterator['pywikibot.page.Page']:
@@ -2470,21 +2272,6 @@
return (page for page, _ in site.ancientpages(total=total))


-@deprecated('Site.deadendpages()', since='3.0.20200609')
-def DeadendPagesPageGenerator(total: int = 100, # pragma: no cover
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- DEPRECATED. Dead-end page generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.deadendpages(total=total)
-
-
def LongPagesPageGenerator(total: int = 100,
site: OPT_SITE_TYPE = None
) -> Iterator['pywikibot.page.Page']:
@@ -2513,83 +2300,6 @@
return (page for page, _ in site.shortpages(total=total))


-@deprecated('Site.randompages()', since='3.0.20200609')
-def RandomPageGenerator(total: Optional[int] = None, # pragma: no cover
- site: OPT_SITE_TYPE = None,
- namespaces: Optional[
- Sequence[NAMESPACE_OR_STR_TYPE]] = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- DEPRECATED. Random page generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.randompages(total=total, namespaces=namespaces)
-
-
-@deprecated('Site.randompages()', since='3.0.20200609')
-def RandomRedirectPageGenerator(total: Optional[int] = None,
- site: OPT_SITE_TYPE = None,
- namespaces: Optional[
- Sequence[NAMESPACE_OR_STR_TYPE]] = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- DEPRECATED. Random redirect generator.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.randompages(total=total, namespaces=namespaces,
- redirects=True)
-
-
-@deprecated('Site.exturlusage()', since='3.0.20200609')
-def LinksearchPageGenerator(url: str,
- namespaces: Optional[List[int]] = None,
- total: Optional[int] = None,
- site: OPT_SITE_TYPE = None,
- protocol: Optional[str] = None
- ) -> Iterable['pywikibot.page.Page']:
- """DEPRECATED. Yield all pages that link to a certain URL.
-
- :param url: The URL to search for (with ot without the protocol prefix);
- this may include a '*' as a wildcard, only at the start of the
- hostname
- :param namespaces: list of namespace numbers to fetch contribs from
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results
- :param protocol: Protocol to search for, likely http or https, http by
- default. Full list shown on Special:LinkSearch wikipage
- """
- if site is None:
- site = pywikibot.Site()
- return site.exturlusage(url, namespaces=namespaces, protocol=protocol,
- total=total, content=False)
-
-
-@deprecated('Site.search()', since='3.0.20200609')
-def SearchPageGenerator(query: str, # pragma: no cover
- total: Optional[int] = None,
- namespaces: Optional[
- Sequence[NAMESPACE_OR_STR_TYPE]] = None,
- site: OPT_SITE_TYPE = None
- ) -> Iterable['pywikibot.page.Page']:
- """
- DEPRECATED. Yield pages from the MediaWiki internal search engine.
-
- :param total: Maximum number of pages to retrieve in total
- :param site: Site for generator results.
- """
- if site is None:
- site = pywikibot.Site()
- return site.search(query, total=total, namespaces=namespaces)
-
-
def LiveRCPageGenerator(site: OPT_SITE_TYPE = None,
total: Optional[int] = None
) -> Iterator['pywikibot.page.Page']:
diff --git a/scripts/archive/imagecopy.py b/scripts/archive/imagecopy.py
index d4646b4..7e35eec 100755
--- a/scripts/archive/imagecopy.py
+++ b/scripts/archive/imagecopy.py
@@ -312,7 +312,7 @@
pywikibot.showDiff(self.imagePage.get(), imtxt + addTemplate)
self.imagePage.put(imtxt + addTemplate, comment=commentText)

- self.gen = pagegenerators.FileLinksGenerator(self.imagePage)
+ self.gen = self.imagePage.usingPages()
self.preloadingGen = pagegenerators.PreloadingGenerator(self.gen)

moveSummary = i18n.twtranslate(
diff --git a/scripts/archive/imagecopy_self.py b/scripts/archive/imagecopy_self.py
index 44a9b5a..57d9f83 100755
--- a/scripts/archive/imagecopy_self.py
+++ b/scripts/archive/imagecopy_self.py
@@ -1001,7 +1001,7 @@
def replaceUsage(self, imagepage, filename):
"""Replace all usage if image is uploaded under a different name."""
if imagepage.title(with_ns=False) != filename:
- gen = pagegenerators.FileLinksGenerator(imagepage)
+ gen = imagepage.usingPages()
preloadingGen = pagegenerators.PreloadingGenerator(gen)

moveSummary = i18n.twtranslate(
diff --git a/tests/pagegenerators_tests.py b/tests/pagegenerators_tests.py
index 31d0f0f..f195ffe 100644
--- a/tests/pagegenerators_tests.py
+++ b/tests/pagegenerators_tests.py
@@ -22,7 +22,7 @@
PreloadingGenerator,
WikibaseItemFilterPageGenerator,
)
-from pywikibot.tools import has_module, suppress_warnings
+from pywikibot.tools import has_module
from tests import join_data_path
from tests.aspects import (
DefaultSiteTestCase,
@@ -34,13 +34,6 @@
from tests.tools_tests import GeneratorIntersectTestCase


-LINKSEARCH_MSG = (r'.*pywikibot\.pagegenerators\.LinksearchPageGenerator .*'
- r'is deprecated for .*; use Site\.exturlusage')
-
-PAGES_ID_GEN_MSG = (r'.*pywikibot\.pagegenerators\.PagesFromPageidGenerator .*'
- r'is deprecated for .*; use site\.load_pages_from_pageids')
-
-
en_wp_page_titles = (
# just a bunch of randomly selected titles for English Wikipedia tests
'Eastern Sayan',
@@ -209,21 +202,6 @@
self.titles = [self.base_title.format(i) for i in range(1, 11)]


-class TestPagesFromPageidGenerator(BasetitleTestCase):
-
- """Test PagesFromPageidGenerator method."""
-
- def test_PagesFromPageidGenerator(self):
- """Test PagesFromPageidGenerator."""
- gen_pages = pagegenerators.PagesFromTitlesGenerator(self.titles,
- self.site)
- pageids = [page.pageid for page in gen_pages]
-
- with suppress_warnings(PAGES_ID_GEN_MSG, category=FutureWarning):
- gen = pagegenerators.PagesFromPageidGenerator(pageids, self.site)
- self.assertPageTitlesEqual(gen, self.titles)
-
-
class TestCategoryFilterPageGenerator(BasetitleTestCase):

"""Test CategoryFilterPageGenerator method."""
@@ -1671,55 +1649,6 @@
self.assertIn(key, rcinfo.keys())


-class TestLinksearchPageGenerator(TestCase):
-
- """Tests for pagegenerators.LinksearchPageGenerator."""
-
- family = 'wikipedia'
- code = 'en'
-
- def test_weblink(self):
- """Test -weblink."""
- cases = (('wikipedia.org', 'http://wikipedia.org'),
- ('en.wikipedia.org', 'http://en.wikipedia.org'),
- ('https://fr.wikipedia.org', 'https://fr.wikipedia.org'),
- ('ftp://*', 'ftp://'))
-
- for search, expected in cases:
- gf = pagegenerators.GeneratorFactory(site=self.site)
- gf.handle_arg('-weblink:{}'.format(search))
- gf.handle_arg('-ns:2')
- gf.handle_arg('-limit:1')
- gen = gf.getCombinedGenerator()
- genlist = list(gen)
- self.assertLength(genlist, 1)
-
- page = genlist[0]
- self.assertIsInstance(page, pywikibot.Page)
- self.assertTrue(page.exists())
- self.assertEqual(page.namespace(), 2)
- self.assertIn(expected, page.text)
-
- def test_double_opposite_protocols(self):
- """Test LinksearchPageGenerator with two opposite protocols."""
- with suppress_warnings(LINKSEARCH_MSG, category=FutureWarning):
- with self.assertRaises(ValueError):
- pagegenerators.LinksearchPageGenerator(
- 'http://w.wiki',
- protocol='https',
- site=self.site)
-
- def test_double_same_protocols(self):
- """Test LinksearchPageGenerator with two same protocols."""
- with suppress_warnings(LINKSEARCH_MSG, category=FutureWarning):
- gen = pagegenerators.LinksearchPageGenerator('https://w.wiki',
- protocol='https',
- site=self.site,
- total=1)
- self.assertIsInstance(gen, pywikibot.data.api.PageGenerator)
- self.assertLength(list(gen), 1)
-
-
if __name__ == '__main__': # pragma: no cover
with suppress(SystemExit):
unittest.main()

To view, visit change 761395. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ib4247ae2d9b302f26d2e7d08141ba789b5ad3a19
Gerrit-Change-Number: 761395
Gerrit-PatchSet: 5
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki@aol.com>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged