Xqt submitted this change.

View Change


Approvals: Xqt: Verified; Looks good to me, approved
[8.6] Publish Pywikibot 8.6

Change-Id: Ifced81b52e611696ff090cf6a03ca132979350da
---
M pywikibot/families/wikisource_family.py
M pywikibot/families/wikibooks_family.py
M ROADMAP.rst
M pywikibot/__metadata__.py
M pywikibot/site/_extensions.py
M pywikibot/page/_filepage.py
M pywikibot/site/_apisite.py
M pywikibot/families/wikiquote_family.py
M pywikibot/families/wiktionary_family.py
M pywikibot/proofreadpage.py
M pywikibot/families/wikipedia_family.py
11 files changed, 78 insertions(+), 41 deletions(-)

diff --git a/ROADMAP.rst b/ROADMAP.rst
index 6a7131d..23093c8 100644
--- a/ROADMAP.rst
+++ b/ROADMAP.rst
@@ -1,7 +1,14 @@
Current release
---------------

-* **Python 3.6 support will be discontinued soon**.
+* Lazy load imageinfo metadata (:phab:`T253591`)
+* Fetch URL of page scan via :api:`imageforpage` in :mod:`proofreadpage` module
+ (:phab:`T114318`, :phab:`T181913`, :phab:`T352524`)
+* Sort page names before loading pages in :mod:`proofreadpage` module
+* L10N and i18n updates
+* check for valid family and site option after ``-help`` is processed (:phab:`T350756`)
+* Handle canary events in comms.eventstreams (:phab:`T350756`)
+* **Python 3.6 support will be discontinued** and this is the last version supporting it.


Deprecations
diff --git a/pywikibot/__metadata__.py b/pywikibot/__metadata__.py
index b385c6f..9fac5d4 100644
--- a/pywikibot/__metadata__.py
+++ b/pywikibot/__metadata__.py
@@ -11,7 +11,7 @@


__name__ = 'pywikibot'
-__version__ = '8.6.0.dev0'
+__version__ = '8.6.0'
__description__ = 'Python MediaWiki Bot Framework'
__maintainer__ = 'The Pywikibot team'
__maintainer_email__ = 'pywikibot@lists.wikimedia.org'
diff --git a/pywikibot/families/wikibooks_family.py b/pywikibot/families/wikibooks_family.py
index 1c8f52f..6db197c 100644
--- a/pywikibot/families/wikibooks_family.py
+++ b/pywikibot/families/wikibooks_family.py
@@ -30,12 +30,12 @@

languages_by_size = [
'en', 'vi', 'hu', 'de', 'fr', 'it', 'ja', 'pt', 'es', 'nl', 'pl', 'id',
- 'he', 'fi', 'zh', 'fa', 'az', 'ru', 'sq', 'lt', 'ca', 'eu', 'th', 'cs',
+ 'he', 'fi', 'zh', 'az', 'fa', 'ru', 'sq', 'lt', 'ca', 'eu', 'th', 'cs',
'da', 'ko', 'hi', 'ba', 'sv', 'gl', 'uk', 'sr', 'hr', 'no', 'tr', 'sa',
- 'ar', 'ta', 'bn', 'eo', 'is', 'sk', 'si', 'ro', 'bg', 'ms', 'mk', 'ka',
+ 'ar', 'ta', 'bn', 'eo', 'si', 'is', 'sk', 'ro', 'bg', 'ms', 'mk', 'ka',
'tt', 'el', 'li', 'sl', 'tl', 'ur', 'km', 'la', 'mr', 'kk', 'te',
'shn', 'et', 'be', 'ia', 'ml', 'oc', 'ne', 'pa', 'hy', 'cv', 'tg',
- 'ku', 'fy', 'af', 'bs', 'mg', 'cy', 'ky',
+ 'ku', 'fy', 'af', 'bs', 'cy', 'mg', 'ky',
]

