summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2023-07-20 23:08:52 (GMT)
committerGitHub <noreply@github.com>2023-07-20 23:08:52 (GMT)
commit12189108607a1d5d146f32094115297011c8b773 (patch)
tree0a591e9216e0d3bb250d512d36e283e3aaada23b /Tools
parent60e83968d555d53b97de04a0a00b2cdeb3187d39 (diff)
downloadcpython-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.py14
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):