From a5d2ad226b3f7fbfbb4583211f5e130491d8a07e Mon Sep 17 00:00:00 2001 From: Cody Maloney Date: Mon, 7 Oct 2024 23:48:23 -0700 Subject: [PATCH 1/2] gh-125084: Resolve paths in generator code In out of tree builds, the paths can contain `../ which needs to be resolved for the relative path calculation to work. --- Tools/cases_generator/generators_common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tools/cases_generator/generators_common.py b/Tools/cases_generator/generators_common.py index f32a20b304c354..4b9a1a00cd739a 100644 --- a/Tools/cases_generator/generators_common.py +++ b/Tools/cases_generator/generators_common.py @@ -44,12 +44,12 @@ def peek(self) -> Token | None: return self.look_ahead ROOT = Path(__file__).parent.parent.parent -DEFAULT_INPUT = (ROOT / "Python/bytecodes.c").absolute().as_posix() +DEFAULT_INPUT = (ROOT / "Python/bytecodes.c").resolve().as_posix() def root_relative_path(filename: str) -> str: try: - return Path(filename).absolute().relative_to(ROOT).as_posix() + return Path(filename).resolve().relative_to(ROOT).as_posix() except ValueError: # Not relative to root, just return original path. return filename From bd6b5cb76603c9b0e3907637189f8d8cc509b58e Mon Sep 17 00:00:00 2001 From: Cody Maloney Date: Tue, 8 Oct 2024 00:02:31 -0700 Subject: [PATCH 2/2] Move resolve to ROOT --- Tools/cases_generator/generators_common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tools/cases_generator/generators_common.py b/Tools/cases_generator/generators_common.py index 4b9a1a00cd739a..0bfa1a3b56fbc2 100644 --- a/Tools/cases_generator/generators_common.py +++ b/Tools/cases_generator/generators_common.py @@ -43,8 +43,8 @@ def peek(self) -> Token | None: break return self.look_ahead -ROOT = Path(__file__).parent.parent.parent -DEFAULT_INPUT = (ROOT / "Python/bytecodes.c").resolve().as_posix() +ROOT = Path(__file__).parent.parent.parent.resolve() +DEFAULT_INPUT = (ROOT / "Python/bytecodes.c").as_posix() def root_relative_path(filename: str) -> str: