jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1198323?usp=email )
Change subject: Move Python deprecation warning from pywikibot library to pwb wrapper ......................................................................
Move Python deprecation warning from pywikibot library to pwb wrapper
When Pywikibot is used as a side package, the deprecation warning is not necessary because pip already installs the correct version. Otherwise, the pwb wrapper script is the appropriate place for such a warning, as it serves as the frontend entry point of Pywikibot.
Change-Id: I8818e2a0667e56622084a1f49388c278faa0d876 --- M pwb.py M pywikibot/__init__.py M tests/utils.py 3 files changed, 21 insertions(+), 11 deletions(-)
Approvals: jenkins-bot: Verified Xqt: Looks good to me, approved
diff --git a/pwb.py b/pwb.py index 9c4af3b..07debd3 100755 --- a/pwb.py +++ b/pwb.py @@ -18,6 +18,12 @@
This version of Pywikibot only supports Python 3.8+. """ +DEPRECATED_PYTHON_MESSAGE = """ + +Python {version} will be dropped soon with Pywikibot 11. +It is recommended to use Python 3.9 or above. +See phab: T401802 for further information. +"""
def python_is_supported(): @@ -25,9 +31,21 @@ return sys.version_info[:3] >= (3, 8)
+def python_is_deprecated(): + """Check that Python is deprecated.""" + return sys.version_info[:3] < (3, 9) + + if not python_is_supported(): # pragma: no cover sys.exit(VERSIONS_REQUIRED_MESSAGE.format(version=sys.version))
+if python_is_deprecated(): + import warnings + msg = DEPRECATED_PYTHON_MESSAGE.format( + version=sys.version.split(maxsplit=1)[0]) + warnings.warn(msg, FutureWarning) # adjust this line no in utils.execute() + del warnings +
def main() -> None: """Entry point for :func:`tests.utils.execute_pwb`.""" diff --git a/pywikibot/__init__.py b/pywikibot/__init__.py index 4ddaf22..9b35fde 100644 --- a/pywikibot/__init__.py +++ b/pywikibot/__init__.py @@ -59,7 +59,7 @@ ) from pywikibot.site import BaseSite as _BaseSite from pywikibot.time import Timestamp -from pywikibot.tools import PYTHON_VERSION, normalize_username +from pywikibot.tools import normalize_username
if TYPE_CHECKING: @@ -87,15 +87,6 @@
_sites: dict[str, APISite] = {}
-if PYTHON_VERSION < (3, 9): - __version = sys.version.split(maxsplit=1)[0] - warnings.warn(f""" - - Python {__version} will be dropped soon with Pywikibot 11. - It is recommended to use Python 3.9 or above. - See phab: T401802 for further information. -""", FutureWarning) # adjust warnings.warn line no in utils.execute() -
@cache def _code_fam_from_url(url: str, name: str | None = None) -> tuple[str, str]: diff --git a/tests/utils.py b/tests/utils.py index 870ca14..bba040a 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -476,7 +476,8 @@ :param command: executable to run and arguments to use """ if PYTHON_VERSION < (3, 9): - command.insert(1, '-W ignore::FutureWarning:pywikibot:92') + command.insert(1, '-W ignore::FutureWarning:pwb:46') + command.insert(1, '-W ignore::FutureWarning:__main__:46')
env = os.environ.copy()
pywikibot-commits@lists.wikimedia.org