jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1310532?usp=email )
Change subject: IMPR: Use JSONDecodeError instead of generic ValueError in api.Requests ......................................................................
IMPR: Use JSONDecodeError instead of generic ValueError in api.Requests
requests.exceptions.JSONDecodeError is a subclass of ValueError. Anyway using ValueError in api.Requests._json_loads might be to broad; use requests.exceptions.JSONDecodeError instead.
Change-Id: I0a4ad4412252ab809f979aca361ffa5943426f57 --- M pywikibot/data/api/_requests.py 1 file changed, 9 insertions(+), 10 deletions(-)
Approvals: jenkins-bot: Verified Xqt: Looks good to me, approved
diff --git a/pywikibot/data/api/_requests.py b/pywikibot/data/api/_requests.py index 129f49e..5c5deda 100644 --- a/pywikibot/data/api/_requests.py +++ b/pywikibot/data/api/_requests.py @@ -20,10 +20,12 @@ from contextlib import suppress from email.mime.nonmultipart import MIMENonMultipart from pathlib import Path -from typing import TYPE_CHECKING, Any, NoReturn +from typing import Any, NoReturn from urllib.parse import unquote, urlencode from warnings import warn
+import requests + import pywikibot from pywikibot import config from pywikibot.comms import http @@ -42,9 +44,6 @@ from pywikibot.tools import deprecated
-if TYPE_CHECKING: - import requests - __all__ = ('CachedRequest', 'Request', 'encode_url')
TEST_RUNNING = os.environ.get('PYWIKIBOT_TEST_RUNNING', '0') == '1' @@ -773,27 +772,27 @@ self.wait() return None, use_get
- def _json_loads(self, response) -> dict | None: + def _json_loads(self, response: requests.Response) -> dict | None: """Return a dict from requests.Response.
.. version-changed:: 8.2 show a warning to add a :meth:`protocol() <family.Family.protocol>` method to the family file if suitable. - .. version-changed:: 11.0 + .. version-removed:: 11.0 The warning about missing or wrong ``protocol()`` method introduced in version 8.2 was removed.
:param response: a requests.Response object - :type response: requests.Response :return: a data dict - :raises pywikibot.exceptions.APIError: unknown action found - :raises pywikibot.exceptions.APIError: unknown query result type + :raises SiteDefinitionError: Invalid :class:`family.AutoFamily` + :raises pywikibot.exceptions.APIError: unknown action found or + unknown query result type
:meta public: """ try: result = response.json() - except ValueError: + except requests.exceptions.JSONDecodeError: # if the result isn't valid JSON, there may be a server problem. # Wait a few seconds and try again. # Show 20 lines of bare text without script parts
pywikibot-commits@lists.wikimedia.org