Skip to content

Commit

Permalink
Keep Python script limited to sysconfig usage
Browse files Browse the repository at this point in the history
  • Loading branch information
dhruvmanila committed Jul 3, 2024
1 parent b654da6 commit 63a63a0
Show file tree
Hide file tree
Showing 6 changed files with 179 additions and 148 deletions.
35 changes: 35 additions & 0 deletions bundled/tool/find_ruff_binary_path.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import os
import sys
import sysconfig
from pathlib import Path
from typing import Optional

RUFF_EXE = "ruff.exe" if sys.platform == "win32" else "ruff"


def find_ruff_binary_path() -> Optional[Path]:
"""Return the ruff binary path, `None` if unable to find."""
bin_path = Path(sysconfig.get_path("scripts")) / RUFF_EXE
if bin_path.is_file():
return bin_path

if sys.version_info >= (3, 10):
user_scheme = sysconfig.get_preferred_scheme("user")
elif os.name == "nt":
user_scheme = "nt_user"
elif sys.platform == "darwin" and sys._framework:
user_scheme = "osx_framework_user"
else:
user_scheme = "posix_user"

scripts_path = Path(sysconfig.get_path("scripts", scheme=user_scheme)) / RUFF_EXE
if scripts_path.is_file():
return scripts_path

return None


if __name__ == "__main__":
ruff_binary_path = find_ruff_binary_path()
if ruff_binary_path:
print(os.fsdecode(str(ruff_binary_path)), flush=True)
92 changes: 0 additions & 92 deletions bundled/tool/ruff_server.py

This file was deleted.

98 changes: 77 additions & 21 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -386,13 +386,15 @@
"dependencies": {
"fs-extra": "^11.1.1",
"ovsx": "^0.7.1",
"vscode-languageclient": "^8.1.0"
"vscode-languageclient": "^8.1.0",
"which": "^4.0.0"
},
"devDependencies": {
"@types/fs-extra": "^11.0.1",
"@types/glob": "^8.1.0",
"@types/node": "^20.3.1",
"@types/vscode": "1.75.0",
"@types/which": "^3.0.4",
"@typescript-eslint/eslint-plugin": "^5.59.2",
"@typescript-eslint/parser": "^5.59.2",
"@vscode/vsce": "^2.19.0",
Expand Down
11 changes: 5 additions & 6 deletions src/common/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,15 @@ export const DEBUG_SERVER_SCRIPT_PATH = path.join(
);

/**
* Path to the Python script that starts the native language server with an
* appropriate `ruff` executable.
* Path to the Python script that tries to find the Ruff binary path.
*
* This should only be used as a fallback if the user has not specified either
* the `path` setting or is not using the bundled import strategy.
* This should only be used as a fallback if the user has not specified the
* `path` setting or the import strategy isn't `useBundled`.
*/
export const NATIVE_SERVER_SCRIPT_PATH = path.join(
export const FIND_RUFF_BINARY_SCRIPT_PATH = path.join(
BUNDLED_PYTHON_SCRIPTS_DIR,
"tool",
"ruff_server.py",
"find_ruff_binary_path.py",
);

/**
Expand Down
Loading

0 comments on commit 63a63a0

Please sign in to comment.