Skip to content

Commit 5291550

Browse files
committed
gh-4379: Link release PEPs in topic pages
1 parent bfc2b35 commit 5291550

3 files changed

Lines changed: 34 additions & 7 deletions

File tree

‎pep_sphinx_extensions/pep_zero_generator/pep_index_generator.py‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,13 @@ def create_pep_zero(app: Sphinx, env: BuildEnvironment, docnames: list[str]) ->
8181
pep0_path = subindices.update_sphinx("pep-0000", pep0_text, docnames, env)
8282
peps.append(parser.PEP(pep0_path))
8383

84-
subindices.generate_subindices(SUBINDICES_BY_TOPIC, peps, docnames, env)
84+
subindices.generate_subindices(
85+
SUBINDICES_BY_TOPIC,
86+
peps,
87+
release_peps,
88+
docnames,
89+
env,
90+
)
8591

8692
write_peps_json(peps, Path(app.outdir))
8793

‎pep_sphinx_extensions/pep_zero_generator/subindices.py‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ def update_sphinx(filename: str, text: str, docnames: list[str], env: BuildEnvir
3535
def generate_subindices(
3636
subindices: dict[str, str],
3737
peps: list[PEP],
38+
release_peps: dict[str, int],
3839
docnames: list[str],
3940
env: BuildEnvironment,
4041
) -> None:
@@ -58,8 +59,11 @@ def generate_subindices(
5859
5960
{additional_description}
6061
"""
61-
subindex_text = writer.PEPZeroWriter().write_pep0(
62-
filtered_peps, header, subindex_intro, is_pep0=False,
62+
subindex_text = writer.PEPZeroWriter(release_peps).write_pep0(
63+
filtered_peps,
64+
header,
65+
subindex_intro,
66+
is_pep0=False,
6367
)
6468
update_sphinx(f"topic/{subindex}", subindex_text, docnames, env)
6569

‎pep_sphinx_extensions/tests/pep_zero_generator/test_writer.py‎

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,18 +88,35 @@ def test_sort_authors():
8888
assert out == ["Aardvark, Alfred", "lowercase, laurence", "Zebra, Zoë"]
8989

9090

91-
def test_emit_pep_row_links_python_version_to_release_pep():
91+
@pytest.mark.parametrize(
92+
("python_version", "release_peps", "expected"),
93+
[
94+
("3.14", {"3.14": 745}, " - :pep:`3.14 <745>`"),
95+
("2.6, 3.0", {"2.6, 3.0": 361}, " - :pep:`2.6, 3.0 <361>`"),
96+
("2.7, 3.1", {"2.7, 3.1": 375}, " - :pep:`2.7, 3.1 <375>`"),
97+
(
98+
"2.4, 2.5, 2.6",
99+
{"2.4, 2.5, 2.6": 320},
100+
" - :pep:`2.4, 2.5, 2.6 <320>`",
101+
),
102+
],
103+
)
104+
def test_emit_pep_row_links_python_version_to_release_pep(
105+
python_version,
106+
release_peps,
107+
expected,
108+
):
92109
# Arrange
93-
pep0_writer = writer.PEPZeroWriter(release_peps={"3.14": 745})
110+
pep0_writer = writer.PEPZeroWriter(release_peps=release_peps)
94111

95112
# Act
96113
pep0_writer.emit_pep_row(
97114
shorthand="Active",
98115
number=999,
99116
title="Test PEP",
100117
authors="Test Author",
101-
python_version="3.14",
118+
python_version=python_version,
102119
)
103120

104121
# Assert
105-
assert " - :pep:`3.14 <745>`" in pep0_writer.output
122+
assert expected in pep0_writer.output

0 commit comments

Comments
 (0)