Add files via upload
This commit is contained in:
parent
c2614ffc6f
commit
6535e0cb1e
|
@ -0,0 +1,44 @@
|
|||
import inspect
|
||||
from io import StringIO
|
||||
import sys
|
||||
import re
|
||||
|
||||
did_you_mean = re.compile(r'Did you mean (.*)\?', re.IGNORECASE)
|
||||
what = 'what?'
|
||||
|
||||
|
||||
class Yes:
|
||||
def __repr__(self):
|
||||
try:
|
||||
last_error = sys.last_value
|
||||
except:
|
||||
return what
|
||||
|
||||
if not isinstance(last_error, Exception):
|
||||
return what
|
||||
|
||||
error_message = str(last_error)
|
||||
|
||||
try:
|
||||
suggestion = did_you_mean.search(error_message).group(1)
|
||||
except Exception as e:
|
||||
return what
|
||||
|
||||
if not suggestion.startswith('print('):
|
||||
suggestion_ = f'print({suggestion})'
|
||||
else:
|
||||
suggestion_ = suggestion
|
||||
|
||||
frame = inspect.currentframe()
|
||||
locals = frame.f_back.f_locals
|
||||
del frame
|
||||
|
||||
old_stdout = sys.stdout
|
||||
eval_output = sys.stdout = StringIO()
|
||||
|
||||
eval(suggestion_, globals(), locals)
|
||||
sys.stdout = old_stdout
|
||||
|
||||
return(f'>>> {suggestion} \n{eval_output.getvalue()[:-1]}')
|
||||
|
||||
yes = Yes()
|
Loading…
Reference in New Issue