Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infra: Add Python version to PEP 0 tables #3434

Merged
merged 9 commits into from
Sep 27, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pep_sphinx_extensions/pep_zero_generator/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ def details(self) -> dict[str, str | int]:
"shorthand": self.shorthand,
# the author list as a comma-separated with only last names
"authors": ", ".join(author.full_name for author in self.authors),
"python_version": self.python_version or "",
hugovk marked this conversation as resolved.
Show resolved Hide resolved
}

@property
Expand Down
17 changes: 15 additions & 2 deletions pep_sphinx_extensions/pep_zero_generator/writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,19 @@
self.output.append(author_table_separator)

def emit_pep_row(
self, *, shorthand: str, number: int, title: str, authors: str
self,
*,
shorthand: str,
number: int,
title: str,
authors: str,
python_version: str,
) -> None:
self.emit_text(f" * - {shorthand}")
self.emit_text(f" - :pep:`{number} <{number}>`")
self.emit_text(f" - :pep:`{title.replace('`', '')} <{number}>`")
self.emit_text(f" - {authors}")
self.emit_text(f" - {python_version}")

Check warning on line 89 in pep_sphinx_extensions/pep_zero_generator/writer.py

View check run for this annotation

Codecov / codecov/patch

pep_sphinx_extensions/pep_zero_generator/writer.py#L89

Added line #L89 was not covered by tests

def emit_column_headers(self) -> None:
"""Output the column headers for the PEP indices."""
Expand All @@ -92,6 +99,7 @@
self.emit_text(" - PEP")
self.emit_text(" - Title")
self.emit_text(" - Authors")
self.emit_text(" - Python")

Check warning on line 102 in pep_sphinx_extensions/pep_zero_generator/writer.py

View check run for this annotation

Codecov / codecov/patch

pep_sphinx_extensions/pep_zero_generator/writer.py#L102

Added line #L102 was not covered by tests
AA-Turner marked this conversation as resolved.
Show resolved Hide resolved

def emit_title(self, text: str, *, symbol: str = "=") -> None:
self.output.append(text)
Expand All @@ -112,6 +120,7 @@
self.emit_text(" -")
self.emit_text(" -")
self.emit_text(" -")
self.emit_text(" -")

Check warning on line 123 in pep_sphinx_extensions/pep_zero_generator/writer.py

View check run for this annotation

Codecov / codecov/patch

pep_sphinx_extensions/pep_zero_generator/writer.py#L123

Added line #L123 was not covered by tests
self.emit_newline()

def write_pep0(
Expand Down Expand Up @@ -192,7 +201,11 @@
self.emit_column_headers()
for number, claimants in sorted(self.RESERVED.items()):
self.emit_pep_row(
shorthand="", number=number, title="RESERVED", authors=claimants
shorthand="",
number=number,
title="RESERVED",
authors=claimants,
python_version="",
)

self.emit_newline()
Expand Down
36 changes: 28 additions & 8 deletions pep_sphinx_extensions/tests/pep_zero_generator/test_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,35 @@ def test_pep_equal():
assert pep_a == pep_b


def test_pep_details(monkeypatch):
pep8 = parser.PEP(PEP_ROOT / "pep-0008.rst")
@pytest.mark.parametrize(
("test_input", "expected"),
[
(
"pep-0008.rst",
{
"authors": "Guido van Rossum, Barry Warsaw, Nick Coghlan",
"number": 8,
"shorthand": ":abbr:`PA (Process, Active)`",
"title": "Style Guide for Python Code",
"python_version": "",
},
),
(
"pep-0719.rst",
{
"authors": "Thomas Wouters",
"number": 719,
"shorthand": ":abbr:`IA (Informational, Active)`",
"title": "Python 3.13 Release Schedule",
"python_version": "3.13",
},
),
],
)
def test_pep_details(test_input, expected):
pep = parser.PEP(PEP_ROOT / test_input)

assert pep8.details == {
"authors": "Guido van Rossum, Barry Warsaw, Nick Coghlan",
"number": 8,
"shorthand": ":abbr:`PA (Process, Active)`",
"title": "Style Guide for Python Code",
}
assert pep.details == expected


@pytest.mark.parametrize(
Expand Down