Skip to content

Commit 93a540d

Browse files
authored
bpo-45866: pegen strips directory of "generated from" header (GH-29777) (GH-29792) (GH-29797)
"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) (cherry picked from commit b6defde)
1 parent 92631a4 commit 93a540d

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/pegen/parse.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
@@ -379,7 +380,8 @@ def out_of_memory_goto(self, expr: str, goto_target: str) -> None:
379380

380381
def generate(self, filename: str) -> None:
381382
self.collect_todo()
382-
self.print(f"// @generated by pegen.py from {filename}")
383+
basename = os.path.basename(filename)
384+
self.print(f"// @generated by pegen.py from {basename}")
383385
header = self.grammar.metas.get("header", EXTENSION_PREFIX)
384386
if header:
385387
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
import sys

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

@@ -142,7 +143,8 @@ def __init__(
142143
def generate(self, filename: str) -> None:
143144
header = self.grammar.metas.get("header", MODULE_PREFIX)
144145
if header is not None:
145-
self.print(header.rstrip("\n").format(filename=filename))
146+
basename = os.path.basename(filename)
147+
self.print(header.rstrip("\n").format(filename=basename))
146148
subheader = self.grammar.metas.get("subheader", "")
147149
if subheader:
148150
self.print(subheader.format(filename=filename))

0 commit comments

Comments
 (0)