|
10 | 10 | from subprocess import PIPE, Popen
|
11 | 11 | from typing import Dict, Generator, List, Optional
|
12 | 12 |
|
| 13 | +if sys.platform == "win32": |
| 14 | + from subprocess import CREATE_NO_WINDOW |
| 15 | +else: |
| 16 | + # CREATE_NO_WINDOW flag only available on Windows. |
| 17 | + # Set constant as default `Popen` `creationflag` kwarg value (`0`) |
| 18 | + CREATE_NO_WINDOW = 0 |
| 19 | + |
13 | 20 | if sys.version_info >= (3, 11):
|
14 | 21 | import tomllib
|
15 | 22 | else:
|
@@ -502,7 +509,7 @@ def find_executable(executable) -> List[str]:
|
502 | 509 | # try the python module
|
503 | 510 | if cmd is None:
|
504 | 511 | if importlib.util.find_spec("ruff") is not None:
|
505 |
| - cmd = [sys.executable, "-m", "ruff"] |
| 512 | + cmd = [sys.executable.replace("pythonw", "python"), "-m", "ruff"] |
506 | 513 |
|
507 | 514 | # try system's ruff executable
|
508 | 515 | if cmd is None:
|
@@ -557,7 +564,7 @@ def run_ruff(
|
557 | 564 | cmd = [*find_executable(executable), str(subcommand), *arguments]
|
558 | 565 |
|
559 | 566 | log.debug(f"Calling {cmd} on '{document_path}'")
|
560 |
| - p = Popen(cmd, stdin=PIPE, stdout=PIPE) |
| 567 | + p = Popen(cmd, stdin=PIPE, stdout=PIPE, creationflags=CREATE_NO_WINDOW) |
561 | 568 | (stdout, _) = p.communicate(document_source.encode())
|
562 | 569 |
|
563 | 570 | if p.returncode != 0:
|
|
0 commit comments