diff --git a/lib/tokenize_rt.py b/lib/tokenize_rt.py index ae91cc40..9f12e01f 100644 --- a/lib/tokenize_rt.py +++ b/lib/tokenize_rt.py @@ -99,6 +99,11 @@ def src_to_tokens(src: str) -> list[Token]: end_offset += len(newtok.encode()) tok_name = tokenize.tok_name[tok_type] + + if tok_name == 'FSTRING_MIDDLE': # pragma: >=3.12 cover + ecol += tok_text.count('{') + tok_text.count('}') + tok_text = tok_text.replace('{', '{{').replace('}', '}}') + tokens.append(Token(tok_name, tok_text, sline, end_offset)) last_line, last_col = eline, ecol if sline != eline: @@ -115,7 +120,7 @@ def tokens_to_src(tokens: Iterable[Token]) -> str: def reversed_enumerate( tokens: Sequence[Token], -) -> Generator[tuple[int, Token], None, None]: +) -> Generator[tuple[int, Token]]: for i in reversed(range(len(tokens))): yield i, tokens[i] diff --git a/requirements.txt b/requirements.txt index 94a65531..d0ee1941 100644 --- a/requirements.txt +++ b/requirements.txt @@ -40,7 +40,7 @@ rumps==0.4.0; platform_system == "Darwin" simplejson==3.19.2 six==1.16.0 tempora==5.7.0 -tokenize-rt==5.2.0 +tokenize-rt==6.0.0 tzdata==2024.1 tzlocal==5.0.1 urllib3<2