jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1361125?usp=email )
Change subject: release: prepare next release Pywikibot 12
......................................................................
release: prepare next release Pywikibot 12
Bug: T419515
Change-Id: Ia9c2ad59281ada252ea2e571e8fcae3fbf2c1561
---
M .github/workflows/doctest.yml
M .github/workflows/login_tests-ci.yml
M .github/workflows/oauth_tests-ci.yml
M .github/workflows/pre-commit.yml
M .github/workflows/pywikibot-ci.yml
M .github/workflows/sysop_write_tests-ci.yml
M .github/workflows/windows_tests.yml
M .pre-commit-config.yaml
M HISTORY.rst
M ROADMAP.rst
M dev-requirements.txt
M pwb.py
M pyproject.toml
M pywikibot/__metadata__.py
M pywikibot/diff.py
M pywikibot/scripts/wrapper.py
M scripts/__init__.py
M scripts/harvest_template.py
M scripts/pyproject.toml
M scripts/solve_disambiguation.py
M tox.ini
21 files changed, 124 insertions(+), 127 deletions(-)
Approvals:
jenkins-bot: Verified
Xqt: Looks good to me, approved
diff --git a/.github/workflows/doctest.yml b/.github/workflows/doctest.yml
index f1cb043..c785f15 100644
--- a/.github/workflows/doctest.yml
+++ b/.github/workflows/doctest.yml
@@ -22,7 +22,7 @@
jobs:
build:
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
- timeout-minutes: 15
+ timeout-minutes: 25
strategy:
fail-fast: false
matrix:
@@ -30,7 +30,6 @@
os: [windows-latest, macOS-latest, ubuntu-latest]
include:
- python-version: 3.16-dev
- experimental: true
exclude: # Test already made on Jenkins
- python-version: '3.10'
os: ubuntu-latest
diff --git a/.github/workflows/login_tests-ci.yml
b/.github/workflows/login_tests-ci.yml
index 741e2d1..f27dc6b 100644
--- a/.github/workflows/login_tests-ci.yml
+++ b/.github/workflows/login_tests-ci.yml
@@ -41,38 +41,37 @@
name: Run Login/Logout Tests
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
needs: wait_for_all
- timeout-minutes: 40
+ timeout-minutes: 45
strategy:
fail-fast: false
max-parallel: 1
matrix:
- python-version: [pypy3.9, pypy3.11, '3.9', '3.10', '3.11', '3.12',
'3.13', '3.14', '3.15']
+ python-version: [pypy3.10, pypy3.11, '3.10', '3.11', '3.12', '3.13',
'3.14', '3.15']
site: ['wikipedia:en', 'wikisource:zh', 'wikipedia:test']
include:
- - python-version: '3.9'
+ - python-version: '3.10'
site: betawikipedia:en
os: ubuntu-22.04
- - python-version: '3.9'
+ - python-version: '3.10'
site: betawikipedia:zh
os: ubuntu-22.04
- - python-version: '3.10'
+ - python-version: '3.11'
site: betawikisource:en
- - python-version: '3.9'
+ - python-version: '3.10'
site: wikidata:test
os: ubuntu-22.04
- - python-version: '3.11'
+ - python-version: '3.12'
site: wiktionary:ar
- - python-version: '3.9'
+ - python-version: '3.10'
site: wikidata:wikidata
os: ubuntu-22.04
- - python-version: '3.10'
+ - python-version: '3.11'
site: wowwiki:uk
- python-version: '3'
site: wikipedia:de
os: macOS-latest
- python-version: 3.16-dev
site: wikipedia:test
- experimental: true
steps:
- name: Checkout Repository
uses: actions/checkout@v7
diff --git a/.github/workflows/oauth_tests-ci.yml
b/.github/workflows/oauth_tests-ci.yml
index 1b9beca..f4ebd69 100644
--- a/.github/workflows/oauth_tests-ci.yml
+++ b/.github/workflows/oauth_tests-ci.yml
@@ -27,7 +27,7 @@
strategy:
fail-fast: false
matrix:
- python-version: [pypy3.9, pypy3.11, '3.9', '3.10', '3.11', '3.12',
'3.13', '3.14', '3.15']
+ python-version: [pypy3.10, pypy3.11, '3.10', '3.11', '3.12', '3.13',
'3.14', '3.15']
family: [wikipedia]
code: [test]
domain: [test.wikipedia.org]
@@ -36,12 +36,11 @@
family: wikipedia
code: test
domain: test.wikipedia.org
- experimental: true
- - python-version: '3.9'
+ - python-version: '3.10'
family: betawikipedia
code: en
domain: en.wikipedia.beta.wmcloud.org
- - python-version: '3.9'
+ - python-version: '3.10'
family: betawikipedia
code: zh
domain: zh.wikipedia.beta.wmcloud.org
diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml
index 5cbb8fc..2c8e948 100644
--- a/.github/workflows/pre-commit.yml
+++ b/.github/workflows/pre-commit.yml
@@ -22,11 +22,11 @@
pre-commit:
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
continue-on-error: ${{ matrix.experimental || false }}
- timeout-minutes: 9
+ timeout-minutes: 15
strategy:
fail-fast: false
matrix:
- python-version: ['3.10', '3.13', '3.14', '3.15']
+ python-version: ['3.11', '3.13', '3.14', '3.15']
os: [windows-latest, macOS-latest]
include:
- python-version: '3.13'
diff --git a/.github/workflows/pywikibot-ci.yml
b/.github/workflows/pywikibot-ci.yml
index 7e7aeb7..2eec49f 100644
--- a/.github/workflows/pywikibot-ci.yml
+++ b/.github/workflows/pywikibot-ci.yml
@@ -29,35 +29,25 @@
strategy:
fail-fast: false
matrix:
- python-version:
- - pypy3.9
- - pypy3.10
- - pypy3.11
- - '3.9'
- - '3.10'
- - '3.11'
- - '3.12'
- - '3.13'
- - '3.14'
- - '3.15'
+ python-version: [pypy3.10, pypy3.11, '3.10', '3.11', '3.12', '3.13',
'3.14', '3.15']
site: ['wikipedia:en', 'wikisource:zh']
include:
- - python-version: '3.9'
- site: wikipedia:test
- - python-version: '3.9'
- site: betawikipedia:en
- - python-version: '3.9'
- site: betawikipedia:zh
- python-version: '3.10'
- site: betawikisource:en
- - python-version: '3.9'
- site: wikidata:test
+ site: wikipedia:test
+ - python-version: '3.10'
+ site: betawikipedia:en
+ - python-version: '3.10'
+ site: betawikipedia:zh
- python-version: '3.11'
+ site: betawikisource:en
+ - python-version: '3.10'
+ site: wikidata:test
+ - python-version: '3.12'
site: wiktionary:ar
test_no_rc: true
- - python-version: '3.9'
- site: wikidata:wikidata
- python-version: '3.10'
+ site: wikidata:wikidata
+ - python-version: '3.11'
site: wowwiki:uk
- python-version: '3'
site: wikipedia:de
@@ -70,7 +60,6 @@
site: wikipedia:test
- python-version: 3.16-dev
site: wikipedia:test
- experimental: true
steps:
- name: Checkout Repository
uses: actions/checkout@v7
diff --git a/.github/workflows/sysop_write_tests-ci.yml
b/.github/workflows/sysop_write_tests-ci.yml
index ee68b5b..2090746 100644
--- a/.github/workflows/sysop_write_tests-ci.yml
+++ b/.github/workflows/sysop_write_tests-ci.yml
@@ -23,7 +23,7 @@
build:
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental || false }}
- timeout-minutes: 20
+ timeout-minutes: 25
strategy:
fail-fast: false
matrix:
diff --git a/.github/workflows/windows_tests.yml
b/.github/workflows/windows_tests.yml
index 359a0fd..77e2052 100644
--- a/.github/workflows/windows_tests.yml
+++ b/.github/workflows/windows_tests.yml
@@ -27,7 +27,7 @@
strategy:
fail-fast: false
matrix:
- python-version: [3.9.0, '3.9', '3.10', '3.11', '3.12', '3.13', '3.14',
'3.15']
+ python-version: [3.10.0, '3.10', '3.11', '3.12', '3.13', '3.14',
'3.15']
python-arch: [x64, x86]
site: ['wikipedia:en']
steps:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index fb71dd9..9033d63 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -52,7 +52,7 @@
- id: rst-inline-touching-normal
- id: text-unicode-replacement-char
- repo: https://github.com/rvben/rumdl-pre-commit
- rev: v0.3.0
+ rev: v0.3.2
hooks:
- id: rumdl # Lint only; add args [--fix] to auto-fix
- id: rumdl-fmt # Pure format, always exits 0
@@ -69,16 +69,16 @@
hooks:
- id: yamlfix
- repo: https://github.com/astral-sh/ruff-pre-commit
- rev: v0.17.1
+ rev: v0.17.3
hooks:
- id: ruff-check
alias: ruff
args: [--fix]
- repo: https://github.com/asottile/pyupgrade
- rev: v3.21.2
+ rev: v3.22.0
hooks:
- id: pyupgrade
- args: [--py39-plus]
+ args: [--py310-plus]
- repo: https://github.com/PyCQA/autoflake
rev: v2.4.0
hooks:
@@ -91,7 +91,7 @@
- --remove-unused-variables
exclude: ^pywikibot/backports\.py$
- repo: https://github.com/PyCQA/isort
- rev: 9.0.2
+ rev: 10.0.0b2
hooks:
- id: isort
name: isort
@@ -101,12 +101,12 @@
name: isort (skip future annotations)
files: ^(pwb|pywikibot/families/__init__)\.py$
- repo: https://github.com/jshwi/docsig
- rev: v0.96.0
+ rev: v0.97.0
hooks:
- id: docsig
exclude: ^(tests|scripts)
- repo: https://github.com/PyCQA/flake8
- rev: 7.4.1
+ rev: 7.5.0
hooks:
- id: flake8
args:
@@ -118,7 +118,7 @@
- flake8-print>=5.0.0
- pep8-naming>=0.15.1
- repo: https://github.com/pre-commit/mirrors-mypy
- rev: v2.4.0
+ rev: v2.4.1
hooks:
- id: mypy
args: [--config-file=pyproject.toml, --follow-imports=silent]
diff --git a/HISTORY.rst b/HISTORY.rst
index 09098ae..68b39e4 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -1,6 +1,52 @@
Release History
===============
+11.10.0
+-------
+*31 October 2026*
+
+* Enable lexeme creation through
:class:`LexemePage.editEntity()<pywikibot.LexemePage.editEntity>`.
+ See :ref:`Creating Lexemes` for further information. (:phab:`T442295`)
+* Initialize :class:`LexemePage<pywikibot.LexemePage>` collections for unsaved
entities.
+ (:phab:`T442290`)
+* Various performance, stability, and code quality improvements.
+* Serialize nested form and sense edits in :class:`page.SubEntityCollection
+ <pywikibot.page._collections.SubEntityCollection>` and
:class:`LexemePage<pywikibot.LexemePage>`
+ (:phab:`T189321`)
+* Add
:attr:`ignore_save_related_errors<bot.BaseBot.ignore_save_related_errors>`
+ and :attr:`ignore_server_errors<bot.BaseBot.ignore_server_errors>` attributes
+ to :class:`bot.BaseBot` and use them in
:meth:`userPut()<bot.BaseBot.userPut>`. (:phab:`T156908`)
+* Add support for Scribunto redirects. (:phab:`T417129`)
+* Serialize term removals and empty feature sets in
:class:`page.LexemeSubEntity`
+ and :class:`LexemeForm<pywikibot.LexemeForm>`. (:phab:`T189321`)
+* Reload :class:`page.WikibaseEntity` entity
+ state after successful saves. (:phab:`T189321`)
+* Preserve fields during data normalization in
:class:`LexemePage<pywikibot.LexemePage>`
+ and :class:`LexemeForm<pywikibot.LexemeForm>`. (:phab:`T189321`)
+* Find headings followed by a multiline comment with
:func:`textlib.get_regexes('header')
+ <textlib.get_regexes>`. (:phab:`T209712`)
+* Always set the comment of a :class:`page.Contribution`. (:phab:`T442114`)
+* Keep sub-entity indexes of :class:`page.SubEntityCollection
+ <pywikibot.page._collections.SubEntityCollection>` aligned after mutations.
(:phab:`T189321`)
+* Replace recursive orchestration of
:class:`site.Uploader<pywikibot.site._upload.Uploader>`.
+ (:phab:`T434936`)
+* Fix
:meth:`APISite.interwiki_prefix()<pywikibot.site._apisite.APISite.interwiki_prefix>`
+ functionality. (:phab:`T312699`)
+* Normalize IPv6 addresses in user titles like MediaWiki within
+ :meth:`pywikibot.Link.parse`. (:phab:`T329819`)
+* An IP range in CIDR notation is accepted as *user* in
:meth:`APISite.usercontribs()
+ <pywikibot.site._generators.GeneratorsMixin.usercontribs>`. (:phab:`T362377`)
+* The *strict* parameter was added to :func:`tools.is_ip_network` to ignore
host
+ bits if set to ``False``.
+* Fix result of :func:`textlib.replaceCategoryLinks` without category links.
+* Avoid mutating class attribute
:attr:`BaseBot.available_options<bot.BaseBot.available_options>`
+ with :attr:`BaseBot.update_options<bot.BaseBot.update_options>`.
(:phab:`T439883`)
+* Update translations (i18n).
+* Reject nested wikilinks in file captions with
:attr:`textlib.FILE_LINK_REGEX`. (:phab:`T396721`)
+* Speed up parsing of API ISO timestamps in :meth:`Timestamp._from_iso8601()
+ <pywikibot.time.Timestamp._from_iso8601>`.
+
+
11.9.0
------
*18 October 2026*
diff --git a/ROADMAP.rst b/ROADMAP.rst
index ef3ed78..e622026 100644
--- a/ROADMAP.rst
+++ b/ROADMAP.rst
@@ -1,46 +1,19 @@
-Release 11.10
-=============
+Release 12
+==========
-* Enable lexeme creation through
:class:`LexemePage.editEntity()<pywikibot.LexemePage.editEntity>`.
- See :ref:`Creating Lexemes` for further information. (:phab:`T442295`)
-* Initialize :class:`LexemePage<pywikibot.LexemePage>` collections for unsaved
entities.
- (:phab:`T442290`)
-* Various performance, stability, and code quality improvements.
-* Serialize nested form and sense edits in :class:`page.SubEntityCollection
- <pywikibot.page._collections.SubEntityCollection>` and
:class:`LexemePage<pywikibot.LexemePage>`
- (:phab:`T189321`)
-* Add
:attr:`ignore_save_related_errors<bot.BaseBot.ignore_save_related_errors>`
- and :attr:`ignore_server_errors<bot.BaseBot.ignore_server_errors>` attributes
- to :class:`bot.BaseBot` and use them in
:meth:`userPut()<bot.BaseBot.userPut>`. (:phab:`T156908`)
-* Add support for Scribunto redirects. (:phab:`T417129`)
-* Serialize term removals and empty feature sets in
:class:`page.LexemeSubEntity`
- and :class:`LexemeForm<pywikibot.LexemeForm>`. (:phab:`T189321`)
-* Reload :class:`page.WikibaseEntity` entity
- state after successful saves. (:phab:`T189321`)
-* Preserve fields during data normalization in
:class:`LexemePage<pywikibot.LexemePage>`
- and :class:`LexemeForm<pywikibot.LexemeForm>`. (:phab:`T189321`)
-* Find headings followed by a multiline comment with
:func:`textlib.get_regexes('header')
- <textlib.get_regexes>`. (:phab:`T209712`)
-* Always set the comment of a :class:`page.Contribution`. (:phab:`T442114`)
-* Keep sub-entity indexes of :class:`page.SubEntityCollection
- <pywikibot.page._collections.SubEntityCollection>` aligned after mutations.
(:phab:`T189321`)
-* Replace recursive orchestration of
:class:`site.Uploader<pywikibot.site._upload.Uploader>`.
- (:phab:`T434936`)
-* Fix
:meth:`APISite.interwiki_prefix()<pywikibot.site._apisite.APISite.interwiki_prefix>`
- functionality. (:phab:`T312699`)
-* Normalize IPv6 addresses in user titles like MediaWiki within
- :meth:`pywikibot.Link.parse`. (:phab:`T329819`)
-* An IP range in CIDR notation is accepted as *user* in
:meth:`APISite.usercontribs()
- <pywikibot.site._generators.GeneratorsMixin.usercontribs>`. (:phab:`T362377`)
-* The *strict* parameter was added to :func:`tools.is_ip_network` to ignore
host
- bits if set to ``False``.
-* Fix result of :func:`textlib.replaceCategoryLinks` without category links.
-* Avoid mutating class attribute
:attr:`BaseBot.available_options<bot.BaseBot.available_options>`
- with :attr:`BaseBot.update_options<bot.BaseBot.update_options>`.
(:phab:`T439883`)
-* Update translations (i18n).
-* Reject nested wikilinks in file captions with
:attr:`textlib.FILE_LINK_REGEX`. (:phab:`T396721`)
-* Speed up parsing of API ISO timestamps in :meth:`Timestamp._from_iso8601()
- <pywikibot.time.Timestamp._from_iso8601>`.
+**Improvements**
+
+* (No changes yet)
+
+**Bugfixes**
+
+* (No changes yet)
+
+**Code cleanups**
+
+* (No changes yet)
+
+**Other breaking changes**
Deprecations
============
diff --git a/dev-requirements.txt b/dev-requirements.txt
index 4666a6b..f7a5f4d 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -1,13 +1,13 @@
# This is a requirements file for development dependencies.
#
# Python 3.10 is required for pytest and pre-commit
-pytest >= 9.1.1; python_version > "3.9"
+pytest >= 9.2.0
pytest-attrib >= 0.1.3
pytest-xvfb >= 3.1.1
-pre-commit >= 4.7.0; python_version > "3.10"
-pre-commit >= 4.6.2; python_version == "3.10"
-coverage >= 7.16.2; python_version > "3.9"
-coverage==7.10.7; python_version == "3.9"
+# Python 3.11 is required for pre-commit
+pre-commit >= 4.7.0
+coverage >= 7.17.0; python_version > "3.10"
+coverage==7.16.2; python_version == "3.10"
# required for coverage (T380697)
-tomli >= 2.5.0; python_version < "3.11"
+tomli >= 2.5.0; python_version == "3.10"
diff --git a/pwb.py b/pwb.py
index 47b31d1..a841a5b 100755
--- a/pwb.py
+++ b/pwb.py
@@ -16,7 +16,7 @@
Pywikibot is not available on:
{version}
-This version of Pywikibot only supports Python 3.9+.
+This version of Pywikibot only supports Python 3.10+.
"""
DEPRECATED_PYTHON_MESSAGE = """
@@ -29,7 +29,7 @@
def python_is_supported():
"""Check that Python is supported."""
- return sys.version_info[:3] >= (3, 9)
+ return sys.version_info[:3] >= (3, 10)
def python_is_deprecated():
diff --git a/pyproject.toml b/pyproject.toml
index 9957037..9f78143 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -17,7 +17,7 @@
{name = "The Pywikibot team", email = "[email protected]"},
]
description = "Python MediaWiki Bot Framework"
-requires-python = ">=3.9.0"
+requires-python = ">=3.10.0"
keywords = [
"API", "bot", "client", "framework", "mediawiki", "pwb", "pybot", "python",
"pywiki", "pywikibase", "pywikibot", "pywikipedia", "pywikipediabot",
@@ -92,13 +92,13 @@
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
+ "Programming Language :: Python :: 3.16",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: GraalPy",
"Programming Language :: Python :: Implementation :: PyPy",
@@ -175,7 +175,7 @@
[tool.isort]
-py_version = 39
+py_version = 310
atomic = true
ensure_newline_before_comments = true
force_grid_wrap = 0
diff --git a/pywikibot/__metadata__.py b/pywikibot/__metadata__.py
index 5d9e199..930ebcc 100644
--- a/pywikibot/__metadata__.py
+++ b/pywikibot/__metadata__.py
@@ -12,6 +12,6 @@
from time import strftime
-__version__ = '11.10.0'
+__version__ = '12.0.0.dev0'
__url__ = 'https://www.mediawiki.org/wiki/Manual:Pywikibot'
__copyright__ = f'2003-{strftime("%Y")}, Pywikibot team'
diff --git a/pywikibot/diff.py b/pywikibot/diff.py
index e3954a9..ede0860 100644
--- a/pywikibot/diff.py
+++ b/pywikibot/diff.py
@@ -10,8 +10,8 @@
import math
from collections import abc
from collections.abc import Iterable, Sequence
-from difflib import _format_range_unified # type: ignore[attr-defined]
from difflib import SequenceMatcher
+from difflib import _format_range_unified # type: ignore[attr-defined]
from heapq import nlargest
from itertools import zip_longest
diff --git a/pywikibot/scripts/wrapper.py b/pywikibot/scripts/wrapper.py
index 6ec180f..9cd48c3 100755
--- a/pywikibot/scripts/wrapper.py
+++ b/pywikibot/scripts/wrapper.py
@@ -443,16 +443,10 @@
from pywikibot.i18n import set_messages_package
- if sys.version_info < (3, 10):
- entry_points_items = [
- ep for ep in entry_points().get('pywikibot', [])
- if ep.name == 'scriptspath'
- ]
- else:
- entry_points_items = entry_points(
- name='scriptspath',
- group='pywikibot',
- )
+ entry_points_items = entry_points(
+ name='scriptspath',
+ group='pywikibot',
+ )
for ep in entry_points_items:
path = ep.load()
diff --git a/scripts/__init__.py b/scripts/__init__.py
index 859a3b7..8e0cdae 100644
--- a/scripts/__init__.py
+++ b/scripts/__init__.py
@@ -34,7 +34,7 @@
from pathlib import Path
-__version__ = '11.10.0'
+__version__ = '12.0.0'
#: defines the entry point for pywikibot-scripts package
base_dir = Path(__file__).parent
diff --git a/scripts/harvest_template.py b/scripts/harvest_template.py
index 2226c83..b8a77e3 100755
--- a/scripts/harvest_template.py
+++ b/scripts/harvest_template.py
@@ -121,9 +121,8 @@
from typing import Any
import pywikibot
-from pywikibot import WbTime
+from pywikibot import WbTime, textlib
from pywikibot import pagegenerators as pg
-from pywikibot import textlib
from pywikibot.bot import ConfigParserBot, OptionHandler, WikidataBot
from pywikibot.exceptions import (
APIError,
diff --git a/scripts/pyproject.toml b/scripts/pyproject.toml
index b22cb15..f494477 100644
--- a/scripts/pyproject.toml
+++ b/scripts/pyproject.toml
@@ -7,7 +7,7 @@
[project]
name = "pywikibot-scripts"
-version = "11.10.0"
+version = "12.0.0"
authors = [
{name = "xqt", email = "[email protected]"},
@@ -17,9 +17,9 @@
]
description = "Pywikibot Scripts Collection"
readme = "scripts/README.rst"
-requires-python = ">=3.9.0"
+requires-python = ">=3.10.0"
dependencies = [
- "pywikibot >= 11.10.0",
+ "pywikibot >= 12.0.0",
"langdetect",
"mwparserfromhell",
"pydot",
diff --git a/scripts/solve_disambiguation.py b/scripts/solve_disambiguation.py
index 6f9f676..f484a8b 100755
--- a/scripts/solve_disambiguation.py
+++ b/scripts/solve_disambiguation.py
@@ -86,9 +86,8 @@
from pathlib import Path
import pywikibot
-from pywikibot import config
+from pywikibot import config, i18n, pagegenerators
from pywikibot import editor as editarticle
-from pywikibot import i18n, pagegenerators
from pywikibot.bot import (
HighlightContextOption,
ListOption,
diff --git a/tox.ini b/tox.ini
index 0b081c6..5bb2d4c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -4,7 +4,7 @@
skip_missing_interpreters = True
envlist =
commit-message
- lint-py{310,314}
+ lint-py{311,314}
[params]
# Note: tox 4 does not support multiple lines when doing parameters
@@ -16,7 +16,7 @@
[testenv]
basepython =
- py39: python3.9
+ py39: python3.10
py310: python3.10
py311: python3.11
py312: python3.12
@@ -73,7 +73,7 @@
pytest --mypy -m mypy pywikibot
[testenv:commit-message]
-basepython = python3.9
+basepython = python3.10
deps = commit-message-validator
commands = commit-message-validator
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1361125?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ia9c2ad59281ada252ea2e571e8fcae3fbf2c1561
Gerrit-Change-Number: 1361125
Gerrit-PatchSet: 2
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]