jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/634327 )
Change subject: [IMPR] Replaced basestring by str
......................................................................
[IMPR] Replaced basestring by str
Bug: T265128
Change-Id: If6a9cfdddfd1c75fa78bf4181c1eb59951b7c683
---
M pywikibot/logentries.py
M pywikibot/logging.py
M pywikibot/login.py
M pywikibot/pagegenerators.py
M pywikibot/proofreadpage.py
5 files changed, 105 insertions(+), 170 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/logentries.py b/pywikibot/logentries.py
index b9a5d41..7ffa816 100644
--- a/pywikibot/logentries.py
+++ b/pywikibot/logentries.py
@@ -339,24 +339,16 @@
_expected_type = 'patrol'
@property
- def current_id(self):
- """
- Return the current id.
-
- @rtype: int
- """
+ def current_id(self) -> int:
+ """Return the current id."""
# key has been changed in mw 1.19; try the new mw style first
# sometimes it returns strs sometimes ints
return int(self._params['curid']
if 'curid' in self._params else self._params['cur'])
@property
- def previous_id(self):
- """
- Return the previous id.
-
- @rtype: int
- """
+ def previous_id(self) -> int:
+ """Return the previous id."""
# key has been changed in mw 1.19; try the new mw style first
# sometimes it returns strs sometimes ints
return int(self._params['previd']
diff --git a/pywikibot/logging.py b/pywikibot/logging.py
index 22ba07f..ed4e842 100644
--- a/pywikibot/logging.py
+++ b/pywikibot/logging.py
@@ -11,6 +11,7 @@
# logging levels
from logging import DEBUG, INFO, WARNING, ERROR, CRITICAL
+from typing import Optional
STDOUT = 16
VERBOSE = 18
@@ -140,16 +141,14 @@
logoutput(text, decoder, newline, STDOUT, **kwargs)
-def warning(text, decoder=None, newline=True, **kwargs):
+def warning(text: str, decoder: Optional[str] = None,
+ newline: bool = True, **kwargs):
"""Output a warning message to the user via the userinterface.
@param text: the message the user wants to display.
- @type text: str
@param decoder: If None, text should be a unicode string. Otherwise it
should be encoded in the given encoding.
- @type decoder: str
@param newline: If True, a line feed will be added after printing the text.
- @type newline: bool
@param kwargs: The keyword arguments can be found in the python doc:
https://docs.python.org/3/howto/logging-cookbook.html.
"""
diff --git a/pywikibot/login.py b/pywikibot/login.py
index 7b5a105..c923969 100644
--- a/pywikibot/login.py
+++ b/pywikibot/login.py
@@ -11,6 +11,7 @@
import webbrowser
from enum import IntEnum
+from typing import Optional
from warnings import warn
import pywikibot
@@ -89,7 +90,8 @@
"""Site login manager."""
@deprecated_args(username='user', verbose=None, sysop=None)
- def __init__(self, password=None, site=None, user=None):
+ def __init__(self, password: Optional[str] = None,
+ site=None, user: Optional[str] = None):
"""
Initializer.
@@ -99,9 +101,7 @@
@type site: BaseSite
@param user: username to use.
If user is None, the username is loaded from config.usernames.
- @type user: basestring
@param password: password to use
- @type password: basestring
@raises pywikibot.exceptions.NoUsername: No username is configured
for the requested site.
@@ -197,14 +197,11 @@
# THIS IS OVERRIDDEN IN data/api.py
return None
- def storecookiedata(self, data):
+ def storecookiedata(self, data: str) -> None:
"""
Store cookie data.
@param data: The raw data as returned by getCookie()
- @type data: str
-
- @return: None
"""
# THIS IS OVERRIDDEN IN data/api.py
filename = config.datafilepath('pywikibot.lwp')
@@ -387,7 +384,8 @@
# authentication process
@deprecated_args(sysop=None)
- def __init__(self, password=None, site=None, user=None):
+ def __init__(self, password: Optional[str] = None, site=None,
+ user: Optional[str] = None):
"""
Initializer.
@@ -396,9 +394,7 @@
@param site: Site object to log into
@type site: BaseSite
@param user: consumer key
- @type user: str
@param password: consumer secret
- @type password: str
@raises pywikibot.exceptions.NoUsername: No username is configured
for the requested site.
@@ -477,12 +473,8 @@
return self._access_token
@property
- def identity(self):
- """
- Get identifying information about a user via an authorized token.
-
- @rtype: None or dict
- """
+ def identity(self) -> Optional[dict]:
+ """Get identifying information about a user via an authorized token."""
if self.access_token is None:
pywikibot.error('Access token not set')
return None
diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index b301109..561474d 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -31,6 +31,7 @@
from functools import partial
from itertools import zip_longest
from requests.exceptions import ReadTimeout
+from typing import List, Optional, Union
import pywikibot
@@ -420,7 +421,7 @@
that are used by many scripts and that determine which pages to work on.
"""
- def __init__(self, site=None, positional_arg_name=None):
+ def __init__(self, site=None, positional_arg_name: Optional[str] = None):
"""
Initializer.
@@ -428,7 +429,6 @@
@type site: L{pywikibot.site.BaseSite}
@param positional_arg_name: generator to use for positional args,
which do not begin with a hyphen
- @type positional_arg_name: basestring
"""
self.gens = []
self._namespaces = []
@@ -610,13 +610,12 @@
return cat, startfrom
@deprecated_args(arg='category')
- def getCategoryGen(self, category, recurse=False, content=False,
- gen_func=None):
+ def getCategoryGen(self, category: str, recurse: bool = False,
+ content: bool = False, gen_func=None):
"""
Return generator based on Category defined by category and gen_func.
@param category: category name with start parameter
- @type category: str
@rtype: generator
"""
cat, startfrom = self.getCategory(category)
@@ -627,15 +626,14 @@
content=content)
@staticmethod
- def _parse_log_events(logtype, user=None, start=None, end=None):
+ def _parse_log_events(logtype: str, user: Optional[str] = None,
+ start=None, end=None):
"""
Parse the -logevent argument information.
@param logtype: A valid logtype
- @type logtype: str
@param user: A username associated to the log events. Ignored if
empty string or None.
- @type user: str
@param start: Timestamp to start listing from. For backward
compatibility, this can also be the total amount of pages
that should be returned. It is taken as 'total' if the value does
@@ -1137,7 +1135,7 @@
'Invalid -logevents parameter "{0}"'.format(params[0]))
return self._parse_log_events(*params)
- def handleArg(self, arg):
+ def handleArg(self, arg: str) -> bool:
"""Parse one argument at a time.
If it is recognized as an argument that specifies a generator, a
@@ -1147,9 +1145,7 @@
arguments have been parsed to get the final output generator.
@param arg: Pywikibot argument consisting of -name:value
- @type arg: basestring
@return: True if the argument supplied was recognised by the factory
- @rtype: bool
"""
if not arg.startswith('-') and self._positional_arg_name:
value = arg
@@ -1178,8 +1174,9 @@
@deprecated('Site.allpages()', since='20180512')
@deprecated_args(step=None)
-def AllpagesPageGenerator(start='!', namespace=0, includeredirects=True,
- site=None, total=None, content=False
+def AllpagesPageGenerator(start: str = '!', namespace=0,
+ includeredirects=True, site=None,
+ total: Optional[int] = None, content: bool = False
): # pragma: no cover
"""
Iterate Page objects for all titles in a single namespace.
@@ -1188,7 +1185,6 @@
includeredirects equals the string 'only', only redirects are added.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param content: If True, load current version of each page (default False)
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
@@ -1208,26 +1204,24 @@
@deprecated_args(step=None)
-def PrefixingPageGenerator(prefix, namespace=None, includeredirects=True,
- site=None, total=None, content=False):
+def PrefixingPageGenerator(prefix: str, namespace=None,
+ includeredirects: Union[None, bool, str] = True,
+ site=None, total: int = None,
+ content: bool = False):
"""
Prefixed Page generator.
@param prefix: The prefix of the pages.
- @type prefix: str
@param namespace: Namespace to retrieve pages from
@type namespace: Namespace or int
@param includeredirects: If includeredirects is None, False or an empty
string, redirects will not be found. If includeredirects equals the
string 'only', only redirects will be found. Otherwise redirects will
be included.
- @type includeredirects: None, bool, str
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param content: If True, load current version of each page (default False)
- @type content: bool
@return: a generator that yields Page objects
@rtype: generator
"""
@@ -1249,27 +1243,25 @@
@deprecated_args(number='total', mode='logtype', repeat=None)
-def LogeventsPageGenerator(logtype=None, user=None, site=None, namespace=None,
- total=None, start=None, end=None, reverse=False):
+def LogeventsPageGenerator(logtype: Optional[str] = None,
+ user: Optional[str] = None, site=None,
+ namespace: Optional[int] = None,
+ total: Optional[int] = None, start=None,
+ end=None, reverse: bool = False):
"""
Generate Pages for specified modes of logevents.
@param logtype: Mode of logs to retrieve
- @type logtype: basestring
@param user: User of logs retrieved
- @type user: basestring
@param site: Site for generator results
@type site: L{pywikibot.site.BaseSite}
@param namespace: Namespace to retrieve logs from
- @type namespace: int
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param start: Timestamp to start listing from
@type start: pywikibot.Timestamp
@param end: Timestamp to end listing at
@type end: pywikibot.Timestamp
@param reverse: if True, start with oldest changes (default: newest)
- @type reverse: bool
"""
if site is None:
site = pywikibot.Site()
@@ -1287,12 +1279,12 @@
@deprecated_args(number='total', step=None, namespace='namespaces',
repeat=None, get_redirect=None)
-def NewpagesPageGenerator(site=None, namespaces=(0, ), total=None):
+def NewpagesPageGenerator(site=None, namespaces=(0, ),
+ total: Optional[int] = None):
"""
Iterate Page objects for all new titles in a single namespace.
@param total: Maxmium number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -1329,12 +1321,11 @@
@deprecated('site.unconnected_pages()', since='20180512')
@deprecated_args(step=None)
-def UnconnectedPageGenerator(site=None, total=None):
+def UnconnectedPageGenerator(site=None, total: Optional[int] = None):
"""
Iterate Page objects for all unconnected pages to a Wikibase repository.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.APISite}
"""
@@ -1440,7 +1431,7 @@
@deprecated('Page.linkedPages()', since='20200515')
@deprecated_args(step=None)
-def LinkedPageGenerator(linkingPage, total=None, content=False):
+def LinkedPageGenerator(linkingPage, total: int = None, content: bool = False):
"""DEPRECATED. Yield all pages linked from a specific page.
See L{pywikibot.page.BasePage.linkedPages} for details.
@@ -1448,9 +1439,7 @@
@param linkingPage: the page that links to the pages we want
@type linkingPage: L{pywikibot.Page}
@param total: the total number of pages to iterate
- @type total: int
@param content: if True, retrieve the current content of each linked page
- @type content: bool
@return: a generator that yields Page objects of pages linked to
linkingPage
@rtype: generator
@@ -1459,7 +1448,7 @@
content=content) # pragma: no cover
-def TextfilePageGenerator(filename=None, site=None):
+def TextfilePageGenerator(filename: Optional[str] = None, site=None):
"""Iterate pages from a list in a text file.
The file must contain page links between double-square-brackets or, in
@@ -1468,7 +1457,6 @@
@param filename: the name of the file that should be read. If no name is
given, the generator prompts the user.
- @type filename: str
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
@@ -1533,15 +1521,13 @@
@deprecated_args(number='total', step=None)
-def UserContributionsGenerator(username, namespaces=None, site=None,
- total=None,
+def UserContributionsGenerator(username, namespaces: List[int] = None,
+ site=None, total: Optional[int] = None,
_filter_unique=_filter_unique_pages):
"""Yield unique pages edited by user:username.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param namespaces: list of namespace numbers to fetch contribs from
- @type namespaces: list of int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -1572,7 +1558,7 @@
namespace filtering more efficiently than this generator.
@param namespaces: list of namespace identifiers to limit results
- @type namespaces: iterable of basestring or Namespace key,
+ @type namespaces: iterable of str or Namespace key,
or a single instance of those types.
@param site: Site for generator results; mandatory if
namespaces contains namespace names. Defaults to the default site.
@@ -1598,14 +1584,13 @@
@deprecated_args(ignoreList='ignore_list')
-def PageTitleFilterPageGenerator(generator, ignore_list):
+def PageTitleFilterPageGenerator(generator, ignore_list: dict):
"""
Yield only those pages are not listed in the ignore list.
@param ignore_list: family names are mapped to dictionaries in which
language codes are mapped to lists of page titles. Each title must
be a valid regex as they are compared using L{re.search}.
- @type ignore_list: dict
"""
def is_ignored(page):
@@ -1623,16 +1608,14 @@
yield page
-def RedirectFilterPageGenerator(generator, no_redirects=True,
- show_filtered=False):
+def RedirectFilterPageGenerator(generator, no_redirects: bool = True,
+ show_filtered: bool = False):
"""
Yield pages from another generator that are redirects or not.
@param no_redirects: Exclude redirects if True, else only include
redirects.
- @param no_redirects: bool
@param show_filtered: Output a message for each page not yielded
- @type show_filtered: bool
"""
for page in generator or []:
if no_redirects:
@@ -1692,20 +1675,19 @@
return False
@classmethod
- def filter(cls, generator, prop, claim, qualifiers=None, negate=False):
+ def filter(cls, generator, prop: str, claim,
+ qualifiers: Optional[dict] = None,
+ negate: bool = False):
"""
Yield all ItemPages which contain certain claim in a property.
@param prop: property id to check
- @type prop: str
@param claim: value of the property to check. Can be exact value (for
instance, ItemPage instance) or a string (e.g. 'Q37470').
@param qualifiers: dict of qualifiers that must be present, or None if
qualifiers are irrelevant
- @type qualifiers: dict or None
@param negate: true if pages that do *not* contain specified claim
should be yielded, false otherwise
- @type negate: bool
"""
for page in generator:
if cls.__filter_match(page, prop, claim, qualifiers) is not negate:
@@ -1716,7 +1698,8 @@
ItemClaimFilterPageGenerator = ItemClaimFilter.filter
-def SubpageFilterGenerator(generator, max_depth=0, show_filtered=False):
+def SubpageFilterGenerator(generator, max_depth: int = 0,
+ show_filtered: bool = False):
"""
Generator which filters out subpages based on depth.
@@ -1726,9 +1709,7 @@
@param generator: A generator object
@type generator: any generator or iterator
@param max_depth: Max depth of subpages to yield, at least zero
- @type max_depth: int
@param show_filtered: Output a message for each page not yielded
- @type show_filtered: bool
"""
assert max_depth >= 0, 'Max subpage depth must be at least 0'
@@ -1824,7 +1805,7 @@
if cls.__filter_match(reg, page.text, quantifier))
-def QualityFilterPageGenerator(generator, quality):
+def QualityFilterPageGenerator(generator, quality: List[int]):
"""
Wrap a generator to filter pages according to quality levels.
@@ -1833,7 +1814,6 @@
@param generator: A generator object
@param quality: proofread-page quality levels (valid range 0-4)
- @type quality: list of int
"""
for page in generator:
@@ -1934,8 +1914,10 @@
yield page
-def UserEditFilterGenerator(generator, username, timestamp=None, skip=False,
- max_revision_depth=None, show_filtered=False):
+def UserEditFilterGenerator(generator, username: str, timestamp=None,
+ skip: bool = False,
+ max_revision_depth: Optional[int] = None,
+ show_filtered: bool = False):
"""
Generator which will yield Pages modified by username.
@@ -1947,16 +1929,12 @@
@param generator: A generator object
@param username: user name which edited the page
- @type username: str
@param timestamp: ignore edits which are older than this timestamp
@type timestamp: datetime or str (MediaWiki format JJJJMMDDhhmmss) or None
@param skip: Ignore pages edited by the given user
- @type skip: bool
@param max_revision_depth: It only looks at the last editors given by
max_revision_depth
- @type max_revision_depth: int or None
@param show_filtered: Output a message for each page not yielded
- @type show_filtered: bool
"""
ts = None
if timestamp:
@@ -2012,7 +1990,7 @@
@deprecated('LiveRCPageGenerator or EventStreams', since='20180415')
def RepeatingGenerator(generator, key_func=lambda x: x, sleep_duration=60,
- total=None, **kwargs):
+ total: Optional[int] = None, **kwargs):
"""Yield items in live time.
The provided generator must support parameter 'start', 'end',
@@ -2037,7 +2015,6 @@
@param sleep_duration: duration between each query
@param total: if it is a positive number, iterate no more than this
number of items in total. Otherwise, iterate forever
- @type total: int or None
@return: a generator yielding items in ascending order by time
"""
kwargs.pop('reverse', None) # always get newest item first
@@ -2062,13 +2039,12 @@
@deprecated_args(pageNumber='groupsize', step='groupsize', lookahead=None)
-def PreloadingGenerator(generator, groupsize=50):
+def PreloadingGenerator(generator, groupsize: int = 50):
"""
Yield preloaded pages taken from another generator.
@param generator: pages to iterate over
@param groupsize: how many pages to preload at once
- @type groupsize: int
"""
# pages may be on more than one site, for example if an interwiki
# generator is used, so use a separate preloader for each site
@@ -2102,7 +2078,7 @@
@deprecated_args(step='groupsize')
-def PreloadingEntityGenerator(generator, groupsize=50):
+def PreloadingEntityGenerator(generator, groupsize: int = 50):
"""
Yield preloaded pages taken from another generator.
@@ -2111,7 +2087,6 @@
@param generator: pages to iterate over
@type generator: Iterable
@param groupsize: how many pages to preload at once
- @type groupsize: int
"""
sites = {}
for page in generator:
@@ -2130,12 +2105,11 @@
@deprecated_args(number='total', step=None, repeat=None)
-def NewimagesPageGenerator(total=None, site=None):
+def NewimagesPageGenerator(total: Optional[int] = None, site=None):
"""
New file generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2166,8 +2140,8 @@
yield pywikibot.ItemPage.fromPage(page)
-def WikibaseItemFilterPageGenerator(generator, has_item=True,
- show_filtered=False):
+def WikibaseItemFilterPageGenerator(generator, has_item: bool = True,
+ show_filtered: bool = False):
"""
A wrapper generator used to exclude if page has a wikibase item or not.
@@ -2175,9 +2149,7 @@
@type generator: generator
@param has_item: Exclude pages without an item if True, or only
include pages without an item if False
- @type has_item: bool
@param show_filtered: Output a message for each page not yielded
- @type show_filtered: bool
@return: Wrapped generator
@rtype: generator
"""
@@ -2205,12 +2177,12 @@
@deprecated('Site.unusedfiles()', since='20200515')
@deprecated_args(extension=None, number='total', repeat=None)
-def UnusedFilesGenerator(total=None, site=None): # pragma: no cover
+def UnusedFilesGenerator(total: Optional[int] = None,
+ site=None): # pragma: no cover
"""
DEPRECATED. Unused files generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2236,12 +2208,12 @@
@deprecated('Site.uncategorizedcategories()', since='20200515')
@deprecated_args(number='total', repeat=None)
-def UnCategorizedCategoryGenerator(total=100, site=None): # pragma: no cover
+def UnCategorizedCategoryGenerator(total: Optional[int] = 100,
+ site=None): # pragma: no cover
"""
DEPRECATED. Uncategorized category generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2252,12 +2224,12 @@
@deprecated('Site.uncategorizedimages()', since='20200515')
@deprecated_args(number='total', repeat=None)
-def UnCategorizedImageGenerator(total=100, site=None): # pragma: no cover
+def UnCategorizedImageGenerator(total: int = 100,
+ site=None): # pragma: no cover
"""
DEPRECATED. Uncategorized file generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2268,12 +2240,12 @@
@deprecated('Site.uncategorizedpages()', since='20200515')
@deprecated_args(number='total', repeat=None)
-def UnCategorizedPageGenerator(total=100, site=None): # pragma: no cover
+def UnCategorizedPageGenerator(total: int = 100,
+ site=None): # pragma: no cover
"""
DEPRECATED. Uncategorized page generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2284,12 +2256,12 @@
@deprecated('Site.uncategorizedtemplates()', since='20200515')
@deprecated_args(number='total', repeat=None)
-def UnCategorizedTemplateGenerator(total=100, site=None): # pragma: no cover
+def UnCategorizedTemplateGenerator(total: int = 100,
+ site=None): # pragma: no cover
"""
DEPRECATED. Uncategorized template generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2300,12 +2272,12 @@
@deprecated('Site.lonelypages()', since='20200515')
@deprecated_args(number='total', repeat=None)
-def LonelyPagesPageGenerator(total=None, site=None): # pragma: no cover
+def LonelyPagesPageGenerator(total: Optional[int] = None,
+ site=None): # pragma: no cover
"""
DEPRECATED. Lonely page generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2316,12 +2288,12 @@
@deprecated('Site.unwatchedpages()', since='20200515')
@deprecated_args(number='total', repeat=None)
-def UnwatchedPagesPageGenerator(total=None, site=None): # pragma: no cover
+def UnwatchedPagesPageGenerator(total: Optional[int] = None,
+ site=None): # pragma: no cover
"""
DEPRECATED. Unwatched page generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2331,15 +2303,13 @@
@deprecated('Site.pages_with_property()', since='20200515')
-def page_with_property_generator(name, total=None,
+def page_with_property_generator(name: str, total: Optional[int] = None,
site=None): # pragma: no cover
"""
Special:PagesWithProperty page generator.
@param name: Property name of pages to be retrieved
- @type name: str
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2349,12 +2319,11 @@
@deprecated('Site.wantedpages', since='20180803')
-def WantedPagesPageGenerator(total=100, site=None): # pragma: no cover
+def WantedPagesPageGenerator(total: int = 100, site=None): # pragma: no cover
"""
Wanted page generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2364,12 +2333,11 @@
@deprecated_args(number='total', repeat=None)
-def AncientPagesPageGenerator(total=100, site=None): # pragma: no cover
+def AncientPagesPageGenerator(total: int = 100, site=None): # pragma: no cover
"""
Ancient page generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2380,12 +2348,11 @@
@deprecated('Site.deadendpages()', since='20200515')
@deprecated_args(number='total', repeat=None)
-def DeadendPagesPageGenerator(total=100, site=None): # pragma: no cover
+def DeadendPagesPageGenerator(total: int = 100, site=None): # pragma: no cover
"""
DEPRECATED. Dead-end page generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2395,12 +2362,11 @@
@deprecated_args(number='total', repeat=None)
-def LongPagesPageGenerator(total=100, site=None):
+def LongPagesPageGenerator(total: int = 100, site=None):
"""
Long page generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2410,12 +2376,11 @@
@deprecated_args(number='total', repeat=None)
-def ShortPagesPageGenerator(total=100, site=None):
+def ShortPagesPageGenerator(total: int = 100, site=None):
"""
Short page generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2426,13 +2391,12 @@
@deprecated('Site.randompages()', since='20200515')
@deprecated_args(number='total')
-def RandomPageGenerator(total=None, site=None,
+def RandomPageGenerator(total: Optional[int] = None, site=None,
namespaces=None): # pragma: no cover
"""
DEPRECATED. Random page generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2443,13 +2407,12 @@
@deprecated('Site.randompages()', since='20200515')
@deprecated_args(number='total')
-def RandomRedirectPageGenerator(total=None, site=None,
+def RandomRedirectPageGenerator(total: Optional[int] = None, site=None,
namespaces=None): # pragma: no cover
"""
DEPRECATED. Random redirect generator.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2461,23 +2424,20 @@
@deprecated('Site.exturlusage()', since='20200515')
@deprecated_args(link='url', euprotocol='protocol', step=None)
-def LinksearchPageGenerator(url, namespaces=None, total=None,
- site=None, protocol=None):
+def LinksearchPageGenerator(url: str, namespaces: List[int] = None,
+ total: Optional[int] = None, site=None,
+ protocol: Optional[str] = None):
"""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
- @type url: str
@param namespaces: list of namespace numbers to fetch contribs from
- @type namespaces: list of int
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results
@type site: L{pywikibot.site.BaseSite}
@param protocol: Protocol to search for, likely http or https, http by
default. Full list shown on Special:LinkSearch wikipage
- @type protocol: str
"""
if site is None:
site = pywikibot.Site()
@@ -2487,13 +2447,12 @@
@deprecated('Site.search()', since='20200515')
@deprecated_args(number='total', step=None)
-def SearchPageGenerator(query, total=None, namespaces=None,
+def SearchPageGenerator(query, total: Optional[int] = None, namespaces=None,
site=None): # pragma: no cover
"""
DEPRECATED. Yield pages from the MediaWiki internal search engine.
@param total: Maximum number of pages to retrieve in total
- @type total: int
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
@@ -2502,7 +2461,7 @@
return site.search(query, total=total, namespaces=namespaces)
-def LiveRCPageGenerator(site=None, total=None):
+def LiveRCPageGenerator(site=None, total: Optional[int] = None):
"""
Yield pages from a socket.io RC stream.
@@ -2516,7 +2475,6 @@
@param site: site to return recent changes for
@type site: pywikibot.BaseSite
@param total: the maximum number of changes to return
- @type total: int
"""
if site is None:
site = pywikibot.Site()
@@ -2678,7 +2636,8 @@
"""
@deprecated_args(xmlFilename='filename', xmlStart='start')
- def __init__(self, filename, start=None, namespaces=None, site=None,
+ def __init__(self, filename: str, start: Optional[str] = None,
+ namespaces=None, site=None,
text_predicate=None):
"""Initializer."""
self.text_predicate = text_predicate
@@ -2756,14 +2715,14 @@
@deprecated_args(startMonth='start_month', endMonth='end_month')
-def DayPageGenerator(start_month=1, end_month=12, site=None, year=2000):
+def DayPageGenerator(start_month: int = 1, end_month: int = 12,
+ site=None, year: int = 2000):
"""
Day page generator.
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
@param year: considering leap year.
- @type year: int
"""
if site is None:
site = pywikibot.Site()
@@ -2801,20 +2760,19 @@
yield pywikibot.Page(site, sitelink)
-def WikidataSPARQLPageGenerator(query, site=None,
- item_name='item', endpoint=None,
- entity_url=None, result_type=set):
+def WikidataSPARQLPageGenerator(query,
+ site=None, item_name: str = 'item',
+ endpoint: Optional[str] = None,
+ entity_url: Optional[str] = None,
+ result_type=set):
"""Generate pages that result from the given SPARQL query.
@param query: the SPARQL query string.
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
@param item_name: name of the item in the SPARQL query
- @type item_name: str
@param endpoint: SPARQL endpoint URL
- @type endpoint: str
@param entity_url: URL prefix for any entities returned in a query.
- @type entity_url: str
@param result_type: type of the iterable in which
SPARQL results are stored (default set)
@type result_type: iterable
@@ -2839,20 +2797,17 @@
return WikidataPageFromItemGenerator(entities, site)
-def WikibaseSearchItemPageGenerator(
- text, language=None, total=None, site=None
-):
+def WikibaseSearchItemPageGenerator(text: str,
+ language: Optional[str] = None,
+ total: Optional[int] = None, site=None):
"""
Generate pages that contain the provided text.
@param text: Text to look for.
- @type text: str
@param language: Code of the language to search in. If not specified,
value from pywikibot.config.data_lang is used.
- @type language: str
@param total: Maximum number of pages to retrieve in total, or None in
case of no limit.
- @type total: int or None
@param site: Site for generator results.
@type site: L{pywikibot.site.BaseSite}
"""
diff --git a/pywikibot/proofreadpage.py b/pywikibot/proofreadpage.py
index 3f6ba26..e878859 100644
--- a/pywikibot/proofreadpage.py
+++ b/pywikibot/proofreadpage.py
@@ -32,6 +32,7 @@
from functools import partial
from requests.exceptions import ReadTimeout
+from typing import Optional
try:
from bs4 import BeautifulSoup
@@ -438,14 +439,13 @@
return self._text
@text.setter
- def text(self, value):
+ def text(self, value: str):
"""Update current text.
Mainly for use within the class, called by other methods.
Use self.header, self.body and self.footer to set page content,
@param value: New value or None
- @param value: basestring
@raise Error: the page is not formatted according to ProofreadPage
extension.
@@ -968,24 +968,21 @@
"""
return len(self._page_from_numbers)
- def page_gen(self, start=1, end=None, filter_ql=None,
- only_existing=False, content=True):
+ def page_gen(self, start: Optional[int] = 1,
+ end: Optional[int] = None, filter_ql=None,
+ only_existing: bool = False, content: bool = True):
"""Return a page generator which yields pages contained in Index page.
Range is [start ... end], extremes included.
@param start: first page, defaults to 1
- @type start: int
@param end: num_pages if end is None
- @type end: int
@param filter_ql: filters quality levels
if None: all but 'Without Text'.
@type filter_ql: list of ints (corresponding to ql constants
defined in ProofreadPage).
@param only_existing: yields only existing pages.
- @type only_existing: bool
@param content: preload content.
- @type content: bool
"""
if end is None:
end = self.num_pages
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/634327
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: If6a9cfdddfd1c75fa78bf4181c1eb59951b7c683
Gerrit-Change-Number: 634327
Gerrit-PatchSet: 8
Gerrit-Owner: Udoka <[email protected]>
Gerrit-Reviewer: Reviewer-bot <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits