Show More
@@ -146,20 +146,20 b' def _should_be_async(cell: str) -> bool:' | |||
|
146 | 146 | |
|
147 | 147 | If it works, assume it should be async. Otherwise Return False. |
|
148 | 148 | |
|
149 |
Not handled yet: If the block of code has a return statement as |
|
|
149 | Not handled yet: If the block of code has a return statement as the top | |
|
150 | 150 | level, it will be seen as async. This is a know limitation. |
|
151 | 151 | """ |
|
152 | 152 | if sys.version_info > (3, 8): |
|
153 | 153 | try: |
|
154 | 154 | code = compile(cell, "<>", "exec", flags=getattr(ast,'PyCF_ALLOW_TOP_LEVEL_AWAIT', 0x0)) |
|
155 | 155 | return inspect.CO_COROUTINE & code.co_flags == inspect.CO_COROUTINE |
|
156 | except SyntaxError: | |
|
156 | except (SyntaxError, MemoryError): | |
|
157 | 157 | return False |
|
158 | 158 | try: |
|
159 | 159 | # we can't limit ourself to ast.parse, as it __accepts__ to parse on |
|
160 | 160 | # 3.7+, but just does not _compile_ |
|
161 | 161 | code = compile(cell, "<>", "exec") |
|
162 | except SyntaxError: | |
|
162 | except (SyntaxError, MemoryError): | |
|
163 | 163 | try: |
|
164 | 164 | parse_tree = _async_parse_cell(cell) |
|
165 | 165 | |
@@ -167,7 +167,7 b' def _should_be_async(cell: str) -> bool:' | |||
|
167 | 167 | v = _AsyncSyntaxErrorVisitor() |
|
168 | 168 | v.visit(parse_tree) |
|
169 | 169 | |
|
170 | except SyntaxError: | |
|
170 | except (SyntaxError, MemoryError): | |
|
171 | 171 | return False |
|
172 | 172 | return True |
|
173 | 173 | return False |
General Comments 0
You need to be logged in to leave comments.
Login now