Skip to content

Commit ba7efb8

Browse files
committed
Drop support for Python 3.7
1 parent 7d6a9a5 commit ba7efb8

7 files changed

Lines changed: 20 additions & 65 deletions

File tree

.github/workflows/python_ci.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,18 @@ jobs:
2222
runs-on: "windows-2022"
2323
continue-on-error: ${{ matrix.config.experimental }}
2424
env:
25-
USING_COVERAGE: '3.7,3.8,3.9,3.10,3.11,3.12,3.13,pypy-3.7,pypy-3.8,pypy-3.9'
25+
USING_COVERAGE: '3.8,3.9,3.10,3.11,3.12,3.13,pypy-3.8,pypy-3.9'
2626

2727
strategy:
2828
fail-fast: False
2929
matrix:
3030
config:
31-
- {python-version: "3.7", testenvs: "py37-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3},build", experimental: False}
3231
- {python-version: "3.8", testenvs: "py38-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1},build", experimental: False}
3332
- {python-version: "3.9", testenvs: "py39-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4},build", experimental: False}
3433
- {python-version: "3.10", testenvs: "py310-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1},build", experimental: False}
3534
- {python-version: "3.11", testenvs: "py311-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2},build", experimental: False}
3635
- {python-version: "3.12", testenvs: "py312-sphinx{4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2},build", experimental: False}
3736
- {python-version: "3.13", testenvs: "py313-sphinx{6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2},build", experimental: False}
38-
- {python-version: "pypy-3.7", testenvs: "pypy37-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3},build", experimental: False}
3937
- {python-version: "pypy-3.8", testenvs: "pypy38-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1}", experimental: False}
4038
- {python-version: "pypy-3.9-v7.3.15", testenvs: "pypy39-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4}", experimental: True}
4139

.github/workflows/python_ci_linux.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,18 @@ jobs:
2323
runs-on: "ubuntu-22.04"
2424
continue-on-error: ${{ matrix.config.experimental }}
2525
env:
26-
USING_COVERAGE: '3.7,3.8,3.9,3.10,3.11,3.12,3.13,pypy-3.7,pypy-3.8,pypy-3.9'
26+
USING_COVERAGE: '3.8,3.9,3.10,3.11,3.12,3.13,pypy-3.8,pypy-3.9'
2727

2828
strategy:
2929
fail-fast: False
3030
matrix:
3131
config:
32-
- {python-version: "3.7", testenvs: "py37-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3},build", experimental: False}
3332
- {python-version: "3.8", testenvs: "py38-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1},build", experimental: False}
3433
- {python-version: "3.9", testenvs: "py39-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4},build", experimental: False}
3534
- {python-version: "3.10", testenvs: "py310-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1},build", experimental: False}
3635
- {python-version: "3.11", testenvs: "py311-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2},build", experimental: False}
3736
- {python-version: "3.12", testenvs: "py312-sphinx{4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2},build", experimental: False}
3837
- {python-version: "3.13", testenvs: "py313-sphinx{6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2},build", experimental: False}
39-
- {python-version: "pypy-3.7", testenvs: "pypy37-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3},build", experimental: False}
4038
- {python-version: "pypy-3.8", testenvs: "pypy38-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1},build", experimental: False}
4139
- {python-version: "pypy-3.9", testenvs: "pypy39-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4}", experimental: True}
4240

.github/workflows/python_ci_macos.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,18 @@ jobs:
2222
runs-on: "macos-${{ matrix.config.os-ver }}"
2323
continue-on-error: ${{ matrix.config.experimental }}
2424
env:
25-
USING_COVERAGE: '3.7,3.8,3.9,3.10,3.11,3.12,3.13,pypy-3.7,pypy-3.8,pypy-3.9'
25+
USING_COVERAGE: '3.8,3.9,3.10,3.11,3.12,3.13,pypy-3.8,pypy-3.9'
2626

