diff --git a/aider/linter.py b/aider/linter.py index 920a8b7c6..51ed40b70 100644 --- a/aider/linter.py +++ b/aider/linter.py @@ -4,7 +4,7 @@ import subprocess import sys import traceback import warnings -import shlex +import oslex from dataclasses import dataclass from pathlib import Path @@ -45,7 +45,7 @@ class Linter: return fname def run_cmd(self, cmd, rel_fname, code): - cmd += " " + shlex.quote(rel_fname) + cmd += " " + oslex.quote(rel_fname) returncode = 0 stdout = "" diff --git a/aider/utils.py b/aider/utils.py index c6773f140..8ab8184a3 100644 --- a/aider/utils.py +++ b/aider/utils.py @@ -1,7 +1,7 @@ import itertools import os import platform -import shlex +import oslex import subprocess import sys import tempfile @@ -384,10 +384,7 @@ def printable_shell_command(cmd_list): Returns: str: Shell-escaped command string. """ - if platform.system() == "Windows": - return subprocess.list2cmdline(cmd_list) - else: - return shlex.join(cmd_list) + return oslex.join(cmd_list) def main(): diff --git a/requirements.txt b/requirements.txt index 44dbe2956..62832718b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -184,6 +184,8 @@ monotonic==1.6 # via # -c requirements/common-constraints.txt # posthog +mslex==1.3.0 + # via oslex multidict==6.4.3 # via # -c requirements/common-constraints.txt @@ -202,6 +204,8 @@ openai==1.73.0 # via # -c requirements/common-constraints.txt # litellm +oslex==0.1.3 + # via -r requirements/requirements.in packaging==24.2 # via # -c requirements/common-constraints.txt @@ -423,6 +427,6 @@ zipp==3.21.0 # via # -c requirements/common-constraints.txt # importlib-metadata - + tree-sitter==0.23.2; python_version < "3.10" tree-sitter==0.24.0; python_version >= "3.10" diff --git a/requirements/requirements.in b/requirements/requirements.in index 101f16988..5d75f3fa7 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -28,6 +28,7 @@ watchfiles socksio pip pillow +oslex # The proper dependency is networkx[default], but this brings # in matplotlib and a bunch of other deps diff --git a/tests/basic/test_linter.py b/tests/basic/test_linter.py index ace4a9311..60132b565 100644 --- a/tests/basic/test_linter.py +++ b/tests/basic/test_linter.py @@ -43,7 +43,7 @@ class TestLinter(unittest.TestCase): from pathlib import Path root = Path(__file__).parent.parent.parent.absolute().as_posix() linter = Linter(encoding="utf-8", root=root) - result = linter.run_cmd("dir", "tests/basic", "code") + result = linter.run_cmd("dir", "tests\\basic", "code") self.assertIsNone(result) @patch("subprocess.Popen")