langfun 0.1.2.dev202505070805__tar.gz → 0.1.2.dev202505090804__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.

Potentially problematic release.


This version of langfun might be problematic. Click here for more details.

Files changed (168) hide show
  1. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/PKG-INFO +1 -1
  2. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/experiment.py +12 -0
  3. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/runners.py +3 -0
  4. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/runners_test.py +9 -0
  5. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/querying.py +23 -6
  6. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/querying_test.py +20 -0
  7. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun.egg-info/PKG-INFO +1 -1
  8. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/LICENSE +0 -0
  9. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/README.md +0 -0
  10. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/__init__.py +0 -0
  11. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/__init__.py +0 -0
  12. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/agentic/__init__.py +0 -0
  13. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/agentic/action.py +0 -0
  14. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/agentic/action_eval.py +0 -0
  15. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/agentic/action_eval_test.py +0 -0
  16. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/agentic/action_test.py +0 -0
  17. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/__init__.py +0 -0
  18. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/__init__.py +0 -0
  19. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/correction.py +0 -0
  20. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/correction_test.py +0 -0
  21. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/execution.py +0 -0
  22. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/execution_test.py +0 -0
  23. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/generation.py +0 -0
  24. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/generation_test.py +0 -0
  25. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/parsing.py +0 -0
  26. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/parsing_test.py +0 -0
  27. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/sandboxing.py +0 -0
  28. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/coding/python/sandboxing_test.py +0 -0
  29. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/component.py +0 -0
  30. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/component_test.py +0 -0
  31. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/concurrent.py +0 -0
  32. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/concurrent_test.py +0 -0
  33. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/console.py +0 -0
  34. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/console_test.py +0 -0
  35. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/data/__init__.py +0 -0
  36. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/data/conversion/__init__.py +0 -0
  37. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/data/conversion/anthropic.py +0 -0
  38. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/data/conversion/anthropic_test.py +0 -0
  39. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/data/conversion/gemini.py +0 -0
  40. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/data/conversion/gemini_test.py +0 -0
  41. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/data/conversion/openai.py +0 -0
  42. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/data/conversion/openai_test.py +0 -0
  43. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/__init__.py +0 -0
  44. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/base.py +0 -0
  45. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/base_test.py +0 -0
  46. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/matching.py +0 -0
  47. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/matching_test.py +0 -0
  48. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/patching.py +0 -0
  49. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/patching_test.py +0 -0
  50. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/scoring.py +0 -0
  51. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/scoring_test.py +0 -0
  52. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/__init__.py +0 -0
  53. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/checkpointing.py +0 -0
  54. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/checkpointing_test.py +0 -0
  55. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/eval_test_helper.py +0 -0
  56. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/evaluation.py +0 -0
  57. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/evaluation_test.py +0 -0
  58. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/example.py +0 -0
  59. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/example_test.py +0 -0
  60. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/experiment_test.py +0 -0
  61. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/metric_values.py +0 -0
  62. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/metric_values_test.py +0 -0
  63. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/metrics.py +0 -0
  64. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/metrics_test.py +0 -0
  65. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/progress.py +0 -0
  66. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/progress_test.py +0 -0
  67. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/progress_tracking.py +0 -0
  68. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/progress_tracking_test.py +0 -0
  69. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/reporting.py +0 -0
  70. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/eval/v2/reporting_test.py +0 -0
  71. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/langfunc.py +0 -0
  72. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/langfunc_test.py +0 -0
  73. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/language_model.py +0 -0
  74. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/language_model_test.py +0 -0
  75. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/__init__.py +0 -0
  76. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/anthropic.py +0 -0
  77. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/anthropic_test.py +0 -0
  78. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/azure_openai.py +0 -0
  79. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/azure_openai_test.py +0 -0
  80. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/cache/__init__.py +0 -0
  81. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/cache/base.py +0 -0
  82. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/cache/in_memory.py +0 -0
  83. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/cache/in_memory_test.py +0 -0
  84. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/compositional.py +0 -0
  85. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/compositional_test.py +0 -0
  86. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/deepseek.py +0 -0
  87. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/deepseek_test.py +0 -0
  88. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/fake.py +0 -0
  89. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/fake_test.py +0 -0
  90. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/gemini.py +0 -0
  91. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/gemini_test.py +0 -0
  92. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/google_genai.py +0 -0
  93. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/google_genai_test.py +0 -0
  94. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/groq.py +0 -0
  95. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/groq_test.py +0 -0
  96. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/llama_cpp.py +0 -0
  97. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/llama_cpp_test.py +0 -0
  98. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/openai.py +0 -0
  99. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/openai_compatible.py +0 -0
  100. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/openai_compatible_test.py +0 -0
  101. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/openai_test.py +0 -0
  102. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/rest.py +0 -0
  103. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/rest_test.py +0 -0
  104. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/vertexai.py +0 -0
  105. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/llms/vertexai_test.py +0 -0
  106. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/logging.py +0 -0
  107. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/logging_test.py +0 -0
  108. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/memories/__init__.py +0 -0
  109. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/memories/conversation_history.py +0 -0
  110. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/memories/conversation_history_test.py +0 -0
  111. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/memory.py +0 -0
  112. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/message.py +0 -0
  113. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/message_test.py +0 -0
  114. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/__init__.py +0 -0
  115. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/audio.py +0 -0
  116. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/audio_test.py +0 -0
  117. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/image.py +0 -0
  118. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/image_test.py +0 -0
  119. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/mime.py +0 -0
  120. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/mime_test.py +0 -0
  121. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/pdf.py +0 -0
  122. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/pdf_test.py +0 -0
  123. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/video.py +0 -0
  124. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modalities/video_test.py +0 -0
  125. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modality.py +0 -0
  126. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/modality_test.py +0 -0
  127. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/natural_language.py +0 -0
  128. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/natural_language_test.py +0 -0
  129. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/sampling.py +0 -0
  130. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/sampling_test.py +0 -0
  131. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/__init__.py +0 -0
  132. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/completion.py +0 -0
  133. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/completion_test.py +0 -0
  134. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/description.py +0 -0
  135. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/description_test.py +0 -0
  136. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/function_generation.py +0 -0
  137. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/function_generation_test.py +0 -0
  138. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/mapping.py +0 -0
  139. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/mapping_test.py +0 -0
  140. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/parsing.py +0 -0
  141. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/parsing_test.py +0 -0
  142. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/schema.py +0 -0
  143. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/schema_generation.py +0 -0
  144. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/schema_generation_test.py +0 -0
  145. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/schema_test.py +0 -0
  146. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/scoring.py +0 -0
  147. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/scoring_test.py +0 -0
  148. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/tokenization.py +0 -0
  149. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/structured/tokenization_test.py +0 -0
  150. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/subscription.py +0 -0
  151. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/subscription_test.py +0 -0
  152. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/template.py +0 -0
  153. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/template_test.py +0 -0
  154. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/templates/__init__.py +0 -0
  155. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/templates/completion.py +0 -0
  156. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/templates/completion_test.py +0 -0
  157. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/templates/conversation.py +0 -0
  158. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/templates/conversation_test.py +0 -0
  159. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/templates/demonstration.py +0 -0
  160. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/templates/demonstration_test.py +0 -0
  161. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/templates/selfplay.py +0 -0
  162. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun/core/templates/selfplay_test.py +0 -0
  163. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun.egg-info/SOURCES.txt +0 -0
  164. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun.egg-info/dependency_links.txt +0 -0
  165. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun.egg-info/requires.txt +0 -0
  166. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/langfun.egg-info/top_level.txt +0 -0
  167. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/setup.cfg +0 -0
  168. {langfun-0.1.2.dev202505070805 → langfun-0.1.2.dev202505090804}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langfun
