fix: running unsloth inside of System32 now refuses to run and quits with an error (#5934)
* -Added catch for unsloth running inside of system32 (for windows) - changed import statement to import os as _os instead of only os.path as _osp - replaced __osp mention with __os.path * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Adressed geminis codereview. Did not change Error message as "System32" is precise enough and the _system32 variable is lowercase only * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Etherll <61019402+Etherll@users.noreply.github.com>
This commit is contained in:
parent
36bc0394d9
commit
8628439ede
1 changed files with 17 additions and 3 deletions
|
|
@ -1,7 +1,7 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
# Copyright 2026-present the Unsloth AI Inc. team. All rights reserved. See /studio/LICENSE.AGPL-3.0
|
||||
|
||||
import os.path as _osp
|
||||
import os as _os
|
||||
import sys as _sys
|
||||
|
||||
import typer
|
||||
|
|
@ -20,7 +20,7 @@ from unsloth_cli.commands.studio import (
|
|||
|
||||
# Canonicalise `-np<N>` only under the `unsloth` console-script;
|
||||
# third-party scripts that import unsloth_cli keep their argv intact.
|
||||
_entry_base = _osp.basename(_sys.argv[0]).lower() if _sys.argv else ""
|
||||
_entry_base = _os.path.basename(_sys.argv[0]).lower() if _sys.argv else ""
|
||||
if _entry_base in {"unsloth", "unsloth.exe"}:
|
||||
_expand_attached_np_short()
|
||||
del _entry_base
|
||||
|
|
@ -53,7 +53,21 @@ def main(
|
|||
help = "Show version and exit.",
|
||||
),
|
||||
):
|
||||
pass
|
||||
if (
|
||||
_sys.platform == "win32"
|
||||
): # this block catches unsloth running inside of System32 or any subdirs, this WILL cause errors if not prevented.
|
||||
_cwd = _os.path.normcase(_os.path.normpath(_os.getcwd()))
|
||||
_system32 = _os.path.normcase(
|
||||
_os.path.normpath(_os.path.join(_os.environ.get("WINDIR", r"C:\Windows"), "System32"))
|
||||
)
|
||||
if _cwd == _system32 or _cwd.startswith(_system32 + _os.sep):
|
||||
typer.secho(
|
||||
"Refusing to run Unsloth inside System32 as it will lead to Errors.\n"
|
||||
"cd to a normal working directory and try again.",
|
||||
fg = "red",
|
||||
err = True,
|
||||
)
|
||||
raise typer.Exit(code = 1)
|
||||
|
||||
|
||||
app.command()(train)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue