Skip to content

Commit 253b7a0

Browse files
authored
bpo-45866: pegen strips directory of "generated from" header (GH-29777)
"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.
1 parent ee1e2c6 commit 253b7a0

File tree

5 files changed

+12
-4
lines changed

5 files changed

+12
-4
lines changed
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.

Diff for: Parser/parser.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// @generated by pegen from ./Grammar/python.gram
1+
// @generated by pegen from python.gram
22
#include "pegen.h"
33

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

Diff for: Tools/peg_generator/pegen/c_generator.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import ast
2+
import os.path
23
import re
34
from dataclasses import dataclass, field
45
from enum import Enum
@@ -416,7 +417,8 @@ def out_of_memory_goto(self, expr: str, goto_target: str) -> None:
416417

417418
def generate(self, filename: str) -> None:
418419
self.collect_rules()
419-
self.print(f"// @generated by pegen from {filename}")
420+
basename = os.path.basename(filename)
421+
self.print(f"// @generated by pegen from {basename}")
420422
header = self.grammar.metas.get("header", EXTENSION_PREFIX)
421423
if header:
422424
self.print(header.rstrip("\n"))

Diff for: Tools/peg_generator/pegen/grammar_parser.py

+1-1
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

Diff for: Tools/peg_generator/pegen/python_generator.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import os.path
12
import token
23
from typing import IO, Any, Dict, Optional, Sequence, Set, Text, Tuple
34

@@ -212,7 +213,8 @@ def generate(self, filename: str) -> None:
212213
self.collect_rules()
213214
header = self.grammar.metas.get("header", MODULE_PREFIX)
214215
if header is not None:
215-
self.print(header.rstrip("\n").format(filename=filename))
216+
basename = os.path.basename(filename)
217+
self.print(header.rstrip("\n").format(filename=basename))
216218
subheader = self.grammar.metas.get("subheader", "")
217219
if subheader:
218220
self.print(subheader)

0 commit comments

Comments
 (0)