2727
strategy:
2828
fail-fast: False
2929
matrix:
3030
config:
31-
- {python-version: "3.7", os-ver: "15-intel", testenvs: "py37-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3},build", experimental: False}
3231
- {python-version: "3.8", os-ver: "14", testenvs: "py38-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1},build", experimental: False}
3332
- {python-version: "3.9", os-ver: "14", testenvs: "py39-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4},build", experimental: False}
3433
- {python-version: "3.10", os-ver: "14", testenvs: "py310-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1},build", experimental: False}
3534
- {python-version: "3.11", os-ver: "14", testenvs: "py311-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2},build", experimental: False}
3635
- {python-version: "3.12", os-ver: "14", testenvs: "py312-sphinx{4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2},build", experimental: False}
3736
- {python-version: "3.13", os-ver: "14", testenvs: "py313-sphinx{6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2},build", experimental: False}
38-
- {python-version: "pypy-3.7", os-ver: "15-intel", testenvs: "pypy37-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3},build", experimental: False}
3937
- {python-version: "pypy-3.8", os-ver: "14", testenvs: "pypy38-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1},build", experimental: False}
4038
- {python-version: "pypy-3.9", os-ver: "14", testenvs: "pypy39-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4}", experimental: True}
4139

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ repos:
6666
hooks:
6767
- id: pyupgrade
6868
args:
69-
- --py37-plus
69+
- --py38-plus
7070
- --keep-runtime-typing
7171

7272
- repo: https://github.com/Lucas-C/pre-commit-hooks

repo_helper.yml

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,6 @@ conda_channels:
2020
- conda-forge
2121

2222
python_versions:
23-
3.7:
24-
matrix_exclude:
25-
sphinx:
26-
- 6.0
27-
- 6.1
28-
- 6.2
29-
- 7.0
30-
- 7.1
31-
- 7.2
32-
- 7.3
33-
- 7.4
34-
- 8.0
35-
- 8.1
36-
- 8.2
37-
- latest
3823
3.8:
3924
matrix_exclude:
4025
sphinx:
@@ -82,26 +67,6 @@ python_versions:
8267
- 5.3
8368
- 6.0
8469
- 6.1
85-
pypy37:
86-
matrix_exclude:
87-
sphinx:
88-
- 3.4
89-
- 3.5
90-
- 4.0
91-
- 4.1
92-
- 4.2
93-
- 6.0
94-
- 6.1
95-
- 6.2
96-
- 7.0
97-
- 7.1
98-
- 7.2
99-
- 7.3
100-
- 7.4
101-
- 8.0
102-
- 8.1
103-
- 8.2
104-
- latest
10570
pypy38:
10671
matrix_exclude:
10772
sphinx:

