t-strings in Python (PEP 750)

Talk Python To Me

Python has many string formatting styles which have been added to the language over the years. Early Python used the % operator to injected formatted values into strings. And we have string.format() which offers several powerful styles. Both were verbose and indirect, so f-strings were added in Python 3.6. But these f-strings lacked security features (think little bobby tables) and they manifested as fully-formed strings to runtime code. Today we talk about the next evolution of Python string formatting for advanced use-cases (SQL, HTML, DSLs, etc): t-strings. We have Paul Everitt, David Peck, and Jim Baker on the show to introduce this upcoming new language feature.

Episode sponsors

Posit
Auth0
Talk Python Courses

Links from the show

Guests:
Paul on X: @paulweveritt
Paul on Mastodon: @pauleveritt@fosstodon.org
Dave Peck on Github: github.com
Jim Baker: github.com

PEP 750 – Template Strings: peps.python.org
tdom - Placeholder for future library on PyPI using PEP 750 t-strings: github.com
PEP 750: Tag Strings For Writing Domain-Specific Languages: discuss.python.org
How To Teach This: peps.python.org
PEP 501 – General purpose template literal strings: peps.python.org
Python's new t-strings: davepeck.org
PyFormat: Using % and .format() for great good!: pyformat.info
flynt: A tool to automatically convert old string literal formatting to f-strings: github.com
Examples of using t-strings as defined in PEP 750: github.com
htm.py issue: github.com
Exploits of a Mom: xkcd.com
pyparsing: github.com
Watch this episode on YouTube: youtube.com
Episode #505 deep-dive: talkpython.fm/505
Episode transcripts: talkpython.fm

--- Stay in touch with us ---
Subscribe to Talk Python on YouTube: youtube.com
Talk Python on Bluesky: @talkpython.fm at bsky.app
Talk Python on Mastodon: talkpython
Michael on Bluesky: @mkennedy.codes at bsky.app
Michael on Mastodon: mkennedy

To listen to explicit episodes, sign in.

Stay up to date with this show

Sign in or sign up to follow shows, save episodes and get the latest updates.

Select a country or region

Africa, Middle East, and India

Asia Pacific

Europe

Latin America and the Caribbean

The United States and Canada