-
-
Notifications
You must be signed in to change notification settings - Fork 32.2k
bpo-36654: add example to generate token from another file #12947
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This example confuse me, because the file example.py
does not exist. Maybe you need to do something like hello.py
Doc/library/tokenize.rst
Outdated
Example of tokenizing from another file:: | ||
|
||
import tokenize | ||
f = open('example.py', 'rb') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using tokenize.open()
would be better as it automatically detect the encoding of the file:
Line 449 in 5d90954
encoding, lines = detect_encoding(buffer.readline) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, I agree with Emmanuel that using the existing hello.py
as an example would make the example easier to follow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I found the tokenize function already call detect_encoding
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just realized that tokenize.open()
returns a text stream, so passing it to tokenize.tokenize()
wouldn't work.
We can use tokenize.generate_tokens()
to demonstrate how the str
API works:
import tokenize
with tokenize.open('hello.py') as f:
token_gen = tokenize.generate_tokens(f.readline)
for token in token_gen:
print(token)
Then fallback to your example to show the usage of the bytes
API:
import tokenize
with open('hello.py', 'rb') as f:
token_gen = tokenize.tokenize(f.readline)
for token in token_gen:
print(token)
A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated. Once you have made the requested changes, please leave a comment on this pull request containing the phrase |
Hi @Windsooon Could you update your PR with the last comment of @berkerpeksag and with the Thank you |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your contribution but you have to update your PR with the recommendations of @berkerpeksag
Hello, @matrixise, I would love to update the example if needed. However, Serhiy Storchaka didn't agree with it
|
I think Serhiy's comment was about the current form of the PR. In my last comment, I was proposing to add examples for both bytes and unicode APIs of the tokenize module. As a core developer, even I missed that |
@Windsooon, any updates? Thanks! |
Sure, I will fix it in two days. Thank you for reminding.
|
Hi, @csabella. I just updated the PR base on @berkerpeksag 's suggestion. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks pretty good to me, thank you!
Comments have been addressed.
@berkerpeksag: Please replace |
Thanks @Windsooon for the PR, and @berkerpeksag for merging it 🌮🎉.. I'm working now to backport this PR to: 3.7, 3.8. |
…honGH-12947) (cherry picked from commit 4b09dc7) Co-authored-by: Windson yang <[email protected]>
GH-18187 is a backport of this pull request to the 3.8 branch. |
…honGH-12947) (cherry picked from commit 4b09dc7) Co-authored-by: Windson yang <[email protected]>
GH-18188 is a backport of this pull request to the 3.7 branch. |
…H-12947) (cherry picked from commit 4b09dc7) Co-authored-by: Windson yang <[email protected]>
Add example to generate token from another file.
https://bugs.python.org/issue36654