Skip to content

Commit 6fd1418

Browse files
Anuradha-Agrawal-07blurb-it[bot]ambvStanFromIreland
authored
gh-139742: Add support for Python 3.14 t-string prefixes in IDLE colorizer and tests (#139756)
Add 't' prefix to colorizer.py stringprefix regex to support Python 3.14 template strings. Add t prefixes to test_colorizer.py source test text and adjust line numbers on test methods. --------- Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Łukasz Langa <[email protected]> Co-authored-by: Stan Ulbrych <[email protected]>
1 parent 197c610 commit 6fd1418

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

Lib/idlelib/colorizer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def make_pat():
4747
name not in keyword.kwlist]
4848
builtin = r"([^.'\"\\#]\b|^)" + any("BUILTIN", builtinlist) + r"\b"
4949
comment = any("COMMENT", [r"#[^\n]*"])
50-
stringprefix = r"(?i:r|u|f|fr|rf|b|br|rb)?"
50+
stringprefix = r"(?i:r|u|f|fr|rf|b|br|rb|t|rt|tr)?"
5151
sqstring = stringprefix + r"'[^'\\\n]*(\\.[^'\\\n]*)*'?"
5252
dqstring = stringprefix + r'"[^"\\\n]*(\\.[^"\\\n]*)*"?'
5353
sq3string = stringprefix + r"'''[^'\\]*((\\.|'(?!''))[^'\\]*)*(''')?"

Lib/idlelib/idle_test/test_colorizer.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ async def f(): await g()
3636
# All valid prefixes for unicode and byte strings should be colored.
3737
r'x', u'x', R'x', U'x', f'x', F'x'
3838
fr'x', Fr'x', fR'x', FR'x', rf'x', rF'x', Rf'x', RF'x'
39+
tr'x', Tr'x', tR'x', TR'x', rt'x', rT'x', Rt'x', RT'x'
3940
b'x',B'x', br'x',Br'x',bR'x',BR'x', rb'x', rB'x',Rb'x',RB'x'
4041
# Invalid combinations of legal characters should be half colored.
4142
ur'x', ru'x', uf'x', fu'x', UR'x', ufr'x', rfu'x', xf'x', fx'x'
@@ -390,19 +391,19 @@ def test_recolorize_main(self, mock_notify):
390391
('6.0', ('KEYWORD',)), ('6.10', ('DEFINITION',)), ('6.11', ()),
391392
('8.0', ('STRING',)), ('8.4', ()), ('8.5', ('STRING',)),
392393
('8.12', ()), ('8.14', ('STRING',)),
393-
('19.0', ('KEYWORD',)),
394-
('20.4', ('KEYWORD',)), ('20.16', ('KEYWORD',)),# ('20.19', ('KEYWORD',)),
395-
#('22.4', ('KEYWORD',)), ('22.10', ('KEYWORD',)), ('22.14', ('KEYWORD',)), ('22.19', ('STRING',)),
396-
#('23.12', ('KEYWORD',)),
397-
('24.8', ('KEYWORD',)),
398-
('25.4', ('KEYWORD',)), ('25.9', ('KEYWORD',)),
399-
('25.11', ('KEYWORD',)), ('25.15', ('STRING',)),
400-
('25.19', ('KEYWORD',)), ('25.22', ()),
401-
('25.24', ('KEYWORD',)), ('25.29', ('BUILTIN',)), ('25.37', ('KEYWORD',)),
402-
('26.4', ('KEYWORD',)), ('26.9', ('KEYWORD',)),# ('26.11', ('KEYWORD',)), ('26.14', (),),
403-
('27.25', ('STRING',)), ('27.38', ('STRING',)),
404-
('29.0', ('STRING',)),
405-
('30.1', ('STRING',)),
394+
('20.0', ('KEYWORD',)),
395+
('21.4', ('KEYWORD',)), ('21.16', ('KEYWORD',)),# ('21.19', ('KEYWORD',)),
396+
#('23.4', ('KEYWORD',)), ('23.10', ('KEYWORD',)), ('23.14', ('KEYWORD',)), ('23.19', ('STRING',)),
397+
#('24.12', ('KEYWORD',)),
398+
('25.8', ('KEYWORD',)),
399+
('26.4', ('KEYWORD',)), ('26.9', ('KEYWORD',)),
400+
('26.11', ('KEYWORD',)), ('26.15', ('STRING',)),
401+
('26.19', ('KEYWORD',)), ('26.22', ()),
402+
('26.24', ('KEYWORD',)), ('26.29', ('BUILTIN',)), ('26.37', ('KEYWORD',)),
403+
('27.4', ('KEYWORD',)), ('27.9', ('KEYWORD',)),# ('27.11', ('KEYWORD',)), ('27.14', (),),
404+
('28.25', ('STRING',)), ('28.38', ('STRING',)),
405+
('30.0', ('STRING',)),
406+
('31.1', ('STRING',)),
406407
# SYNC at the end of every line.
407408
('1.55', ('SYNC',)), ('2.50', ('SYNC',)), ('3.34', ('SYNC',)),
408409
)
@@ -433,7 +434,7 @@ def test_recolorize_main(self, mock_notify):
433434
eq(text.tag_nextrange('STRING', '8.12'), ('8.14', '8.17'))
434435
eq(text.tag_nextrange('STRING', '8.17'), ('8.19', '8.26'))
435436
eq(text.tag_nextrange('SYNC', '8.0'), ('8.26', '9.0'))
436-
eq(text.tag_nextrange('SYNC', '30.0'), ('30.10', '32.0'))
437+
eq(text.tag_nextrange('SYNC', '31.0'), ('31.10', '33.0'))
437438

438439
def _assert_highlighting(self, source, tag_ranges):
439440
"""Check highlighting of a given piece of code.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Colorize t-string prefixes for template strings in IDLE, as done for f-string prefixes.

0 commit comments

Comments
 (0)