jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1045815?usp=email )
Change subject: [doc] update ROADMAP.rst and CHANGELOG.rst ......................................................................
[doc] update ROADMAP.rst and CHANGELOG.rst
also update documentation in api.Request
Change-Id: I502ee447ac07f6c6ac118a54f1d0cbbf11a0f225 --- M ROADMAP.rst M pywikibot/data/api/_requests.py M scripts/CHANGELOG.rst 3 files changed, 42 insertions(+), 9 deletions(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/ROADMAP.rst b/ROADMAP.rst index 0f5073b..b244348 100644 --- a/ROADMAP.rst +++ b/ROADMAP.rst @@ -1,6 +1,16 @@ Current Release Changes =======================
+* No longer wait in :meth:`data.api.Request._http_request` for ``ImportError`` and ``NameError`` +* Replace ``requests.utils.urlparse`` with ``urllib.parse.urlparse`` in + :func:`comms.http.get_authentication` (:phab:`T367649`) +* Show an appropiate message if ``requests_oauthlib`` package is required but missing (:phab:`T353387`) +* Retry ``DBUnexpectedError`` in :meth:`data.api.Request._internal_api_error` (:phab:`T367383`) +* Duplicated entries found in :mod:`pywikibot` were removed +* Pass ``None`` instead of an empty string as *expiry* argument in + :meth:`site.APISite.protect()<pywikibot.site._apisite.APISite.protect>` (:phab:`T367176`) +* Fix keyword argument in :meth:`Page.undelete()<page.BasePage.undelete>` when + calling :meth:`site.APISite.undelete()<pywikibot.site._apisite.APISite.undelete>` (:phab:`T367037`) * Check whether :attr:`BaseBot.generator<bot.BaseBot.generator>` is None in :meth:`run()<bot.BaseBot.run>` method * Add *namespaces* parameter to :meth:`Page.templates()<page.BasePage.templates>` and :meth:`Page.itertemplates()<page.BasePage.itertemplates>` and require keyword arguments; @@ -8,10 +18,12 @@ * Drop pheetools support for :mod:`proofreadpage` which is no longer available upstreams (:phab:`T366036`) * Raise :exc:`exceptions.SectionError` if a section does not exists on a page (:phab:`T107141`) * Retry api request on ServerError (:phab:`T364275`, :phab:`T364393`) +* i18n updates
Current Deprecations ====================
+* 9.2.0: Imports of :mod:`logging` functions from :mod:`bot` module is deprecated and will be desupported * 9.2.0: *total* argument in ``-logevents`` pagegenerators option is deprecated; use ``-limit`` instead (:phab:`T128981`) * 9.0.0: The *content* parameter of :meth:`proofreadpage.IndexPage.page_gen` is deprecated and will be ignored diff --git a/pywikibot/data/api/_requests.py b/pywikibot/data/api/_requests.py index b5c4d5c..3a4d770 100644 --- a/pywikibot/data/api/_requests.py +++ b/pywikibot/data/api/_requests.py @@ -675,7 +675,8 @@ no wait cycles for :exc:`ImportError` and :exc:`NameError`.
:return: a tuple containing requests.Response object from - http.request and use_get value + :func:`comms.http.request` and *use_get* value + :meta public: """ kwargs = {} @@ -733,6 +734,8 @@ :return: a data dict :raises pywikibot.exceptions.APIError: unknown action found :raises pywikibot.exceptions.APIError: unknown query result type + + :meta public: """ try: result = response.json() @@ -813,6 +816,8 @@
.. versionchanged:: 7.2 Return True to retry the current request and Falso to resume. + + :meta public: """ retry = False if 'warnings' not in result: @@ -851,6 +856,8 @@ the warning is not handled.
.. versionadded:: 7.2 + + :meta public: """ warnings = { 'purge': ("You've exceeded your rate limit. " @@ -896,7 +903,9 @@ def _internal_api_error(self, code, error, result) -> bool: """Check for ``internal_api_error_`` or readonly and retry.
- :raises pywikibot.exceptions.APIMWError: internal_api_error or readonly + :raises pywikibot.exceptions.APIMWError: internal_api_error or + readonly + :meta public: """ iae = 'internal_api_error_' if not (code.startswith(iae) or code == 'readonly'): @@ -911,13 +920,14 @@ # If the error key is in this table, it is probably a temporary # problem, so we will retry the edit. # TODO: T154011: 'ReadOnlyError' seems replaced by 'readonly' - retry = class_name in ['DBConnectionError', # T64974 - 'DBQueryError', # T60158 - 'DBQueryTimeoutError', # T297708 - 'DBUnexpectedError', # T360930 - 'ReadOnlyError', # T61227 - 'readonly', # T154011 - ] + retry = class_name in [ + 'DBConnectionError', # T64974 + 'DBQueryError', # T60158 + 'DBQueryTimeoutError', # T297708 + 'DBUnexpectedError', # T360930 + 'ReadOnlyError', # T61227 + 'readonly', # T154011 + ]
pywikibot.error('Detected MediaWiki API exception {}{}' .format(e, '; retrying' if retry else '; raising')) @@ -1184,6 +1194,8 @@ remove Python main version from directoy name
:return: base directory path for cache entries + + :meta public: """ path = Path(config.base_dir, 'apicache') cls._make_dir(path) @@ -1203,6 +1215,8 @@
:param dir_name: directory path :return: directory path as `pathlib.Path` object for test purpose + + :meta public: """ if isinstance(dir_name, str): dir_name = Path(dir_name) @@ -1242,6 +1256,8 @@
.. versionchanged:: 8.0 return a `pathlib.Path` object. + + :meta public: """ return CachedRequest._get_cache_dir() / self._create_file_name()
diff --git a/scripts/CHANGELOG.rst b/scripts/CHANGELOG.rst index 608b830..45d2b18 100644 --- a/scripts/CHANGELOG.rst +++ b/scripts/CHANGELOG.rst @@ -11,6 +11,11 @@ * Use transclusions of Information template as default generator * Preload pages to make the script upto 10 times faster
+illustrate_wikidata +^^^^^^^^^^^^^^^^^^^ + +* ``-always`` option is supported + interwikidata ^^^^^^^^^^^^^
pywikibot-commits@lists.wikimedia.org