langfun 0.0.2.dev20240527__tar.gz → 0.0.2.dev20240529__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/PKG-INFO +1 -1
  2. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/language_model_test.py +3 -2
  3. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/google_genai_test.py +1 -1
  4. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/openai_test.py +1 -1
  5. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/vertexai_test.py +1 -1
  6. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/message.py +1 -1
  7. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/message_test.py +12 -9
  8. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modality.py +2 -2
  9. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modality_test.py +1 -1
  10. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/completion_test.py +2 -2
  11. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/prompting_test.py +8 -6
  12. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/template_test.py +1 -1
  13. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun.egg-info/PKG-INFO +1 -1
  14. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/LICENSE +0 -0
  15. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/README.md +0 -0
  16. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/__init__.py +0 -0
  17. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/__init__.py +0 -0
  18. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/__init__.py +0 -0
  19. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/__init__.py +0 -0
  20. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/correction.py +0 -0
  21. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/correction_test.py +0 -0
  22. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/errors.py +0 -0
  23. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/errors_test.py +0 -0
  24. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/execution.py +0 -0
  25. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/execution_test.py +0 -0
  26. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/generation.py +0 -0
  27. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/generation_test.py +0 -0
  28. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/parsing.py +0 -0
  29. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/parsing_test.py +0 -0
  30. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/permissions.py +0 -0
  31. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/coding/python/permissions_test.py +0 -0
  32. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/component.py +0 -0
  33. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/component_test.py +0 -0
  34. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/concurrent.py +0 -0
  35. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/concurrent_test.py +0 -0
  36. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/console.py +0 -0
  37. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/console_test.py +0 -0
  38. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/eval/__init__.py +0 -0
  39. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/eval/base.py +0 -0
  40. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/eval/base_test.py +0 -0
  41. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/eval/matching.py +0 -0
  42. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/eval/matching_test.py +0 -0
  43. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/eval/patching.py +0 -0
  44. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/eval/patching_test.py +0 -0
  45. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/eval/scoring.py +0 -0
  46. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/eval/scoring_test.py +0 -0
  47. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/langfunc.py +0 -0
  48. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/langfunc_test.py +0 -0
  49. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/language_model.py +0 -0
  50. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/__init__.py +0 -0
  51. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/anthropic.py +0 -0
  52. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/anthropic_test.py +0 -0
  53. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/cache/__init__.py +0 -0
  54. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/cache/base.py +0 -0
  55. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/cache/in_memory.py +0 -0
  56. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/cache/in_memory_test.py +0 -0
  57. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/fake.py +0 -0
  58. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/fake_test.py +0 -0
  59. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/google_genai.py +0 -0
  60. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/groq.py +0 -0
  61. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/groq_test.py +0 -0
  62. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/llama_cpp.py +0 -0
  63. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/llama_cpp_test.py +0 -0
  64. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/openai.py +0 -0
  65. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/llms/vertexai.py +0 -0
  66. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/memories/__init__.py +0 -0
  67. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/memories/conversation_history.py +0 -0
  68. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/memories/conversation_history_test.py +0 -0
  69. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/memory.py +0 -0
  70. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modalities/__init__.py +0 -0
  71. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modalities/image.py +0 -0
  72. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modalities/image_test.py +0 -0
  73. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modalities/mime.py +0 -0
  74. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modalities/mime_test.py +0 -0
  75. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modalities/pdf.py +0 -0
  76. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modalities/pdf_test.py +0 -0
  77. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modalities/video.py +0 -0
  78. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/modalities/video_test.py +0 -0
  79. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/natural_language.py +0 -0
  80. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/natural_language_test.py +0 -0
  81. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/sampling.py +0 -0
  82. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/sampling_test.py +0 -0
  83. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/__init__.py +0 -0
  84. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/completion.py +0 -0
  85. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/description.py +0 -0
  86. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/description_test.py +0 -0
  87. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/function_generation.py +0 -0
  88. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/function_generation_test.py +0 -0
  89. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/mapping.py +0 -0
  90. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/mapping_test.py +0 -0
  91. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/parsing.py +0 -0
  92. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/parsing_test.py +0 -0
  93. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/prompting.py +0 -0
  94. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/schema.py +0 -0
  95. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/schema_generation.py +0 -0
  96. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/schema_generation_test.py +0 -0
  97. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/schema_test.py +0 -0
  98. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/scoring.py +0 -0
  99. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/structured/scoring_test.py +0 -0
  100. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/subscription.py +0 -0
  101. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/subscription_test.py +0 -0
  102. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/template.py +0 -0
  103. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/templates/__init__.py +0 -0
  104. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/templates/completion.py +0 -0
  105. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/templates/completion_test.py +0 -0
  106. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/templates/conversation.py +0 -0
  107. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/templates/conversation_test.py +0 -0
  108. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/templates/demonstration.py +0 -0
  109. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/templates/demonstration_test.py +0 -0
  110. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/templates/selfplay.py +0 -0
  111. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/templates/selfplay_test.py +0 -0
  112. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/text_formatting.py +0 -0
  113. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun/core/text_formatting_test.py +0 -0
  114. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun.egg-info/SOURCES.txt +0 -0
  115. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun.egg-info/dependency_links.txt +0 -0
  116. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun.egg-info/requires.txt +0 -0
  117. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/langfun.egg-info/top_level.txt +0 -0
  118. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/setup.cfg +0 -0
  119. {langfun-0.0.2.dev20240527 → langfun-0.0.2.dev20240529}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langfun