category_redirect_templates = {
diff --git a/pywikibot/families/wikipedia_family.py b/pywikibot/families/wikipedia_family.py
index dfedfd2..0fa7395 100644
--- a/pywikibot/families/wikipedia_family.py
+++ b/pywikibot/families/wikipedia_family.py
@@ -30,33 +30,33 @@
'ja', 'zh', 'uk', 'vi', 'war', 'ar', 'pt', 'fa', 'ca', 'sr', 'id',
'ko', 'no', 'ce', 'fi', 'tr', 'cs', 'hu', 'tt', 'sh', 'ro',
'zh-min-nan', 'eu', 'ms', 'eo', 'he', 'hy', 'da', 'bg', 'cy', 'uz',
- 'sk', 'azb', 'simple', 'et', 'be', 'kk', 'el', 'min', 'hr', 'lt', 'gl',
- 'ur', 'az', 'sl', 'lld', 'ka', 'nn', 'th', 'ta', 'hi', 'bn', 'mk',
+ 'sk', 'simple', 'azb', 'et', 'be', 'kk', 'el', 'min', 'hr', 'lt', 'gl',
+ 'ur', 'az', 'sl', 'lld', 'ka', 'nn', 'ta', 'th', 'hi', 'bn', 'mk',
'la', 'zh-yue', 'ast', 'lv', 'af', 'tg', 'my', 'mg', 'sq', 'mr', 'bs',
- 'oc', 'te', 'br', 'ml', 'be-tarask', 'nds', 'ky', 'sw', 'lmo', 'jv',
+ 'oc', 'te', 'br', 'ml', 'be-tarask', 'nds', 'sw', 'ky', 'lmo', 'jv',
'new', 'pnb', 'ku', 'vec', 'ht', 'pms', 'ba', 'lb', 'su', 'ga', 'is',
'szl', 'fy', 'ckb', 'cv', 'pa', 'tl', 'an', 'wuu', 'io', 'diq', 'vo',
'sco', 'yo', 'ha', 'ne', 'kn', 'ia', 'gu', 'als', 'avk', 'crh', 'bar',
- 'scn', 'bpy', 'qu', 'mn', 'nv', 'ig', 'ban', 'xmf', 'si', 'frr', 'tum',
- 'mzn', 'ps', 'os', 'or', 'bat-smg', 'sah', 'cdo', 'gd', 'bcl', 'bug',
+ 'scn', 'bpy', 'qu', 'mn', 'ig', 'nv', 'ban', 'xmf', 'si', 'frr', 'mzn',
+ 'tum', 'ps', 'os', 'or', 'bat-smg', 'sah', 'cdo', 'bcl', 'gd', 'bug',
'sd', 'yi', 'ilo', 'am', 'li', 'nap', 'gor', 'fo', 'mai', 'hsb',
'map-bms', 'shn', 'eml', 'ace', 'zh-classical', 'as', 'sa', 'wa', 'ie',
'hyw', 'sn', 'mhr', 'lij', 'zu', 'hif', 'bjn', 'mrj', 'km', 'mni',
- 'hak', 'sat', 'pam', 'ary', 'roa-tara', 'rue', 'bh', 'nso', 'dag',
- 'so', 'co', 'mi', 'nds-nl', 'vls', 'myv', 'se', 'sc', 'bo', 'kw',
- 'vep', 'glk', 'tk', 'kab', 'gan', 'rw', 'fiu-vro', 'gv', 'zea', 'ab',
- 'ug', 'nah', 'skr', 'mt', 'frp', 'tly', 'udm', 'pcd', 'kv', 'gn',
+ 'hak', 'sat', 'ary', 'roa-tara', 'pam', 'rue', 'bh', 'nso', 'dag',
+ 'co', 'so', 'vls', 'mi', 'nds-nl', 'myv', 'se', 'sc', 'bo', 'vep',
+ 'kw', 'glk', 'tk', 'kab', 'gan', 'rw', 'fiu-vro', 'gv', 'zea', 'ab',
+ 'ug', 'nah', 'mt', 'skr', 'frp', 'tly', 'udm', 'pcd', 'gn', 'kv',
'csb', 'smn', 'ay', 'nrm', 'ks', 'lez', 'olo', 'mwl', 'lfn', 'mdf',
- 'stq', 'ang', 'kaa', 'lo', 'fur', 'rm', 'lad', 'ext', 'gom', 'pap',
- 'tw', 'tyv', 'koi', 'av', 'ln', 'dsb', 'cbk-zam', 'dty', 'dv', 'ksh',
+ 'kaa', 'stq', 'ang', 'lo', 'fur', 'rm', 'ext', 'lad', 'tw', 'gom',
+ 'pap', 'tyv', 'koi', 'av', 'ln', 'dsb', 'dty', 'cbk-zam', 'dv', 'ksh',
'lg', 'za', 'gag', 'bxr', 'pfl', 'szy', 'blk', 'tay', 'pag', 'pi',
'haw', 'awa', 'inh', 'krc', 'pdc', 'to', 'atj', 'tcy', 'arc', 'mnw',
- 'xal', 'shi', 'jam', 'kbp', 'ff', 'wo', 'xh', 'nia', 'anp', 'om',
+ 'shi', 'xal', 'ff', 'jam', 'kbp', 'xh', 'wo', 'nia', 'anp', 'om',
'kbd', 'nov', 'ki', 'nqo', 'bi', 'tpi', 'tet', 'roa-rup', 'jbo', 'tn',
- 'fj', 'kg', 'lbe', 'guw', 'ty', 'cu', 'rmy', 'trv', 'ami', 'mad',
- 'srn', 'sm', 'alt', 'ltg', 'gcr', 'chr', 'ny', 'zgh', 'pcm', 'dga',
- 'st', 'gpe', 'pih', 'got', 'ss', 'kcg', 'gur', 'ee', 'bm', 'ts', 've',
- 'bbc', 'chy', 'rn', 'ik', 'ch', 'ady', 'fon', 'guc', 'fat', 'pnt',
+ 'fj', 'zgh', 'kg', 'lbe', 'guw', 'ty', 'cu', 'rmy', 'trv', 'mad',
+ 'ami', 'srn', 'alt', 'sm', 'ltg', 'gcr', 'chr', 'ny', 'pcm', 'dga',
+ 'st', 'gpe', 'pih', 'kcg', 'got', 'ss', 'gur', 'ee', 'bm', 'ts', 've',
+ 'bbc', 'chy', 'rn', 'ik', 'fon', 'ch', 'ady', 'guc', 'fat', 'pnt',
'iu', 'pwn', 'sg', 'din', 'ti', 'kl', 'dz', 'cr',
]

