Skip to content

Commit b6defde

Browse files
authored
bpo-45866: pegen strips directory of "generated from" header (GH-29777) (GH-29792)
"make regen-all" now produces the same output when run from a directory other than the source tree: when building Python out of the source tree. (cherry picked from commit 253b7a0)
1 parent 3f024e2 commit b6defde

File tree

5 files changed

+12
-4
lines changed

5 files changed

+12
-4
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
``make regen-all`` now produces the same output when run from a directory
2+
other than the source tree: when building Python out of the source tree.
3+
pegen now strips directory of the "generated by pygen from <FILENAME" header
4+
Patch by Victor Stinner.

Parser/parser.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @generated by pegen.py from ./Grammar/python.gram
1+
// @generated by pegen.py from python.gram
22
#include "pegen.h"
33

44
#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)

Tools/peg_generator/pegen/c_generator.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import ast
22
from dataclasses import field, dataclass
3+
import os.path
34
import re
45
from typing import Any, Dict, IO, Optional, List, Text, Tuple, Set
56
from enum import Enum
@@ -405,7 +406,8 @@ def out_of_memory_goto(self, expr: str, goto_target: str) -> None:
405406

406407
def generate(self, filename: str) -> None:
407408
self.collect_todo()
408-
self.print(f"// @generated by pegen.py from {filename}")
409+
basename = os.path.basename(filename)
410+
self.print(f"// @generated by pegen.py from {basename}")
409411
header = self.grammar.metas.get("header", EXTENSION_PREFIX)
410412
if header:
411413
self.print(header.rstrip("\n"))

Tools/peg_generator/pegen/grammar_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env python3.8
2-
# @generated by pegen from ./Tools/peg_generator/pegen/metagrammar.gram
2+
# @generated by pegen from metagrammar.gram
33

44
import ast
55
from typing import Optional, Any

Tools/peg_generator/pegen/python_generator.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import os.path
12
import token
23
from typing import Any, Dict, Optional, IO, Text, Tuple
34

@@ -139,7 +140,8 @@ def __init__(
139140
def generate(self, filename: str) -> None:
140141
header = self.grammar.metas.get("header", MODULE_PREFIX)
141142
if header is not None:
142-
self.print(header.rstrip("\n").format(filename=filename))
143+
basename = os.path.basename(filename)
144+
self.print(header.rstrip("\n").format(filename=basename))
143145
subheader = self.grammar.metas.get("subheader", "")
144146
if subheader:
145147
self.print(subheader.format(filename=filename))

0 commit comments

Comments
 (0)