Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd6eb90e

Browse files
committed
Add suggestions from didyoumean
1 parent7473126 commitd6eb90e

File tree

6 files changed

+57
-8
lines changed

6 files changed

+57
-8
lines changed

‎backend/main/utils/__init__.py‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@
2323
frompygments.lexersimportget_lexer_by_name
2424
frompygments.stylesimportget_style_by_name
2525

26+
site_packages=strip_required_suffix(pygments.__file__,"pygments/__init__.py")
27+
sys.path.append(site_packages+"didyoumean/")
28+
29+
fromdidyoumean.didyoumean_internalimportget_suggestions_for_exception# noqa
30+
31+
2632
lexer=get_lexer_by_name("python3")
2733
monokai=get_style_by_name("monokai")
2834
html_formatter=HtmlFormatter(nowrap=True)

‎backend/main/workers/limits.py‎

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
fromfunctoolsimportlru_cache
55
fromimportlibimportimport_module
66

7+
frommain.utilsimportget_suggestions_for_exception
8+
79

810
defpatch_cwd():
911
"""
@@ -36,11 +38,16 @@ def set_limits():
3638
exceptValueError:
3739
pass
3840

39-
frommain.workersimportbirdseye,snoop
40-
str([snoop,birdseye])
41-
4241
patch_cwd()
4342

43+
# Trigger imports before limiting access to files
44+
frommain.workersimportbirdseye,snoop# noqa
45+
46+
try:
47+
sdfsdfsdfsd# noqa
48+
exceptNameErrorase:
49+
list(get_suggestions_for_exception(e,e.__traceback__))
50+
4451
resource.setrlimit(resource.RLIMIT_NOFILE, (0,0))
4552

4653

‎backend/main/workers/tracebacks.py‎

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
importpygments
77
fromcheap_reprimportcheap_repr
8-
fromexecutingimportSource
98
frompygments.formatters.htmlimportHtmlFormatter
109
fromstack_dataimport (
1110
style_with_executing_node,
@@ -16,7 +15,7 @@
1615
RepeatedFrames,
1716
)
1817

19-
frommain.utilsimportinternal_dir,is_valid_syntax,lexer
18+
frommain.utilsimportis_valid_syntax,lexer,get_suggestions_for_exception
2019

2120
pygments_style=style_with_executing_node("monokai","bg:#005080")
2221
pygments_formatter=HtmlFormatter(
@@ -25,6 +24,16 @@
2524
)
2625

2726

27+
defdidyoumean_suggestions(e)->List[str]:
28+
if"maximum recursion depth exceeded"instr(e):
29+
return []
30+
return [
31+
suggestion
32+
forsuggestioninget_suggestions_for_exception(e,e.__traceback__)
33+
if1
34+
]
35+
36+
2837
classTracebackSerializer:
2938
defformat_exception(self,e)->List[dict]:
3039
ife.__cause__isnotNone:
@@ -44,6 +53,7 @@ def format_exception(self, e) -> List[dict]:
4453
message=traceback._some_str(e),
4554
),
4655
tail="",
56+
didyoumean=didyoumean_suggestions(e),
4757
)
4858
)
4959
returnresult

‎frontend/src/shell/TerminalMessage.jsx‎

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,19 @@ const Tracebacks = ({tracebacks}) =>
5151
<divclassName="traceback-exception">
5252
<strong>{traceback.exception.type}:</strong>{traceback.exception.message}
5353
</div>
54+
{
55+
traceback.didyoumean.length>0&&
56+
<divclassName="traceback-didyoumean">
57+
<i>Did you mean...</i>
58+
<ul>
59+
{
60+
traceback.didyoumean.map((suggestion,suggestionIndex)=>
61+
<likey={suggestionIndex}>{suggestion}?</li>
62+
)
63+
}
64+
</ul>
65+
</div>
66+
}
5467
{
5568
traceback.tail&&<divclassName="traceback-tail">{traceback.tail}</div>
5669
}
@@ -97,8 +110,8 @@ const RepeatedFrames = ({data}) =>
97110
<div>Similar frames skipped:</div>
98111
<ul>
99112
{
100-
data.map(item=>
101-
<li>
113+
data.map((item,itemIndex)=>
114+
<likey={itemIndex}>
102115
{`${item.name} at line${item.lineno} -${item.count} times`}
103116
</li>)
104117
}

‎poetry.lock‎

Lines changed: 13 additions & 1 deletion
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎pyproject.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ psutil = "^5.7.0"
3030
dryenv ="^0.0.1"
3131
stack_data ="^0.0.7"
3232
jsonfield ="^3.1.0"
33+
BetterErrorMessages ="^0.4"
3334

3435
[tool.poetry.extras]
3536
production = ["gevent","gunicorn","psycopg2"]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp