From d73e81c77b842d386ebdfe4fc984fea364ca51b8 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Wed, 26 Jan 2022 22:05:38 -0500 Subject: [PATCH] Popen_safe and wrappers can accept os.PathLike for cwd Do not require users to convert it to a string first. This is a waste of time and effort for exactly the same results. --- mesonbuild/mesonlib/universal.py | 6 +++--- mesonbuild/modules/unstable_external_project.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mesonbuild/mesonlib/universal.py b/mesonbuild/mesonlib/universal.py index 1e3f54e01..27d1240dd 100644 --- a/mesonbuild/mesonlib/universal.py +++ b/mesonbuild/mesonlib/universal.py @@ -185,14 +185,14 @@ class GitException(MesonException): self.output = output.strip() if output else '' GIT = shutil.which('git') -def git(cmd: T.List[str], workingdir: str, check: bool = False, **kwargs: T.Any) -> T.Tuple[subprocess.Popen, str, str]: +def git(cmd: T.List[str], workingdir: T.Union[str, bytes, os.PathLike], check: bool = False, **kwargs: T.Any) -> T.Tuple[subprocess.Popen, str, str]: cmd = [GIT] + cmd p, o, e = Popen_safe(cmd, cwd=workingdir, **kwargs) if check and p.returncode != 0: raise GitException('Git command failed: ' + str(cmd), e) return p, o, e -def quiet_git(cmd: T.List[str], workingdir: str, check: bool = False) -> T.Tuple[bool, str]: +def quiet_git(cmd: T.List[str], workingdir: T.Union[str, bytes, os.PathLike], check: bool = False) -> T.Tuple[bool, str]: if not GIT: m = 'Git program not found.' if check: @@ -203,7 +203,7 @@ def quiet_git(cmd: T.List[str], workingdir: str, check: bool = False) -> T.Tuple return False, e return True, o -def verbose_git(cmd: T.List[str], workingdir: str, check: bool = False) -> bool: +def verbose_git(cmd: T.List[str], workingdir: T.Union[str, bytes, os.PathLike], check: bool = False) -> bool: if not GIT: m = 'Git program not found.' if check: diff --git a/mesonbuild/modules/unstable_external_project.py b/mesonbuild/modules/unstable_external_project.py index c43fc1289..4e3d6db19 100644 --- a/mesonbuild/modules/unstable_external_project.py +++ b/mesonbuild/modules/unstable_external_project.py @@ -205,7 +205,7 @@ class ExternalProject(NewExtensionModule): output.flush() else: mlog.log(m) - p, *_ = Popen_safe(command, cwd=str(workdir), env=self.run_env, + p, *_ = Popen_safe(command, cwd=workdir, env=self.run_env, stderr=subprocess.STDOUT, stdout=output) if p.returncode != 0: