https://github.com/python/cpython/commit/9c5a86d23ad7d0df8611520dbf2c1746523... commit: 9c5a86d23ad7d0df8611520dbf2c1746523ac1be branch: 3.13 author: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> committer: erlend-aasland <erlend.aasland@protonmail.com> date: 2025-01-06T09:05:54Z summary: [3.13] gh-128519: Align the docstring of untokenize() to match the docs (GH-128521) (#128531) (cherry picked from commit aef52ca8b334ff90e8032da39f4d06e7b5130eb9) Co-authored-by: Tomas R <tomas.roun8@gmail.com> files: M Lib/tokenize.py diff --git a/Lib/tokenize.py b/Lib/tokenize.py index 4b4c3cfe16999b..430447d35e1adf 100644 --- a/Lib/tokenize.py +++ b/Lib/tokenize.py @@ -318,16 +318,10 @@ def untokenize(iterable): with at least two elements, a token number and token value. If only two tokens are passed, the resulting output is poor. - Round-trip invariant for full input: - Untokenized source will match input source exactly - - Round-trip invariant for limited input: - # Output bytes will tokenize back to the input - t1 = [tok[:2] for tok in tokenize(f.readline)] - newcode = untokenize(t1) - readline = BytesIO(newcode).readline - t2 = [tok[:2] for tok in tokenize(readline)] - assert t1 == t2 + The result is guaranteed to tokenize back to match the input so + that the conversion is lossless and round-trips are assured. + The guarantee applies only to the token type and token string as + the spacing between tokens (column positions) may change. """ ut = Untokenizer() out = ut.untokenize(iterable)