langfun 0.0.2.dev20240608__tar.gz → 0.0.2.dev20240610__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 (129) hide show
  1. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/PKG-INFO +1 -1
  2. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/__init__.py +3 -0
  3. langfun-0.0.2.dev20240610/langfun/core/repr_utils.py +83 -0
  4. langfun-0.0.2.dev20240610/langfun/core/repr_utils_test.py +58 -0
  5. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun.egg-info/PKG-INFO +1 -1
  6. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun.egg-info/SOURCES.txt +2 -0
  7. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/LICENSE +0 -0
  8. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/README.md +0 -0
  9. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/__init__.py +0 -0
  10. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/__init__.py +0 -0
  11. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/__init__.py +0 -0
  12. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/correction.py +0 -0
  13. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/correction_test.py +0 -0
  14. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/errors.py +0 -0
  15. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/errors_test.py +0 -0
  16. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/execution.py +0 -0
  17. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/execution_test.py +0 -0
  18. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/generation.py +0 -0
  19. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/generation_test.py +0 -0
  20. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/parsing.py +0 -0
  21. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/parsing_test.py +0 -0
  22. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/permissions.py +0 -0
  23. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/coding/python/permissions_test.py +0 -0
  24. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/component.py +0 -0
  25. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/component_test.py +0 -0
  26. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/concurrent.py +0 -0
  27. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/concurrent_test.py +0 -0
  28. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/console.py +0 -0
  29. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/console_test.py +0 -0
  30. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/eval/__init__.py +0 -0
  31. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/eval/base.py +0 -0
  32. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/eval/base_test.py +0 -0
  33. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/eval/matching.py +0 -0
  34. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/eval/matching_test.py +0 -0
  35. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/eval/patching.py +0 -0
  36. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/eval/patching_test.py +0 -0
  37. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/eval/scoring.py +0 -0
  38. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/eval/scoring_test.py +0 -0
  39. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/langfunc.py +0 -0
  40. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/langfunc_test.py +0 -0
  41. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/language_model.py +0 -0
  42. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/language_model_test.py +0 -0
  43. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/__init__.py +0 -0
  44. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/anthropic.py +0 -0
  45. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/anthropic_test.py +0 -0
  46. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/cache/__init__.py +0 -0
  47. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/cache/base.py +0 -0
  48. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/cache/in_memory.py +0 -0
  49. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/cache/in_memory_test.py +0 -0
  50. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/fake.py +0 -0
  51. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/fake_test.py +0 -0
  52. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/google_genai.py +0 -0
  53. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/google_genai_test.py +0 -0
  54. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/groq.py +0 -0
  55. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/groq_test.py +0 -0
  56. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/llama_cpp.py +0 -0
  57. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/llama_cpp_test.py +0 -0
  58. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/openai.py +0 -0
  59. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/openai_test.py +0 -0
  60. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/rest.py +0 -0
  61. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/rest_test.py +0 -0
  62. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/vertexai.py +0 -0
  63. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/llms/vertexai_test.py +0 -0
  64. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/logging.py +0 -0
  65. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/logging_test.py +0 -0
  66. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/memories/__init__.py +0 -0
  67. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/memories/conversation_history.py +0 -0
  68. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/memories/conversation_history_test.py +0 -0
  69. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/memory.py +0 -0
  70. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/message.py +0 -0
  71. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/message_test.py +0 -0
  72. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/__init__.py +0 -0
  73. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/audio.py +0 -0
  74. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/audio_test.py +0 -0
  75. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/image.py +0 -0
  76. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/image_test.py +0 -0
  77. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/mime.py +0 -0
  78. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/mime_test.py +0 -0
  79. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/ms_office.py +0 -0
  80. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/ms_office_test.py +0 -0
  81. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/pdf.py +0 -0
  82. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/pdf_test.py +0 -0
  83. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/video.py +0 -0
  84. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modalities/video_test.py +0 -0
  85. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modality.py +0 -0
  86. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/modality_test.py +0 -0
  87. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/natural_language.py +0 -0
  88. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/natural_language_test.py +0 -0
  89. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/sampling.py +0 -0
  90. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/sampling_test.py +0 -0
  91. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/__init__.py +0 -0
  92. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/completion.py +0 -0
  93. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/completion_test.py +0 -0
  94. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/description.py +0 -0
  95. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/description_test.py +0 -0
  96. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/function_generation.py +0 -0
  97. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/function_generation_test.py +0 -0
  98. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/mapping.py +0 -0
  99. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/mapping_test.py +0 -0
  100. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/parsing.py +0 -0
  101. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/parsing_test.py +0 -0
  102. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/prompting.py +0 -0
  103. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/prompting_test.py +0 -0
  104. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/schema.py +0 -0
  105. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/schema_generation.py +0 -0
  106. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/schema_generation_test.py +0 -0
  107. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/schema_test.py +0 -0
  108. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/scoring.py +0 -0
  109. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/structured/scoring_test.py +0 -0
  110. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/subscription.py +0 -0
  111. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/subscription_test.py +0 -0
  112. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/template.py +0 -0
  113. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/template_test.py +0 -0
  114. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/templates/__init__.py +0 -0
  115. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/templates/completion.py +0 -0
  116. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/templates/completion_test.py +0 -0
  117. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/templates/conversation.py +0 -0
  118. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/templates/conversation_test.py +0 -0
  119. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/templates/demonstration.py +0 -0
  120. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/templates/demonstration_test.py +0 -0
  121. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/templates/selfplay.py +0 -0
  122. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/templates/selfplay_test.py +0 -0
  123. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/text_formatting.py +0 -0
  124. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun/core/text_formatting_test.py +0 -0
  125. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun.egg-info/dependency_links.txt +0 -0
  126. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun.egg-info/requires.txt +0 -0
  127. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/langfun.egg-info/top_level.txt +0 -0
  128. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/setup.cfg +0 -0
  129. {langfun-0.0.2.dev20240608 → langfun-0.0.2.dev20240610}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langfun
