langfun 0.1.2.dev202505050805__tar.gz → 0.1.2.dev202505060804__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.
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/PKG-INFO +1 -1
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/agentic/action.py +84 -14
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/agentic/action_test.py +4 -2
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/__init__.py +1 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/gemini.py +1 -1
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/openai.py +29 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun.egg-info/PKG-INFO +1 -1
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/LICENSE +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/README.md +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/agentic/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/agentic/action_eval.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/agentic/action_eval_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/correction.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/correction_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/execution.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/execution_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/generation.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/generation_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/parsing.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/parsing_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/sandboxing.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/python/sandboxing_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/component.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/component_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/concurrent.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/concurrent_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/console.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/console_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/data/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/data/conversion/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/data/conversion/anthropic.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/data/conversion/anthropic_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/data/conversion/gemini.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/data/conversion/gemini_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/data/conversion/openai.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/data/conversion/openai_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/base.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/base_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/matching.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/matching_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/patching.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/patching_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/scoring.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/scoring_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/checkpointing.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/checkpointing_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/eval_test_helper.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/evaluation.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/evaluation_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/example.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/example_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/experiment.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/experiment_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/metric_values.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/metric_values_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/metrics.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/metrics_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/progress.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/progress_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/progress_tracking.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/progress_tracking_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/reporting.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/reporting_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/runners.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/runners_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/langfunc.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/langfunc_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/language_model.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/language_model_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/anthropic.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/anthropic_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/azure_openai.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/azure_openai_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/cache/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/cache/base.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/cache/in_memory.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/cache/in_memory_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/compositional.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/compositional_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/deepseek.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/deepseek_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/fake.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/fake_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/gemini_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/google_genai.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/google_genai_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/groq.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/groq_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/llama_cpp.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/llama_cpp_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/openai_compatible.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/openai_compatible_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/openai_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/rest.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/rest_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/vertexai.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/vertexai_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/logging.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/logging_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/memories/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/memories/conversation_history.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/memories/conversation_history_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/memory.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/message.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/message_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/audio.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/audio_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/image.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/image_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/mime.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/mime_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/pdf.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/pdf_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/video.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/video_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modality.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modality_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/natural_language.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/natural_language_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/sampling.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/sampling_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/completion.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/completion_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/description.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/description_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/function_generation.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/function_generation_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/mapping.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/mapping_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/parsing.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/parsing_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/querying.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/querying_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/schema.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/schema_generation.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/schema_generation_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/schema_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/scoring.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/scoring_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/tokenization.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/tokenization_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/subscription.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/subscription_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/template.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/template_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/__init__.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/completion.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/completion_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/conversation.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/conversation_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/demonstration.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/demonstration_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/selfplay.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/selfplay_test.py +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun.egg-info/SOURCES.txt +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun.egg-info/dependency_links.txt +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun.egg-info/requires.txt +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun.egg-info/top_level.txt +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/setup.cfg +0 -0
- {langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/setup.py +0 -0
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/agentic/action.py
RENAMED
@@ -194,6 +194,11 @@ class Action(pg.Object):
|
|
194
194
|
"""Returns the metadata associated with the result from previous call."""
|
195
195
|
return self._invocation.metadata if self._invocation else None
|
196
196
|
|
197
|
+
@property
|
198
|
+
def invocation(self) -> Optional['ActionInvocation']:
|
199
|
+
"""Returns last invocation. None if the action is not executed."""
|
200
|
+
return self._invocation
|
201
|
+
|
197
202
|
def __call__(
|
198
203
|
self,
|
199
204
|
session: Optional['Session'] = None,
|
@@ -825,6 +830,7 @@ class ActionInvocation(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
825
830
|
def _on_bound(self):
|
826
831
|
super()._on_bound()
|
827
832
|
self._tab_control = None
|
833
|
+
self.action._invocation = self # pylint: disable=protected-access
|
828
834
|
|
829
835
|
def _on_parent_change(self, *args, **kwargs):
|
830
836
|
super()._on_parent_change(*args, **kwargs)
|
@@ -1154,7 +1160,6 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
1154
1160
|
)
|
1155
1161
|
|
1156
1162
|
invocation = ActionInvocation(pg.maybe_ref(action))
|
1157
|
-
action._invocation = invocation # pylint: disable=protected-access
|
1158
1163
|
parent_action = self._current_action
|
1159
1164
|
parent_execution = self._current_execution
|
1160
1165
|
parent_execution.append(invocation)
|
@@ -1412,38 +1417,103 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
1412
1417
|
level: lf.logging.LogLevel,
|
1413
1418
|
message: str,
|
1414
1419
|
keep: bool,
|
1420
|
+
*,
|
1421
|
+
for_action: Action | ActionInvocation | None = None,
|
1415
1422
|
**kwargs
|
1416
1423
|
) -> None:
|
1417
|
-
"""Logs a message to the session.
|
1418
|
-
|
1424
|
+
"""Logs a message to the session.
|
1425
|
+
|
1426
|
+
Args:
|
1427
|
+
level: The logging level.
|
1428
|
+
message: The message to log.
|
1429
|
+
keep: Whether to keep the log entry in the execution trace.
|
1430
|
+
for_action: The action to log the message for. If not provided, the
|
1431
|
+
current action will be used.
|
1432
|
+
**kwargs: Additional keyword arguments to pass to `lf.logging.log` as
|
1433
|
+
metadata to show.
|
1434
|
+
"""
|
1419
1435
|
execution = self._current_execution
|
1436
|
+
if for_action is None:
|
1437
|
+
for_action = self._current_action
|
1438
|
+
elif isinstance(for_action, Action):
|
1439
|
+
for_action = for_action.invocation
|
1440
|
+
assert for_action is not None
|
1441
|
+
|
1420
1442
|
log_entry = lf.logging.log(
|
1421
1443
|
level,
|
1422
|
-
|
1444
|
+
(
|
1445
|
+
f'[{for_action.id} ({for_action.action.__class__.__name__})]: '
|
1446
|
+
f'{message}'
|
1447
|
+
),
|
1423
1448
|
**kwargs
|
1424
1449
|
)
|
1425
1450
|
if keep:
|
1426
1451
|
execution.append(log_entry)
|
1427
1452
|
|
1428
|
-
def debug(
|
1453
|
+
def debug(
|
1454
|
+
self,
|
1455
|
+
message: str,
|
1456
|
+
keep: bool = True,
|
1457
|
+
*,
|
1458
|
+
for_action: Action | ActionInvocation | None = None,
|
1459
|
+
**kwargs
|
1460
|
+
) -> None:
|
1429
1461
|
"""Logs a debug message to the session."""
|
1430
|
-
self._log(
|
1462
|
+
self._log(
|
1463
|
+
'debug', message, keep=keep, for_action=for_action, **kwargs
|
1464
|
+
)
|
1431
1465
|
|
1432
|
-
def info(
|
1466
|
+
def info(
|
1467
|
+
self,
|
1468
|
+
message: str,
|
1469
|
+
keep: bool = True,
|
1470
|
+
*,
|
1471
|
+
for_action: Action | ActionInvocation | None = None,
|
1472
|
+
**kwargs
|
1473
|
+
) -> None:
|
1433
1474
|
"""Logs an info message to the session."""
|
1434
|
-
self._log(
|
1475
|
+
self._log(
|
1476
|
+
'info', message, keep=keep, for_action=for_action, **kwargs
|
1477
|
+
)
|
1435
1478
|
|
1436
|
-
def warning(
|
1479
|
+
def warning(
|
1480
|
+
self,
|
1481
|
+
message: str,
|
1482
|
+
keep: bool = True,
|
1483
|
+
*,
|
1484
|
+
for_action: Action | ActionInvocation | None = None,
|
1485
|
+
**kwargs
|
1486
|
+
) -> None:
|
1437
1487
|
"""Logs a warning message to the session."""
|
1438
|
-
self._log(
|
1488
|
+
self._log(
|
1489
|
+
'warning', message, keep=keep, for_action=for_action, **kwargs
|
1490
|
+
)
|
1439
1491
|
|
1440
|
-
def error(
|
1492
|
+
def error(
|
1493
|
+
self,
|
1494
|
+
message: str,
|
1495
|
+
keep: bool = True,
|
1496
|
+
*,
|
1497
|
+
for_action: Action | ActionInvocation | None = None,
|
1498
|
+
**kwargs
|
1499
|
+
):
|
1441
1500
|
"""Logs an error message to the session."""
|
1442
|
-
self._log(
|
1501
|
+
self._log(
|
1502
|
+
'error', message, keep=keep, for_action=for_action, **kwargs
|
1503
|
+
)
|
1443
1504
|
|
1444
|
-
def fatal(
|
1505
|
+
def fatal(
|
1506
|
+
self,
|
1507
|
+
message: str,
|
1508
|
+
keep: bool = True,
|
1509
|
+
*,
|
1510
|
+
for_action: Action | ActionInvocation | None = None,
|
1511
|
+
**kwargs
|
1512
|
+
):
|
1445
1513
|
"""Logs a fatal message to the session."""
|
1446
|
-
self._log(
|
1514
|
+
self._log(
|
1515
|
+
'fatal', message, keep=keep, for_action=for_action, **kwargs
|
1516
|
+
)
|
1447
1517
|
|
1448
1518
|
def as_message(self) -> lf.AIMessage:
|
1449
1519
|
"""Returns the session as a message."""
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/agentic/action_test.py
RENAMED
@@ -107,6 +107,7 @@ class SessionTest(unittest.TestCase):
|
|
107
107
|
lm = fake.StaticResponse('lm response')
|
108
108
|
foo = Foo(1)
|
109
109
|
self.assertIsNone(foo.session)
|
110
|
+
self.assertIsNone(foo.invocation)
|
110
111
|
self.assertIsNone(foo.result)
|
111
112
|
self.assertIsNone(foo.metadata)
|
112
113
|
|
@@ -167,6 +168,7 @@ class SessionTest(unittest.TestCase):
|
|
167
168
|
|
168
169
|
# Inspecting the top-level action (Foo)
|
169
170
|
foo_invocation = root.execution[0]
|
171
|
+
self.assertIs(foo.invocation, foo_invocation)
|
170
172
|
self.assertIs(foo_invocation.parent_action, root)
|
171
173
|
self.assertEqual(foo_invocation.id, 'agent@1:/a1')
|
172
174
|
self.assertEqual(foo_invocation.execution.id, 'agent@1:/a1')
|
@@ -414,8 +416,8 @@ class SessionTest(unittest.TestCase):
|
|
414
416
|
def test_log(self):
|
415
417
|
session = action_lib.Session()
|
416
418
|
session.debug('hi', x=1, y=2)
|
417
|
-
session.info('hi', x=1, y=2)
|
418
|
-
session.warning('hi', x=1, y=2)
|
419
|
+
session.info('hi', x=1, y=2, for_action=session.root)
|
420
|
+
session.warning('hi', x=1, y=2, for_action=session.root.action)
|
419
421
|
session.error('hi', x=1, y=2)
|
420
422
|
session.fatal('hi', x=1, y=2)
|
421
423
|
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/__init__.py
RENAMED
@@ -87,6 +87,7 @@ VertexAIGeminiFlash1_5 = VertexAIGemini15Flash
|
|
87
87
|
# OpenAI models.
|
88
88
|
from langfun.core.llms.openai import OpenAI
|
89
89
|
|
90
|
+
from langfun.core.llms.openai import Gpt41
|
90
91
|
from langfun.core.llms.openai import GptO3
|
91
92
|
from langfun.core.llms.openai import GptO4Mini
|
92
93
|
from langfun.core.llms.openai import Gpt45Preview_20250227
|
@@ -657,7 +657,7 @@ class Gemini(rest.REST):
|
|
657
657
|
def result(self, json: dict[str, Any]) -> lf.LMSamplingResult:
|
658
658
|
messages = [
|
659
659
|
lf.Message.from_value(candidate['content'], format='gemini')
|
660
|
-
for candidate in json
|
660
|
+
for candidate in json.get('candidates', [])
|
661
661
|
]
|
662
662
|
usage = json['usageMetadata']
|
663
663
|
input_tokens = usage['promptTokenCount']
|
@@ -49,6 +49,30 @@ class OpenAIModelInfo(lf.ModelInfo):
|
|
49
49
|
#
|
50
50
|
|
51
51
|
SUPPORTED_MODELS = [
|
52
|
+
# GPT-4.1 models
|
53
|
+
OpenAIModelInfo(
|
54
|
+
model_id='gpt-4.1',
|
55
|
+
alias_for='gpt-4.1-2025-04-14',
|
56
|
+
in_service=True,
|
57
|
+
model_type='instruction-tuned',
|
58
|
+
description='GPT 4.1 model (latest stable).',
|
59
|
+
url='https://platform.openai.com/docs/models/gpt-4.1',
|
60
|
+
input_modalities=OpenAIModelInfo.INPUT_IMAGE_TYPES,
|
61
|
+
context_length=lf.ModelInfo.ContextLength(
|
62
|
+
max_input_tokens=1_047_576,
|
63
|
+
max_output_tokens=32_768,
|
64
|
+
),
|
65
|
+
pricing=lf.ModelInfo.Pricing(
|
66
|
+
cost_per_1m_cached_input_tokens=0.50,
|
67
|
+
cost_per_1m_input_tokens=2.0,
|
68
|
+
cost_per_1m_output_tokens=8.0,
|
69
|
+
),
|
70
|
+
# Tier 5 rate limits.
|
71
|
+
rate_limits=lf.ModelInfo.RateLimits(
|
72
|
+
max_requests_per_minute=10_000,
|
73
|
+
max_tokens_per_minute=30_000_000,
|
74
|
+
),
|
75
|
+
),
|
52
76
|
# o3 models.
|
53
77
|
OpenAIModelInfo(
|
54
78
|
model_id='o3',
|
@@ -1045,6 +1069,11 @@ class OpenAI(openai_compatible.OpenAICompatible):
|
|
1045
1069
|
return super()._request_args(options)
|
1046
1070
|
|
1047
1071
|
|
1072
|
+
class Gpt41(OpenAI):
|
1073
|
+
"""GPT-4.1."""
|
1074
|
+
model = 'gpt-4.1'
|
1075
|
+
|
1076
|
+
|
1048
1077
|
class GptO4Mini(OpenAI):
|
1049
1078
|
"""GPT O4 mini."""
|
1050
1079
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/agentic/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/agentic/action_eval.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/coding/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/component_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/concurrent_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/console_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/data/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/__init__.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/base_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/matching.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/matching_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/patching.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/patching_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/scoring.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/scoring_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/evaluation.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/example.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/example_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/experiment.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/metrics.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/metrics_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/progress.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/reporting.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/runners.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/eval/v2/runners_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/langfunc_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/language_model.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/language_model_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/anthropic.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/anthropic_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/azure_openai.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/cache/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/cache/base.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/cache/in_memory.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/compositional.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/deepseek.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/deepseek_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/fake_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/gemini_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/google_genai.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/groq_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/llama_cpp.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/llama_cpp_test.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/openai_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/rest_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/vertexai.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/llms/vertexai_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/logging_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/memories/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/message_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/audio.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/image.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/mime.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/mime_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/pdf.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/pdf_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modalities/video.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/modality_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/natural_language.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/sampling_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/mapping.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/parsing.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/querying.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/schema.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/structured/scoring.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/subscription.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/subscription_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/template_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/completion.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun/core/templates/selfplay.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun.egg-info/requires.txt
RENAMED
File without changes
|
{langfun-0.1.2.dev202505050805 → langfun-0.1.2.dev202505060804}/langfun.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|