3
- Version: 0.1.2.dev202505070805
3
+ Version: 0.1.2.dev202505090804
4
4
  Summary: Langfun: Language as Functions.
5
5
  Home-page: https://github.com/google/langfun
6
6
  Author: Langfun Authors
@@ -382,6 +382,7 @@ class Experiment(lf.Component, pg.views.HtmlTreeView.Extension):
382
382
  warm_start_from: str | None = None,
383
383
  filter: Callable[['Experiment'], bool] | None = None, # pylint: disable=redefined-builtin
384
384
  example_ids: list[int] | None = None,
385
+ shuffle_inputs: bool = False,
385
386
  raise_if_has_error: bool = False,
386
387
  reprocess: bool | list[int] = False,
387
388
  generate_example_html: Literal['new', 'all', 'no'] | list[int] = 'new',
@@ -431,6 +432,8 @@ class Experiment(lf.Component, pg.views.HtmlTreeView.Extension):
431
432
  filter: A filter function to decide whether an experiment should be run
432
433
  or not.
433
434
  example_ids: The example IDs to run. If None, it will run all examples.
435
+ shuffle_inputs: If True, the order of evaluatin examples will be shuffled.
436
+ Neverthless, the example ID remains unchanged for each example.
434
437
  raise_if_has_error: If True, it will raise an error if any example fails.