3
- Version: 0.0.2.dev20240527
3
+ Version: 0.0.2.dev20240529
4
4
  Summary: Langfun: Language as Functions.
5
5
  Home-page: https://github.com/google/langfun
6
6
  Author: Langfun Authors
@@ -418,8 +418,9 @@ class LanguageModelTest(unittest.TestCase):
418
418
  with contextlib.redirect_stdout(string_io):
419
419
  self.assertEqual(
420
420
  lm(message_lib.UserMessage(
421
- 'hi {{image}}', image=Image()), debug=True),
422
- 'hi {{image}}')
421
+ 'hi <<[[image]]>>', image=Image()), debug=True),
422
+ 'hi <<[[image]]>>'
423
+ )
423
424
 
424
425
  debug_info = string_io.getvalue()
425
426
  self.assertIn('[0] LM INFO', debug_info)
@@ -102,7 +102,7 @@ class GenAITest(unittest.TestCase):
102
102
 
103
103
  def test_content_from_message_mm(self):
104
104
  message = lf.UserMessage(
105
- 'This is an {{image}}, what is it?',
105
+ 'This is an <<[[image]]>>, what is it?',
106
106
  image=lf_modalities.Image.from_bytes(example_image),
107
107
  )
108
108
 
@@ -164,7 +164,7 @@ class OpenAITest(unittest.TestCase):
164
164
  self.assertEqual(
165
165
  lm(
166
166
  lf.UserMessage(
167
- 'hello {{image}}',
167
+ 'hello <<[[image]]>>',
168
168
  image=lf_modalities.Image.from_uri('https://fake/image')
169
169
  ),
170
170
  sampling_options=lf.LMSamplingOptions(n=2)
@@ -74,7 +74,7 @@ class VertexAITest(unittest.TestCase):
74
74
 
75
75
  def test_content_from_message_mm(self):
76
76
  message = lf.UserMessage(
77
- 'This is an {{image}}, what is it?',
77
+ 'This is an <<[[image]]>>, what is it?',
78
78
  image=lf_modalities.Image.from_bytes(example_image),
79
79
  )
80
80
 
@@ -144,7 +144,7 @@ class Message(natural_language.NaturalLanguageFormattable, pg.Object):
144
144
  def from_value(cls, value: Union[str, 'Message']) -> 'Message':
145
145
  """Creates a message from a value or return value itself if a Message."""
146
146
  if isinstance(value, modality.Modality):
147
- return cls('{{object}}', object=value)
147
+ return cls('<<[[object]]>>', object=value)
148
148
  if isinstance(value, Message):
149
149
  return value
150
150
  return cls(value)
@@ -54,7 +54,7 @@ class MessageTest(unittest.TestCase):
54
54
  self.assertTrue(
55
55
  pg.eq(
56
56
  message.UserMessage.from_value(CustomModality('foo')),
57
- message.UserMessage('{{object}}', object=CustomModality('foo')),
57
+ message.UserMessage('<<[[object]]>>', object=CustomModality('foo')),
58
58
  )
59
59
  )
60
60
  m = message.UserMessage('hi')
@@ -258,13 +258,16 @@ class MessageTest(unittest.TestCase):
258
258
 
259
259
  def test_referred_modalities(self):
260
260
  m1 = message.UserMessage(
261
- 'hi, this is a {{img1}} and {{x.img2}}',
261
+ 'hi, this is a <<[[img1]]>> and <<[[x.img2]]>>',
262
262
  img1=CustomModality('foo'),
263
263
  x=dict(img2=CustomModality('bar')),
264
264
  )
265
265
  m2 = message.SystemMessage('class Question:\n image={{img1}}', source=m1)
266
266
  m3 = message.AIMessage(
267
- 'This is the {{output_image}} based on {{x.img2}}, {{unknown_var}}',
267
+ (
268
+ 'This is the <<[[output_image]]>> based on <<[[x.img2]]>>, '
269
+ '{{unknown_var}}'
270
+ ),
268
271
  output_image=CustomModality('bar'),
269
272
  source=m2,
270
273
  )
@@ -279,8 +282,8 @@ class MessageTest(unittest.TestCase):
279
282
  def test_chunking(self):
280
283
  m = message.UserMessage(
281
284
  inspect.cleandoc("""
282
- Hi, this is {{a}} and this is {{b}}.
283
- {{x.c}} {{something else
285
+ Hi, this is <<[[a]]>> and this is {{b}}.
286
+ <<[[x.c]]>> {{something else
284
287
  """),
285
288
  a=CustomModality('foo'),
286
289
  x=dict(c=CustomModality('bar')),
@@ -294,7 +297,7 @@ class MessageTest(unittest.TestCase):
294
297
  CustomModality('foo'),
295
298
  'and this is {{b}}.',
296
299
  CustomModality('bar'),
297
- ' {{something else',
300
+ '{{something else',
298
301
  ],
299
302
  )
300
303
  )
