Better error message when signal is not supported on OS (#25049)
* Better error message when signal is not supported on OS * Address review comments
This commit is contained in:
@@ -532,19 +532,27 @@ def resolve_trust_remote_code(trust_remote_code, model_name, has_local_code, has
|
|||||||
if has_local_code:
|
if has_local_code:
|
||||||
trust_remote_code = False
|
trust_remote_code = False
|
||||||
elif has_remote_code and TIME_OUT_REMOTE_CODE > 0:
|
elif has_remote_code and TIME_OUT_REMOTE_CODE > 0:
|
||||||
signal.signal(signal.SIGALRM, _raise_timeout_error)
|
try:
|
||||||
signal.alarm(TIME_OUT_REMOTE_CODE)
|
signal.signal(signal.SIGALRM, _raise_timeout_error)
|
||||||
while trust_remote_code is None:
|
signal.alarm(TIME_OUT_REMOTE_CODE)
|
||||||
answer = input(
|
while trust_remote_code is None:
|
||||||
f"Loading {model_name} requires to execute some code in that repo, you can inspect the content of "
|
answer = input(
|
||||||
f"the repository at https://hf.co/{model_name}. You can dismiss this prompt by passing "
|
f"Loading {model_name} requires to execute some code in that repo, you can inspect the content of "
|
||||||
"`trust_remote_code=True`.\nDo you accept? [y/N] "
|
f"the repository at https://hf.co/{model_name}. You can dismiss this prompt by passing "
|
||||||
|
"`trust_remote_code=True`.\nDo you accept? [y/N] "
|
||||||
|
)
|
||||||
|
if answer.lower() in ["yes", "y", "1"]:
|
||||||
|
trust_remote_code = True
|
||||||
|
elif answer.lower() in ["no", "n", "0", ""]:
|
||||||
|
trust_remote_code = False
|
||||||
|
signal.alarm(0)
|
||||||
|
except AttributeError:
|
||||||
|
# OS which does not support signal.SIGALRM
|
||||||
|
raise ValueError(
|
||||||
|
"Loading this model requires you to execute execute some code in that repo on your local machine. "
|
||||||
|
f"Make sure you have read the code at https://hf.co/{model_name} to avoid malicious use, then set "
|
||||||
|
"the option `trust_remote_code=True` to remove this error."
|
||||||
)
|
)
|
||||||
if answer.lower() in ["yes", "y", "1"]:
|
|
||||||
trust_remote_code = True
|
|
||||||
elif answer.lower() in ["no", "n", "0", ""]:
|
|
||||||
trust_remote_code = False
|
|
||||||
signal.alarm(0)
|
|
||||||
elif has_remote_code:
|
elif has_remote_code:
|
||||||
# For the CI which puts the timeout at 0
|
# For the CI which puts the timeout at 0
|
||||||
_raise_timeout_error(None, None)
|
_raise_timeout_error(None, None)
|
||||||
|
|||||||
Reference in New Issue
Block a user