3
- Version: 0.0.2.dev20240608
3
+ Version: 0.0.2.dev20240610
4
4
  Summary: Langfun: Language as Functions.
5
5
  Home-page: https://github.com/google/langfun
6
6
  Author: Langfun Authors
@@ -121,6 +121,9 @@ from langfun.core.memory import Memory
121
121
  # Utility for console output.
122
122
  from langfun.core import console
123
123
 
124
+ # Helpers for implementing _repr_xxx_ methods.
125
+ from langfun.core import repr_utils
126
+
124
127
  # Utility for event logging.
125
128
  from langfun.core import logging
126
129
 
@@ -0,0 +1,83 @@
1
+ # Copyright 2024 The Langfun Authors
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ """Helpers for implementing _repr_xxx_ methods."""
15
+
16
+ import collections
17
+ import contextlib
18
+ import io
19
+ from typing import Iterator
20
+
21
+ from langfun.core import component
22
+
23
+
24
+ @contextlib.contextmanager
25
+ def share_parts() -> Iterator[dict[str, int]]:
26
+ """Context manager for defining the context (scope) of shared content.
27
+
28
+ Under the context manager, call to `lf.write_shared` with the same content
29
+ will be written only once. This is useful for writing shared content such as
30
+ shared style and script sections in the HTML.
31
+
32
+ Example:
33
+ ```
34
+ class Foo(pg.Object):
35
+ def _repr_html_(self) -> str:
36
+ s = io.StringIO()
37
+ lf.repr_utils.write_shared_part(s, '<style>..</style>')
38
+ lf.repr_utils.write_shared_part(s, '<script>..</script>')
39
+ return s.getvalue()
40
+
41
+ with lf.repr_utils.share_parts() as share_parts:
42
+ # The <style> and <script> section will be written only once.
43
+ lf.console.display(Foo())
44
+ lf.console.display(Foo())
45
+
46
+ # Assert that the shared content is attempted to be written twice.
47
+ assert share_parts['<style>..</style>'] == 2
48
+ ```
49
+
50
+ Yields:
51
+ A dictionary mapping the shared content to the number of times it is
52
+ attempted to be written.
53
+ """
54
+ context = component.context_value(
55
+ '__shared_parts__', collections.defaultdict(int)
56
+ )
57
+ with component.context(__shared_parts__=context):
58
+ try:
59
+ yield context
60
+ finally:
61
+ pass
62
+
63
+
64
+ def write_maybe_shared(s: io.StringIO, content: str) -> bool:
65
+ """Writes a maybe shared part to an string stream.
66
+
67
+ Args:
68
+ s: The string stream to write to.
69
+ content: A maybe shared content to write.
70
+
71
+ Returns:
72
+ True if the content is written to the string. False if the content is
73
+ already written under the same share context.
74
+ """
75
+ context = component.context_value('__shared_parts__', None)
76
+ if context is None:
77
+ s.write(content)
78
+ return True
79
+ written = content in context
80
+ if not written:
81
+ s.write(content)
82
+ context[content] += 1
83
+ return not written
@@ -0,0 +1,58 @@
1
+ # Copyright 2024 The Langfun Authors
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ """Tests for langfun.core.repr_utils."""
15
+
16
+ import io
17
+ import unittest
18
+
19
+ from langfun.core import repr_utils
20
+
21
+
22
+ class SharingContentTest(unittest.TestCase):
23
+
24
+ def test_sharing(self):
25
+ s = io.StringIO()
26
+
27
+ self.assertTrue(repr_utils.write_maybe_shared(s, '<hr>'))
28
+ self.assertTrue(repr_utils.write_maybe_shared(s, '<hr>'))
29
+
30
+ with repr_utils.share_parts() as ctx1:
31
+ self.assertTrue(repr_utils.write_maybe_shared(s, '<style></style>'))
32
+ self.assertFalse(repr_utils.write_maybe_shared(s, '<style></style>'))
33
+
34
+ with repr_utils.share_parts() as ctx2:
35
+ self.assertIs(ctx2, ctx1)
36
+ self.assertFalse(repr_utils.write_maybe_shared(s, '<style></style>'))
37
+ self.assertTrue(repr_utils.write_maybe_shared(s, '<style>a</style>'))
38
+ self.assertFalse(repr_utils.write_maybe_shared(s, '<style>a</style>'))
39
+ self.assertTrue(repr_utils.write_maybe_shared(s, '<style>b</style>'))
40
+
41
+ with repr_utils.share_parts() as ctx3:
42
+ self.assertIs(ctx3, ctx1)
43
+ self.assertFalse(repr_utils.write_maybe_shared(s, '<style></style>'))
44
+ self.assertFalse(repr_utils.write_maybe_shared(s, '<style>a</style>'))
45
+ self.assertFalse(repr_utils.write_maybe_shared(s, '<style>a</style>'))
46
+ self.assertFalse(repr_utils.write_maybe_shared(s, '<style>b</style>'))
47
+
48
+ self.assertEqual(
49
+ s.getvalue(),
50
+ '<hr><hr><style></style><style>a</style><style>b</style>'
51
+ )
52
+ self.assertEqual(ctx1['<style></style>'], 4)
53
+ self.assertEqual(ctx1['<style>b</style>'], 2)
54
+ self.assertEqual(ctx1['<style>a</style>'], 4)
55
+
56
+
57
+ if __name__ == '__main__':
58
+ unittest.main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langfun
3
- Version: 0.0.2.dev20240608
3
+ Version: 0.0.2.dev20240610
4
4
  Summary: Langfun: Language as Functions.
5
5
  Home-page: https://github.com/google/langfun
6
6
  Author: Langfun Authors
@@ -27,6 +27,8 @@ langfun/core/modality.py
27
27
  langfun/core/modality_test.py
28
28
  langfun/core/natural_language.py
29
29
  langfun/core/natural_language_test.py
30
+ langfun/core/repr_utils.py
31
+ langfun/core/repr_utils_test.py
30
32
  langfun/core/sampling.py
31
33
  langfun/core/sampling_test.py
32
34
  langfun/core/subscription.py