diff --git a/pywikibot/families/wikiquote_family.py b/pywikibot/families/wikiquote_family.py
index df49e6b..e6a8345 100644
--- a/pywikibot/families/wikiquote_family.py
+++ b/pywikibot/families/wikiquote_family.py
@@ -30,8 +30,8 @@
'it', 'en', 'pl', 'ru', 'cs', 'et', 'pt', 'uk', 'fa', 'he', 'fr', 'de',
'es', 'tr', 'eo', 'sk', 'az', 'bs', 'ca', 'zh', 'sr', 'fi', 'lt', 'sl',
'ar', 'id', 'su', 'bg', 'hy', 'hr', 'el', 'nn', 'sv', 'li', 'hu', 'ko',
- 'sah', 'nl', 'ja', 'la', 'ta', 'ig', 'hi', 'as', 'gl', 'gu', 'ur',
- 'bjn', 'tl', 'guw', 'te', 'be', 'vi', 'bn', 'cy', 'no', 'sq', 'ml',
+ 'nl', 'sah', 'ja', 'la', 'ta', 'ig', 'hi', 'as', 'gl', 'gu', 'bn',
+ 'ur', 'te', 'bjn', 'tl', 'guw', 'vi', 'be', 'cy', 'no', 'sq', 'ml',
'kn', 'eu', 'ro', 'ku', 'uz', 'ka', 'da', 'th', 'sa', 'is', 'bcl',
'br', 'mr', 'af', 'ky',
]
diff --git a/pywikibot/families/wikisource_family.py b/pywikibot/families/wikisource_family.py
index 1ca8fae..9361e6a 100644
--- a/pywikibot/families/wikisource_family.py
+++ b/pywikibot/families/wikisource_family.py
@@ -27,9 +27,9 @@
languages_by_size = [
'pl', 'en', 'ru', 'de', 'fr', 'zh', 'he', 'uk', 'it', 'ar', 'es',
'mul', 'gu', 'cs', 'sr', 'pt', 'bn', 'sv', 'fa', 'ko', 'ta', 'hu',
- 'ml', 'sa', 'te', 'be', 'tr', 'sl', 'la', 'vi', 'hy', 'nl', 'el', 'ja',
- 'ro', 'fi', 'nap', 'az', 'ca', 'hr', 'br', 'id', 'th', 'no', 'kn',
- 'hi', 'cy', 'vec', 'is', 'eo', 'mr', 'ban', 'pms', 'lij', 'da', 'et',
+ 'ml', 'sa', 'be', 'te', 'tr', 'sl', 'la', 'vi', 'hy', 'nl', 'el', 'ja',
+ 'ro', 'fi', 'nap', 'az', 'ca', 'br', 'hr', 'id', 'th', 'no', 'kn',
+ 'hi', 'cy', 'vec', 'eo', 'is', 'mr', 'ban', 'pms', 'lij', 'da', 'et',
'as', 'mk', 'yi', 'bg', 'jv', 'wa', 'li', 'lt', 'pa', 'or', 'eu', 'gl',
'bs', 'sah', 'sk', 'su', 'zh-min-nan', 'fo',
]
diff --git a/pywikibot/families/wiktionary_family.py b/pywikibot/families/wiktionary_family.py
index 330346d..7c00c14 100644
--- a/pywikibot/families/wiktionary_family.py
+++ b/pywikibot/families/wiktionary_family.py
@@ -33,18 +33,18 @@