@@ -304,10 +307,10 @@ class MessageTest(unittest.TestCase):
304
307
  message.AIMessage(
305
308
  inspect.cleandoc("""
306
309
  Hi, this is
307
- {{obj0}}
310
+ <<[[obj0]]>>
308
311
  and this is {{b}}.
309
- {{obj1}}
310
- {{something else
312
+ <<[[obj1]]>>
313
+ {{something else
311
314
  """),
312
315
  obj0=pg.Ref(m.a),
313
316
  obj1=pg.Ref(m.x.c),
@@ -32,8 +32,8 @@ def format_modality_as_ref(enabled: bool = True) -> ContextManager[None]:
32
32
  class Modality(component.Component):
33
33
  """Base class for multimodal object."""
34
34
 
35
- REF_START = '{{'
36
- REF_END = '}}'
35
+ REF_START = '<<[['
36
+ REF_END = ']]>>'
37
37
 
38
38
  def format(self, *args, **kwargs) -> str:
39
39
  if self.referred_name is None or not pg.object_utils.thread_local_get(
@@ -37,7 +37,7 @@ class ModalityTest(unittest.TestCase):
37
37
  self.assertEqual(v.referred_name, 'x.metadata.y')
38
38
  self.assertEqual(str(v), "CustomModality(\n content = 'a'\n)")
39
39
  with modality.format_modality_as_ref():
40
- self.assertEqual(str(v), '{{x.metadata.y}}')
40
+ self.assertEqual(str(v), '<<[[x.metadata.y]]>>')
41
41
 
42
42
 
43
43
  class ModalityRefTest(unittest.TestCase):
@@ -464,7 +464,7 @@ class CompleteStructureTest(unittest.TestCase):
464
464
 
465
465
  MODALITY_REFERENCES:
466
466
  {
467
- 'examples[0].input.image': {{examples[0].input.image}}
467
+ 'examples[0].input.image': <<[[examples[0].input.image]]>>
468
468
  }
469
469
 
470
470
  OUTPUT_OBJECT:
@@ -490,7 +490,7 @@ class CompleteStructureTest(unittest.TestCase):
490
490
 
491
491
  MODALITY_REFERENCES:
492
492
  {
493
- 'input.image': {{input.image}}
493
+ 'input.image': <<[[input.image]]>>
494
494
  }
495
495
 
496
496
  OUTPUT_OBJECT:
@@ -208,7 +208,7 @@ class QueryTest(unittest.TestCase):
208
208
  modalities.Image.from_bytes(b'mock_image'),
209
209
  int,
210
210
  lm=lm,
211
- expected_snippet='\n\nINPUT_OBJECT:\n {{input}}\n\n',
211
+ expected_snippet='\n\nINPUT_OBJECT:\n <<[[input]]>>\n\n',
212
212
  expected_modalities=1,
213
213
  )
214
214
 
@@ -218,7 +218,7 @@ class QueryTest(unittest.TestCase):
218
218
  modalities.Image.from_bytes(b'mock_image'),
219
219
  None,
220
220
  lm=lm,
221
- expected_snippet='{{input}}',
221
+ expected_snippet='<<[[input]]>>',
222
222
  exact_match=True,
223
223
  expected_modalities=1,
224
224
  )