435
438
  Otherwise, it will continue and report the error in the output.
436
439
  reprocess: A boolean or a list of example IDs. If boolean, it indicates
@@ -470,6 +473,7 @@ class Experiment(lf.Component, pg.views.HtmlTreeView.Extension):
470
473
  warm_start_from=warm_start_from,
471
474
  filter=filter,
472
475
  example_ids=example_ids,
476
+ shuffle_inputs=shuffle_inputs,
473
477
  raise_if_has_error=raise_if_has_error,
474
478
  reprocess=reprocess,
475
479
  generate_example_html=generate_example_html,
@@ -816,6 +820,14 @@ class Run(pg.Object, pg.views.html.HtmlTreeView.Extension):
816
820
  )
817
821
  ] = None
818
822
 
823
+ shuffle_inputs: Annotated[
824
+ bool,
825
+ (
826
+ 'If True, the order of evaluating examples will be shuffled.'
827
+ 'Otherwise an increasing order will be used.'
828
+ )
829
+ ] = False
830
+
819
831
  raise_if_has_error: Annotated[
820
832
  bool,
821
833
  (
@@ -356,6 +356,9 @@ class RunnerBase(Runner):
356
356
  input=evaluation.example_input_by_id(example_id)
357
357
  ) for example_id in self.current_run.example_ids
358
358
  )
359
+ if self.current_run.shuffle_inputs:
360
+ items = list(items)
361
+ random.shuffle(items)
359
362
  self._evaluate_items(evaluation, items)
360
363
 
361
364
  if cache:
@@ -163,6 +163,15 @@ class RunnerTest(unittest.TestCase):
163
163
  self.assertEqual(plugin.started_example_ids, [5, 7, 9] * 6)
164
164
  self.assertEqual(plugin.completed_example_ids, [5, 7, 9] * 6)
165
165
 
166
+ def test_shuffle_inputs(self):
167
+ root_dir = os.path.join(tempfile.gettempdir(), 'test_shuffle_inputs')
168
+ exp = eval_test_helper.test_experiment()
169
+ plugin = TestPlugin()
170
+ run = exp.run(
171
+ root_dir, runner='sequential', plugins=[plugin], shuffle_inputs=True
172
+ )
173
+ self.assertTrue(run.shuffle_inputs)
174
+
166
175
  def test_filter(self):
167
176
  plugin = TestPlugin()
168
177
  exp = eval_test_helper.test_experiment()
