aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/string/templatelib.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/string/templatelib.py')
-rw-r--r--Lib/string/templatelib.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/Lib/string/templatelib.py b/Lib/string/templatelib.py
new file mode 100644
index 00000000000..14b40e1e36e
--- /dev/null
+++ b/Lib/string/templatelib.py
@@ -0,0 +1,26 @@
+"""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)