tests/test_directive.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
['name[bar]>=3; python_version == "2.7"'],
2323
id="string_specifier_marker",
2424
),
25-
pytest.param(["name@ http://foo.com"], ["name@ http://foo.com"], id="string_url"),
25+
pytest.param(["name@ http://foo.com"], ["name @ http://foo.com"], id="string_url"),
2626
pytest.param(
2727
['name@ http://foo.com ; extra == "feature"'],
28-
['name@ http://foo.com ; extra == "feature"'],
28+
['name @ http://foo.com ; extra == "feature"'],
2929
id="string_url_with_marker",
3030
),
3131
pytest.param(["foo-bar.quux_baz"], ["foo-bar.quux_baz"], id="name_with_other_characters"),
@@ -35,21 +35,21 @@
3535
pytest.param(["name >=2, <3"], ["name<3,>=2"], id="name_with_multiple_versions_and_whitespace"),
3636
pytest.param(["foobar [quux,bar]"], ["foobar[bar,quux]"], id="extras"),
3737
pytest.param(["foo[]"], ["foo"], id="empty_extras"),
38-
pytest.param(["foo @ http://example.com"], ["foo@ http://example.com"], id="url"),
38+
pytest.param(["foo@ http://example.com"], ["foo @ http://example.com"], id="url"),
3939
pytest.param(
40-
["foo @ http://example.com ; os_name=='a'"],
41-
['foo@ http://example.com ; os_name == "a"'],
40+
["foo@ http://example.com ; os_name=='a'"],
41+
['foo @ http://example.com ; os_name == "a"'],
4242
id="url_and_marker",
4343
),
44-
pytest.param(["name @ file:///absolute/path"], ["name@ file:///absolute/path"], id="file_url"),
44+
pytest.param(["name@ file:///absolute/path"], ["name @ file:///absolute/path"], id="file_url"),
4545
pytest.param(
46-
["name [fred, bar] @ http://foo.com ; python_version=='2.7'"],
47-
['name[bar,fred]@ http://foo.com ; python_version == "2.7"'],
46+
["name [fred, bar]@ http://foo.com ; python_version=='2.7'"],
47+
['name[bar,fred] @ http://foo.com ; python_version == "2.7"'],
4848
id="extras_and_url_and_marker",
4949
),
5050
pytest.param(
51-
["foo @ https://example.com/name;v=1.1/?query=foo&bar=baz#blah ; python_version=='3.4'"],
52-
['foo@ https://example.com/name;v=1.1/?query=foo&bar=baz#blah ; python_version == "3.4"'],
51+
["foo@ https://example.com/name;v=1.1/?query=foo&bar=baz#blah ; python_version=='3.4'"],
52+
['foo @ https://example.com/name;v=1.1/?query=foo&bar=baz#blah ; python_version == "3.4"'],
5353
id="complex_url_and_marker",
5454
),
5555
pytest.param(
@@ -107,7 +107,7 @@ def test_validate_requirements_warning(requirements: List[str], valid_requiremen
107107
# New packaging version
108108
with pytest.raises(
109109
ValueError,
110-
match=r"Invalid requirement .*: Expected end or semicolon \(after version specifier\)",
110+
match=r"Invalid requirement .*: Expected .*",
111111
):
112112
validate_requirements(requirements)
113113

@@ -116,10 +116,10 @@ def test_validate_requirements_warning(requirements: List[str], valid_requiremen
116116
"requirements",
117117
[
118118
pytest.param(["foo!"], id="invalid_name"),
119-
pytest.param(["foo @ http://example.com; os_name=='a'"]),
120-
# pytest.param(["name @ gopher:/foo/com"], id="invalid URL"),
121-
# pytest.param(["name @ file:."], id="invalid file URL (1)"), # No longer raises exception with latest packaging
122-
# pytest.param(["name @ file:/."], id="invalud file URL (2)"),
119+
pytest.param(["foo@ http://example.com; os_name=='a'"]),
120+
# pytest.param(["name@ gopher:/foo/com"], id="invalid URL"),
121+
# pytest.param(["name@ file:."], id="invalid file URL (1)"), # No longer raises exception with latest packaging
122+
# pytest.param(["name@ file:/."], id="invalud file URL (2)"),
123123
pytest.param(["name; foobar=='x'"], id="invalid_marker"),
124124
["pygame ?=1.2.3"],
125125
["six**1.2.3"],

tox.ini

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,12 @@
2222

2323
[tox]
2424
envlist =
25-
py37-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3}
2625
py38-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1}
2726
py39-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4}
2827
py310-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1}
2928
py311-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2}
3029
py312-sphinx{4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2}
3130
py313-sphinx{6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2}
32-
pypy37-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3}
3331
pypy38-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1}
3432
pypy39-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4}
3533
mypy
@@ -44,14 +42,12 @@ requires =
4442

4543
[envlists]
4644
test =
47-
py37-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3}
4845
py38-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1}
4946
py39-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4}
5047
py310-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1}
5148
py311-sphinx{3.4,3.5,4.0,4.1,4.2,4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2}
5249
py312-sphinx{4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2}
5350
py313-sphinx{6.2,7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2}
54-
pypy37-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3}
5551
pypy38-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1}
5652
pypy39-sphinx{4.3,4.4,4.5,5.0,5.1,5.2,5.3,6.0,6.1,6.2,7.0,7.1,7.2,7.3,7.4}
5753
qa = mypy, lint
@@ -184,7 +180,7 @@ inline-quotes = "
184180
multiline-quotes = """
185181
docstring-quotes = """
186182
count = True
187-
min_python_version = 3.7
183+
min_python_version = 3.8
188184
unused-arguments-ignore-abstract-functions = True
189185
unused-arguments-ignore-overload-functions = True
190186
unused-arguments-ignore-magic-methods = True

0 commit comments

Comments
 (0)