[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