"git@developer.sourcefind.cn:chenpangpang/transformers.git" did not exist on "3994fa5bafa56db6581d962d562f3c54fac291df"
Unverified Commit d2295708 authored by Sylvain Gugger's avatar Sylvain Gugger Committed by GitHub
Browse files

Better error message when signal is not supported on OS (#25049)

* Better error message when signal is not supported on OS

* Address review comments
parent c0d1c330
...@@ -532,19 +532,27 @@ def resolve_trust_remote_code(trust_remote_code, model_name, has_local_code, has ...@@ -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)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment