Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Co-authored-by: Wingy <git@wingysam.xyz> Co-authored-by: Koudai Aono <koxudaxi@gmail.com> Co-authored-by: Dave Peck <davepeck@gmail.com> Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> Co-authored-by: Paul Everitt <pauleveritt@me.com> Co-authored-by: sobolevn <mail@sobolevn.me>
27 lines
641 B
Python
27 lines
641 B
Python
"""Support for template string literals (t-strings)."""
|
|
|
|
__all__ = [
|
|
"Interpolation",
|
|
"Template",
|
|
]
|
|
|
|
t = t"{0}"
|
|
Template = type(t)
|
|
Interpolation = type(t.interpolations[0])
|
|
del t
|
|
|
|
def _template_unpickle(*args):
|
|
import itertools
|
|
|
|
if len(args) != 2:
|
|
raise ValueError('Template expects tuple of length 2 to unpickle')
|
|
|
|
strings, interpolations = args
|
|
parts = []
|
|
for string, interpolation in itertools.zip_longest(strings, interpolations):
|
|
if string is not None:
|
|
parts.append(string)
|
|
if interpolation is not None:
|
|
parts.append(interpolation)
|
|
return Template(*parts)
|