diff options
author | Guido van Rossum <guido@python.org> | 2023-07-20 23:08:52 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-20 23:08:52 (GMT) |
commit | 12189108607a1d5d146f32094115297011c8b773 (patch) | |
tree | 0a591e9216e0d3bb250d512d36e283e3aaada23b /Tools | |
parent | 60e83968d555d53b97de04a0a00b2cdeb3187d39 (diff) | |
download | cpython-12189108607a1d5d146f32094115297011c8b773.zip cpython-12189108607a1d5d146f32094115297011c8b773.tar.gz cpython-12189108607a1d5d146f32094115297011c8b773.tar.bz2 |
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.
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/cases_generator/generate_cases.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/Tools/cases_generator/generate_cases.py b/Tools/cases_generator/generate_cases.py index a18229a..3a679b2 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): |