@@ -231,7 +231,9 @@ class QueryTest(unittest.TestCase):
231
231
  this_image=modalities.Image.from_bytes(b'cat_image'),
232
232
  that_image=modalities.Image.from_bytes(b'mouse_image'),
233
233
  lm=lm,
234
- expected_snippet='What are these? {{this_image}} and {{that_image}}',
234
+ expected_snippet=(
235
+ 'What are these? <<[[this_image]]>> and <<[[that_image]]>>'
236
+ ),
235
237
  exact_match=True,
236
238
  expected_modalities=2,
237
239
  )
@@ -245,7 +247,7 @@ class QueryTest(unittest.TestCase):
245
247
  ],
246
248
  None,
247
249
  lm=lm,
248
- expected_snippet='`[{{input[0]}}, {{input[1]}}]`',
250
+ expected_snippet='`[<<[[input[0]]]>>, <<[[input[1]]]>>]`',
249
251
  exact_match=True,
250
252
  expected_modalities=2,
251
253
  )
@@ -274,8 +276,8 @@ class QueryTest(unittest.TestCase):
274
276
 
275
277
  MODALITY_REFERENCES:
276
278
  {
277
- 'input[0]': {{input[0]}},
278
- 'input[1]': {{input[1]}}
279
+ 'input[0]': <<[[input[0]]]>>,
280
+ 'input[1]': <<[[input[1]]]>>
279
281
  }
280
282
  """),
281
283
  expected_modalities=2,
@@ -309,7 +309,7 @@ class RenderTest(unittest.TestCase):
309
309
  Template(
310
310
  'This is {{ x }} and {{ a }}', x=1, a=CustomModality('foo')
311
311
  ).render(),
312
- 'This is 1 and {{a}}',
312
+ 'This is 1 and <<[[a]]>>',
313
313
  )
314
314
 
315
315
  def test_render_with_default(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langfun
3
- Version: 0.0.2.dev20240527
3
+ Version: 0.0.2.dev20240529
4
4
  Summary: Langfun: Language as Functions.
5
5
  Home-page: https://github.com/google/langfun
6
6
  Author: Langfun Authors