languages_by_size = [
'en', 'fr', 'mg', 'zh', 'el', 'ru', 'de', 'ku', 'es', 'sh', 'sv', 'nl',
- 'pl', 'lt', 'ca', 'hu', 'it', 'fi', 'pt', 'ta', 'tr', 'ja', 'io', 'hy',
+ 'pl', 'lt', 'hu', 'ca', 'it', 'fi', 'pt', 'ta', 'ja', 'tr', 'io', 'hy',
'ko', 'kn', 'vi', 'sr', 'th', 'hi', 'ro', 'id', 'no', 'et', 'skr',
'cs', 'ml', 'my', 'uz', 'li', 'eo', 'or', 'te', 'fa', 'gl', 'sg', 'oc',
- 'ar', 'jv', 'is', 'az', 'uk', 'ast', 'eu', 'br', 'bn', 'mnw', 'da',
+ 'ar', 'jv', 'is', 'az', 'uk', 'ast', 'eu', 'bn', 'br', 'mnw', 'da',
'simple', 'lo', 'la', 'shn', 'hr', 'sk', 'fj', 'wa', 'ky', 'lmo', 'bg',
'ur', 'cy', 'kbd', 'ps', 'tg', 'he', 'vo', 'om', 'sl', 'af',
'zh-min-nan', 'ms', 'scn', 'tl', 'pa', 'fy', 'sw', 'kk', 'ka', 'nn',
'min', 'lv', 'nds', 'gor', 'sq', 'lb', 'bs', 'co', 'mn', 'pnb', 'nah',
'yue', 'ckb', 'diq', 'sa', 'km', 'be', 'vec', 'nia', 'tk', 'mk', 'sm',
'hsb', 'ks', 'shy', 'bcl', 'su', 'ga', 'btm', 'gd', 'an', 'gom', 'mr',
- 'ha', 'wo', 'mni', 'ia', 'bjn', 'ang', 'mt', 'blk', 'tt', 'sd', 'fo',
- 'so', 'si', 'gn', 'ie', 'mi', 'csb', 'ug', 'guw', 'st', 'hif', 'jbo',
+ 'ha', 'wo', 'mni', 'ia', 'bjn', 'blk', 'ang', 'mt', 'tt', 'sd', 'so',
+ 'fo', 'si', 'gn', 'ie', 'mi', 'csb', 'ug', 'guw', 'st', 'hif', 'jbo',
'roa-rup', 'kl', 'zu', 'ay', 'ln', 'yi', 'gu', 'kcg', 'na', 'gv', 'kw',
'tpi', 'am', 'ne', 'rw', 'ts', 'ig', 'qu', 'ss', 'iu', 'chr', 'dv',
'ti', 'tn',
diff --git a/pywikibot/page/_filepage.py b/pywikibot/page/_filepage.py
index e95da06..2064d98 100644
--- a/pywikibot/page/_filepage.py
+++ b/pywikibot/page/_filepage.py
@@ -123,6 +123,8 @@
This function will load also metadata.
It is also used as a helper in FileInfo to load metadata lazily.

+ .. versionadded:: 8.6
+
:param ts: timestamp of the Image rev. to retrieve

:return: instance of FileInfo()
@@ -467,7 +469,7 @@
.. versionchanged:: 7.7
raises KeyError instead of AttributeError if FileInfo is used as
Mapping.
- .. versionchanged:: 8.6.0
+ .. versionchanged:: 8.6
Metadata are loaded lazily.
Added *filepage* parameter.
"""
@@ -479,7 +481,10 @@
self.update(file_revision)

def update(self, file_revision):
- """Update FileInfo with new values."""
+ """Update FileInfo with new values.
+
+ .. versionadded:: 8.6
+ """
for k, v in file_revision.items():
if k == 'timestamp':
v = pywikibot.Timestamp.fromISOformat(v)
@@ -503,12 +508,18 @@

@property
def metadata(self):
- """Return metadata."""
+ """Return metadata.
+
+ .. versionadded:: 8.6
+ """
if self._metadata is None:
self.filepage.get_file_info(self.timestamp)
return self._metadata

@metadata.setter
def metadata(self, value):
- """Set metadata."""
+ """Set metadata.
+
+ .. versionadded:: 8.6
+ """
self._metadata = value
diff --git a/pywikibot/proofreadpage.py b/pywikibot/proofreadpage.py
index 7157316..6b49b68 100644
--- a/pywikibot/proofreadpage.py
+++ b/pywikibot/proofreadpage.py
@@ -825,9 +825,11 @@
"""
return f'/* {self.status} */ '

- def __url_image_lt_140(self) -> str:
+ def _url_image_lt_140(self) -> str:
"""Get the file url of the scan of ProofreadPage.

+ .. versionadded:: 8.6
+
:return: file url of the scan ProofreadPage or None.

:raises Exception: in case of http errors
@@ -862,9 +864,11 @@

return url_image

- def __url_image(self) -> str:
+ def _url_image_ge_140(self) -> str:
"""Get the file url of the scan of ProofreadPage.

+ .. versionadded:: 8.6
+
:return: file url of the scan of ProofreadPage or None.
:raises ValueError: in case of no image found for scan
"""
@@ -888,9 +892,9 @@
:raises ValueError: in case of no prp_page_image src found for scan
"""
if self.site.version() < MediaWikiVersion('1.40'):
- return self.__url_image_lt_140()
- else:
- return self.__url_image()
+ return self._url_image_lt_140()
+
+ return self._url_image_ge_140()

def _ocr_callback(self, cmd_uri: str,
parser_func: Optional[Callable[[str], str]] = None,
@@ -1322,6 +1326,10 @@

Range is [start ... end], extremes included.

+ .. versionchanged:: 8.6
+ page names are sorted before loading pages.
+
+
:param start: first page, defaults to 1
:param end: num_pages if end is None
:param filter_ql: filters quality levels
diff --git a/pywikibot/site/_apisite.py b/pywikibot/site/_apisite.py
index d3f2652..381626c 100644
--- a/pywikibot/site/_apisite.py
+++ b/pywikibot/site/_apisite.py
@@ -1379,9 +1379,9 @@
API call.
.. versionchanged:: 8.2
*mediatype* and *bitdepth* properties were added.
- .. versionchanged:: 8.6.0
+ .. versionchanged:: 8.6.
Added *timestamp* parameter.
- Metadata are loaded only if history is False.
+ Metadata are loaded only if *history* is False.
.. seealso:: :api:`Imageinfo`

:param history: if true, return the image's version history
diff --git a/pywikibot/site/_extensions.py b/pywikibot/site/_extensions.py
index 4e6977e..4aacd21 100644
--- a/pywikibot/site/_extensions.py
+++ b/pywikibot/site/_extensions.py
@@ -151,6 +151,8 @@
Load URLs to images for a given page in the "Page:" namespace.
No effect for pages in other namespaces.

+ .. versionadded:: 8.6
+
.. seealso:: :api:`imageforpage`
"""
title = page.title(with_section=False)

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

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ifced81b52e611696ff090cf6a03ca132979350da
Gerrit-Change-Number: 980408
Gerrit-PatchSet: 3
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged