[Python-checkins] gh-105540: Show source files relative to root (#106927)
gvanrossum
webhook-mailer at python.org
Thu Jul 20 19:08:56 EDT 2023
https://github.com/python/cpython/commit/12189108607a1d5d146f32094115297011c8b773
commit: 12189108607a1d5d146f32094115297011c8b773
branch: main
author: Guido van Rossum <guido at python.org>
committer: gvanrossum <gvanrossum at gmail.com>
date: 2023-07-20T23:08:52Z
summary:
gh-105540: Show source files relative to root (#106927)
This restores a corner case: when the generator is run with working directory set to Tools/cases_generator, the source filenames listed in the generated provenance header should be relative to the repo root directory.
files:
M Tools/cases_generator/generate_cases.py
diff --git a/Tools/cases_generator/generate_cases.py b/Tools/cases_generator/generate_cases.py
index a18229a57143b..3a679b2090f19 100644
--- a/Tools/cases_generator/generate_cases.py
+++ b/Tools/cases_generator/generate_cases.py
@@ -17,6 +17,7 @@
import parser
from parser import StackEffect
+
HERE = os.path.dirname(__file__)
ROOT = os.path.join(HERE, "../..")
THIS = os.path.relpath(__file__, ROOT).replace(os.path.sep, posixpath.sep)
@@ -1153,10 +1154,15 @@ def write_function(
self.out.emit("")
def from_source_files(self) -> str:
- paths = f"\n{self.out.comment} ".join(
- prettify_filename(filename)
- for filename in self.input_filenames
- )
+ filenames = []
+ for filename in self.input_filenames:
+ try:
+ filename = os.path.relpath(filename, ROOT)
+ except ValueError:
+ # May happen on Windows if root and temp on different volumes
+ pass
+ filenames.append(filename)
+ paths = f"\n{self.out.comment} ".join(filenames)
return f"{self.out.comment} from:\n{self.out.comment} {paths}\n"
def write_provenance_header(self):
More information about the Python-checkins
mailing list