From: Guido van Rossum Date: Thu, 20 Jul 2023 23:08:52 +0000 (-0700) Subject: gh-105540: Show source files relative to root (#106927) X-Git-Tag: v3.13.0a1~1327 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12189108607a1d5d146f32094115297011c8b773;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Tools/cases_generator/generate_cases.py b/Tools/cases_generator/generate_cases.py index a18229a57143..3a679b2090f1 100644 --- a/Tools/cases_generator/generate_cases.py +++ b/Tools/cases_generator/generate_cases.py @@ -17,6 +17,7 @@ import lexer as lx 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 @@ class Analyzer: 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):