@@ -325,7 +325,7 @@ def query(
325
325
 
326
326
  ```
327
327
  lf.query('1 + 1 = ?', int, lm=lf.llms.Gpt4Turbo())
328
-
328
+
329
329
  # Output: 2
330
330
  ```
331
331
 
@@ -349,7 +349,7 @@ def query(
349
349
 
350
350
  class Dog(Animal):
351
351
  pass
352
-
352
+
353
353
  class Entity(pg.Object):
354
354
  name: str
355
355
 
@@ -562,7 +562,10 @@ def query(
562
562
  output_message = lf.AIMessage(processed_text, source=output_message)
563
563
  else:
564
564
  # Query with structured output.
565
- output_message = LfQuery.from_protocol(protocol)(
565
+ query_cls = LfQuery.from_protocol(protocol)
566
+ if ':' not in protocol:
567
+ protocol = f'{protocol}:{query_cls.version}'
568
+ output_message = query_cls(
566
569
  input=(
567
570
  query_input.render(lm=lm)
568
571
  if isinstance(query_input, lf.Template)
@@ -572,7 +575,7 @@ def query(
572
575
  default=default,
573
576
  examples=examples,
574
577
  response_postprocess=response_postprocess,
575
- autofix=autofix if protocol == 'python' else 0,
578
+ autofix=autofix if protocol.startswith('python:') else 0,
576
579
  **kwargs,
577
580
  )(
578
581
  lm=lm,
@@ -605,6 +608,8 @@ def query(
605
608
  ),
606
609
  lm=pg.Ref(lm),
607
610
  examples=pg.Ref(examples) if examples else [],
611
+ protocol=protocol,
612
+ kwargs={k: pg.Ref(v) for k, v in kwargs.items()},
608
613
  lm_response=lf.AIMessage(output_message.text, metadata=metadata),
609
614
  usage_summary=usage_summary,
610
615
  start_time=start_time,
@@ -788,6 +793,14 @@ class QueryInvocation(pg.Object, pg.views.HtmlTreeView.Extension):
788
793
  list[mapping.MappingExample],
789
794
  'Fewshot exemplars for `lf.query`.'
790
795
  ]
796
+ protocol: Annotated[
797
+ str,
798
+ 'Protocol of `lf.query`.'
799
+ ] = 'python'
800
+ kwargs: Annotated[
801
+ dict[str, Any],
802
+ 'Kwargs of `lf.query`.'
803
+ ] = {}
791
804
  usage_summary: Annotated[
792
805
  lf.UsageSummary,
793
806
  'Usage summary for `lf.query`.'
@@ -803,13 +816,17 @@ class QueryInvocation(pg.Object, pg.views.HtmlTreeView.Extension):
803
816
 
804
817
  @functools.cached_property
805
818
  def lm_request(self) -> lf.Message:
806
- return query_prompt(self.input, self.schema, examples=self.examples or None)
819
+ return query_prompt(
820
+ self.input, self.schema, examples=self.examples or None,
821
+ protocol=self.protocol,
822
+ **self.kwargs
823
+ )
807
824
 
808
825
  @functools.cached_property
809
826
  def output(self) -> Any:
810
827
  """The output of `lf.query`. If it failed, returns the `MappingError`."""
811
828
  try:
812
- return query_output(self.lm_response, self.schema)
829
+ return query_output(self.lm_response, self.schema, protocol=self.protocol)
813
830
  except mapping.MappingError as e:
814
831
  return e
815
832
 
@@ -1321,6 +1321,26 @@ class QueryInvocationTest(unittest.TestCase):
1321
1321
  self.assertTrue(queries[0].has_error)
1322
1322
  self.assertIsInstance(queries[0].output, mapping.MappingError)
1323
1323
 
1324
+ def test_kwargs(self):
1325
+ lm = fake.StaticSequence([
1326
+ 'Activity(description="hi")',
1327
+ ])
1328
+ with querying.track_queries() as queries:
1329
+ querying.query(
1330
+ 'foo {{x}}',
1331
+ Activity,
1332
+ lm=lm,
1333
+ system_message='system message',
1334
+ x=1,
1335
+ )
1336
+ self.assertTrue(queries[0].protocol.startswith('python:'))
1337
+ self.assertEqual(
1338
+ list(queries[0].kwargs.keys()),
1339
+ ['x', 'metadata_system_message']
1340
+ )
1341
+ self.assertIn('foo 1', queries[0].lm_request.text)
1342
+ self.assertEqual(queries[0].lm_request.system_message, 'system message')
1343
+
1324
1344
  def test_to_html(self):
1325
1345
  lm = fake.StaticSequence([
1326
1346
  'Activity(description="hi")',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langfun
3
- Version: 0.1.2.dev202505070805
3
+ Version: 0.1.2.dev202505090804
4
4
  Summary: Langfun: Language as Functions.
5
5
  Home-page: https://github.com/google/langfun
6
6
  Author: Langfun Authors