-
-
Notifications
You must be signed in to change notification settings - Fork 31k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
inspect.getsourcelines() is buggy on 3.12 #104866
Comments
This is a bug in the implementation of the new tokenize module. The tokenizer checks whether something is in a parenthesized block in order to emit a cpython on main [$?] via C v14.0.3-clang via 🐍 pyenv 3.11.3
❯ cat hello.py
[
# hello
1
]
cpython on main [$?] via C v14.0.3-clang via 🐍 pyenv 3.11.3
❯ ./python.exe -m tokenize hello.py
0,0-0,0: ENCODING 'utf-8'
1,0-1,1: OP '['
1,1-1,2: NL '\n'
2,4-2,11: COMMENT '# hello'
2,11-2,12: NL '\n'
3,4-3,5: NUMBER '1'
3,5-3,6: NL '\n'
4,0-4,1: OP ']'
4,1-4,2: NL '\n' # This should be a NEWLINE instead
5,0-5,0: ENDMARKER '' I'm opening a PR shortly. |
…h comment (pythonGH-104870) (cherry picked from commit c90a862) Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
On 3.12, the last two lines (
a, )
) are not returned as part of the source lines. When I tried to minify by removing the first assert_is_value() call, it instead returned the print() line as part of the function.This looks related to the tokenizer, cc @pablogsal @lysnikolaou.
Linked PRs
The text was updated successfully, but these errors were encountered: