lionagi 0.15.5__tar.gz → 0.15.7__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.
- {lionagi-0.15.5 → lionagi-0.15.7}/PKG-INFO +1 -2
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_async_call.py +7 -5
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_models.py +75 -50
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/__init__.py +2 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/flow.py +13 -10
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/processor.py +1 -2
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/session/session.py +3 -1
- lionagi-0.15.7/lionagi/version.py +1 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/pyproject.toml +1 -2
- {lionagi-0.15.5 → lionagi-0.15.7}/uv.lock +1 -12
- lionagi-0.15.5/lionagi/version.py +0 -1
- {lionagi-0.15.5 → lionagi-0.15.7}/.coveragerc +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/.env.example +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/.github/FUNDING.yml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/.github/dependabot.yml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/.github/workflows/ci.yml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/.github/workflows/codeql.yml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/.github/workflows/docs.yml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/.github/workflows/release.yml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/.gitignore +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/.pre-commit-config.yaml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/.python-version +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/CODE_OF_CONDUCT.md +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/CONTRIBUTING.md +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/LICENSE +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/README.md +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/assets/operation_builder.gif +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/001_branch_converse.ipynb +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/002_branch_interact.ipynb +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/003_branch_info.ipynb +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/004_conversation_patterns.ipynb +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/005_react_basics.ipynb +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/006_operation_graphs_claim_extraction.ipynb +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/007_fan_out_in.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/claude_proxy/README.md +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/claude_proxy/claude_code_proxy.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/claude_proxy/run_w_claude_code_proxy.ipynb +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/data/002_comedian.json +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/data/002_critic.json +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/data/006_lion_proof_ch2.md +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/using_claude_code.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/Makefile +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/_static/custom.css +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/_templates/layout.html +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/conf.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/discussions/anyio-migration.md +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/index.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/action.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/adapter.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/branch.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/branch_operations.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/concepts.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/element_id.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/event.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/form.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/graph.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/index.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/instruct.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/lib_file.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/lib_nested.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/lib_package.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/lib_schema.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/lib_validate.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/log.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/mail.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/message.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/models.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/operative_step.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/pile.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/processor.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/progression.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/service.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/session.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/utils.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/tutorials/get_started.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/tutorials/get_started_pt2.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/tutorials/get_started_pt3.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/docs/tutorials/index.rst +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/_class_registry.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/_errors.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/_types.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/adapters/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/adapters/_utils.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/adapters/async_postgres_adapter.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/adapters/postgres_model_adapter.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/config.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/action.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/base.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/code.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/file.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/instruct.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/reason.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/research.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/concurrency.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/chunk.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/concat.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/concat_files.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/file_ops.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/params.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/process.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/save.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/flatten.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/nfilter.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/nget.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/ninsert.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/nmerge.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/npop.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/nset.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/unflatten.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/utils.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/package/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/package/imports.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/package/management.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/package/params.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/package/system.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/parse.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/as_readable.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/extract_code_block.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/extract_docstring.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/function_to_schema.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/json_schema.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/base.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/llmlingua.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/perplexity.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/types.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/unstructured/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/unstructured/pdf_to_image.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/unstructured/read_image_to_base64.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/common_field_validators.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/string_similarity.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/to_num.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/validate_boolean.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/xml_parser.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_hash.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_list_call.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_to_list.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_types.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/cancel.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/errors.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/patterns.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/primitives.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/resource_tracker.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/task.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/throttle.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/utils.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/field_model.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/hashable_model.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/model_params.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/note.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/operable_model.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/schema_model.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/ReAct/ReAct.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/ReAct/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/ReAct/utils.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/_act/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/_act/act.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/brainstorm/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/brainstorm/brainstorm.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/brainstorm/prompt.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/builder.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/chat/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/chat/chat.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/communicate/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/communicate/communicate.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/instruct/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/instruct/instruct.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/interpret/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/interpret/interpret.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/manager.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/node.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/operate/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/operate/operate.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/parse/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/parse/parse.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/plan/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/plan/plan.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/plan/prompt.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/select/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/select/select.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/select/utils.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/translate/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/translate/translate.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/types.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/utils.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/_concepts.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/action/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/action/function_calling.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/action/manager.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/action/tool.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/forms/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/forms/base.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/forms/flow.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/forms/form.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/forms/report.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/element.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/event.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/log.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/pile.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/progression.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/graph/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/graph/edge.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/graph/graph.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/graph/node.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/exchange.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/mail.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/mailbox.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/manager.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/package.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/action_request.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/action_response.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/assistant_response.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/base.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/instruction.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/manager.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/message.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/system.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/README.md +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/operatives/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/operatives/operative.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/operatives/step.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/types.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/py.typed +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/api_calling.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/endpoint.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/endpoint_config.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/header_factory.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/match_endpoint.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/anthropic_.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/claude_code_.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/claude_code_cli.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/exa_.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/oai_.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/ollama_.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/perplexity_.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/types.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/hooks/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/hooks/_types.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/hooks/_utils.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/hooks/hook_event.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/hooks/hook_registry.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/imodel.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/manager.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/rate_limited_processor.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/resilience.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/README.md +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/anthropic_models.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/claude_code.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/exa_models.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/openai_model_names.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/pplx_models.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/token_calculator.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/types.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/session/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/session/branch.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/session/prompts.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/settings.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/base.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/file/__init__.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/file/reader.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/memory/tools.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/types.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/utils.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/main.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/scripts/README.md +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/scripts/concat.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/scripts/config.py +0 -0
- {lionagi-0.15.5 → lionagi-0.15.7}/scripts/update_openai_models.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lionagi
|
3
|
-
Version: 0.15.
|
3
|
+
Version: 0.15.7
|
4
4
|
Summary: An Intelligence Operating System.
|
5
5
|
Author-email: HaiyangLi <quantocean.li@gmail.com>
|
6
6
|
License: Apache License
|
@@ -220,7 +220,6 @@ Classifier: Programming Language :: Python :: 3.12
|
|
220
220
|
Classifier: Programming Language :: Python :: 3.13
|
221
221
|
Requires-Python: >=3.10
|
222
222
|
Requires-Dist: aiocache>=0.12.0
|
223
|
-
Requires-Dist: aiofiles>=24.1.0
|
224
223
|
Requires-Dist: aiohttp>=3.11.0
|
225
224
|
Requires-Dist: anyio>=4.7.0
|
226
225
|
Requires-Dist: backoff>=2.2.1
|
@@ -37,7 +37,7 @@ async def alcall(
|
|
37
37
|
retry_initial_deplay: float = 0,
|
38
38
|
retry_backoff: float = 1,
|
39
39
|
retry_default: Any = Unset,
|
40
|
-
retry_timeout: float =
|
40
|
+
retry_timeout: float = None,
|
41
41
|
retry_attempts: int = 0,
|
42
42
|
max_concurrent: int | None = None,
|
43
43
|
throttle_period: float | None = None,
|
@@ -277,8 +277,8 @@ class AlcallParams(Params):
|
|
277
277
|
async def __call__(
|
278
278
|
self, input_: list[Any], func: Callable[..., T], **kw
|
279
279
|
) -> list[T]:
|
280
|
-
|
281
|
-
return await
|
280
|
+
kwargs = {**self.default_kw(), **kw}
|
281
|
+
return await alcall(input_, func, **kwargs)
|
282
282
|
|
283
283
|
|
284
284
|
@dataclass(slots=True, init=False, frozen=True)
|
@@ -290,5 +290,7 @@ class BcallParams(AlcallParams):
|
|
290
290
|
async def __call__(
|
291
291
|
self, input_: list[Any], func: Callable[..., T], **kw
|
292
292
|
) -> list[T]:
|
293
|
-
|
294
|
-
|
293
|
+
kwargs = {**self.default_kw(), **kw}
|
294
|
+
func = self._func
|
295
|
+
|
296
|
+
return await func(input_, func, self.batch_size, **kwargs)
|
@@ -1,5 +1,4 @@
|
|
1
1
|
from dataclasses import dataclass, field
|
2
|
-
from functools import partial
|
3
2
|
from typing import Any, ClassVar
|
4
3
|
|
5
4
|
from typing_extensions import override
|
@@ -9,8 +8,9 @@ from ._types import Undefined, Unset, is_sentinel
|
|
9
8
|
__all__ = ("Params", "DataClass")
|
10
9
|
|
11
10
|
|
12
|
-
|
13
|
-
|
11
|
+
@dataclass(slots=True, frozen=True, init=False)
|
12
|
+
class Params:
|
13
|
+
"""Base class for parameters used in various functions."""
|
14
14
|
|
15
15
|
_none_as_sentinel: ClassVar[bool] = False
|
16
16
|
"""If True, None is treated as a sentinel value."""
|
@@ -26,6 +26,25 @@ class _SentinelAware:
|
|
26
26
|
)
|
27
27
|
"""Class variable cache to store allowed keys for parameters."""
|
28
28
|
|
29
|
+
def __init__(self, **kwargs: Any):
|
30
|
+
"""Initialize the Params object with keyword arguments."""
|
31
|
+
# Set all attributes from kwargs, allowing for sentinel values
|
32
|
+
for k, v in kwargs.items():
|
33
|
+
if k in self.allowed():
|
34
|
+
object.__setattr__(self, k, v)
|
35
|
+
else:
|
36
|
+
raise ValueError(f"Invalid parameter: {k}")
|
37
|
+
|
38
|
+
# Validate after setting all attributes
|
39
|
+
self._validate()
|
40
|
+
|
41
|
+
@classmethod
|
42
|
+
def _is_sentinel(cls, value: Any) -> bool:
|
43
|
+
"""Check if a value is a sentinel (Undefined or Unset)."""
|
44
|
+
if value is None and cls._none_as_sentinel:
|
45
|
+
return True
|
46
|
+
return is_sentinel(value)
|
47
|
+
|
29
48
|
@classmethod
|
30
49
|
def allowed(cls) -> set[str]:
|
31
50
|
"""Return the keys of the parameters."""
|
@@ -36,35 +55,6 @@ class _SentinelAware:
|
|
36
55
|
}
|
37
56
|
return cls._allowed_keys
|
38
57
|
|
39
|
-
@classmethod
|
40
|
-
def _is_sentinel(cls, value: Any) -> bool:
|
41
|
-
"""Check if a value is a sentinel (Undefined or Unset)."""
|
42
|
-
if value is None and cls._none_as_sentinel:
|
43
|
-
return True
|
44
|
-
return is_sentinel(value)
|
45
|
-
|
46
|
-
def __post_init__(self):
|
47
|
-
"""Post-initialization to ensure all fields are set."""
|
48
|
-
self._validate()
|
49
|
-
|
50
|
-
def _validate(self) -> None:
|
51
|
-
pass
|
52
|
-
|
53
|
-
def to_dict(self) -> dict[str, str]:
|
54
|
-
data = {}
|
55
|
-
for k in self.allowed():
|
56
|
-
if not self._is_sentinel(v := getattr(self, k)):
|
57
|
-
data[k] = v
|
58
|
-
return data
|
59
|
-
|
60
|
-
|
61
|
-
@dataclass(slots=True, frozen=True, init=False)
|
62
|
-
class Params(_SentinelAware):
|
63
|
-
"""Base class for parameters used in various functions."""
|
64
|
-
|
65
|
-
_func: ClassVar[Any] = Unset
|
66
|
-
_particial_func: ClassVar[Any] = Unset
|
67
|
-
|
68
58
|
@override
|
69
59
|
def _validate(self) -> None:
|
70
60
|
def _validate_strict(k):
|
@@ -79,38 +69,58 @@ class Params(_SentinelAware):
|
|
79
69
|
for k in self.allowed():
|
80
70
|
_validate_strict(k)
|
81
71
|
|
82
|
-
def
|
83
|
-
# if partial function is already cached, return it
|
84
|
-
if self._particial_func is not Unset:
|
85
|
-
return self._particial_func
|
86
|
-
|
87
|
-
# validate is there is a function to apply
|
88
|
-
if self._func is Unset:
|
89
|
-
raise ValueError("No function defined for partial application.")
|
90
|
-
if not callable(self._func):
|
91
|
-
raise TypeError(
|
92
|
-
f"Expected a callable, got {type(self._func).__name__}."
|
93
|
-
)
|
72
|
+
def default_kw(self) -> Any:
|
94
73
|
|
95
74
|
# create a partial function with the current parameters
|
96
75
|
dict_ = self.to_dict()
|
97
|
-
if not dict_:
|
98
|
-
self._particial_func = self._func
|
99
|
-
return self._func
|
100
76
|
|
101
77
|
# handle kwargs if present, handle both 'kwargs' and 'kw'
|
102
78
|
kw_ = {}
|
103
79
|
kw_.update(dict_.pop("kwargs", {}))
|
104
80
|
kw_.update(dict_.pop("kw", {}))
|
105
81
|
dict_.update(kw_)
|
106
|
-
|
107
|
-
|
82
|
+
return dict_
|
83
|
+
|
84
|
+
def to_dict(self) -> dict[str, str]:
|
85
|
+
data = {}
|
86
|
+
for k in self.allowed():
|
87
|
+
if not self._is_sentinel(v := getattr(self, k, Undefined)):
|
88
|
+
data[k] = v
|
89
|
+
return data
|
108
90
|
|
109
91
|
|
110
92
|
@dataclass(slots=True)
|
111
|
-
class DataClass
|
93
|
+
class DataClass:
|
112
94
|
"""A base class for data classes with strict parameter handling."""
|
113
95
|
|
96
|
+
_none_as_sentinel: ClassVar[bool] = False
|
97
|
+
"""If True, None is treated as a sentinel value."""
|
98
|
+
|
99
|
+
_strict: ClassVar[bool] = False
|
100
|
+
"""No sentinels allowed if strict is True."""
|
101
|
+
|
102
|
+
_prefill_unset: ClassVar[bool] = True
|
103
|
+
"""If True, unset fields are prefilled with Unset."""
|
104
|
+
|
105
|
+
_allowed_keys: ClassVar[set[str]] = field(
|
106
|
+
default=set(), init=False, repr=False
|
107
|
+
)
|
108
|
+
"""Class variable cache to store allowed keys for parameters."""
|
109
|
+
|
110
|
+
def __post_init__(self):
|
111
|
+
"""Post-initialization to ensure all fields are set."""
|
112
|
+
self._validate()
|
113
|
+
|
114
|
+
@classmethod
|
115
|
+
def allowed(cls) -> set[str]:
|
116
|
+
"""Return the keys of the parameters."""
|
117
|
+
if cls._allowed_keys:
|
118
|
+
return cls._allowed_keys
|
119
|
+
cls._allowed_keys = {
|
120
|
+
i for i in cls.__dataclass_fields__.keys() if not i.startswith("_")
|
121
|
+
}
|
122
|
+
return cls._allowed_keys
|
123
|
+
|
114
124
|
@override
|
115
125
|
def _validate(self) -> None:
|
116
126
|
def _validate_strict(k):
|
@@ -124,3 +134,18 @@ class DataClass(_SentinelAware):
|
|
124
134
|
|
125
135
|
for k in self.allowed():
|
126
136
|
_validate_strict(k)
|
137
|
+
|
138
|
+
def to_dict(self) -> dict[str, str]:
|
139
|
+
data = {}
|
140
|
+
print(self.allowed())
|
141
|
+
for k in type(self).allowed():
|
142
|
+
if not self._is_sentinel(v := getattr(self, k)):
|
143
|
+
data[k] = v
|
144
|
+
return data
|
145
|
+
|
146
|
+
@classmethod
|
147
|
+
def _is_sentinel(cls, value: Any) -> bool:
|
148
|
+
"""Check if a value is a sentinel (Undefined or Unset)."""
|
149
|
+
if value is None and cls._none_as_sentinel:
|
150
|
+
return True
|
151
|
+
return is_sentinel(value)
|
@@ -24,6 +24,7 @@ from .resource_tracker import (
|
|
24
24
|
from .task import TaskGroup, create_task_group
|
25
25
|
from .utils import is_coro_func
|
26
26
|
|
27
|
+
ConcurrencyEvent = Event
|
27
28
|
__all__ = (
|
28
29
|
"TaskGroup",
|
29
30
|
"create_task_group",
|
@@ -48,4 +49,5 @@ __all__ = (
|
|
48
49
|
"cleanup_check",
|
49
50
|
"get_global_tracker",
|
50
51
|
"is_coro_func",
|
52
|
+
"ConcurrencyEvent",
|
51
53
|
)
|
@@ -12,9 +12,7 @@ using Events for synchronization and CapacityLimiter for concurrency control.
|
|
12
12
|
import os
|
13
13
|
from typing import Any
|
14
14
|
|
15
|
-
from lionagi.ln
|
16
|
-
from lionagi.ln.concurrency.primitives import Event as ConcurrencyEvent
|
17
|
-
from lionagi.ln.concurrency.task import create_task_group
|
15
|
+
from lionagi.ln import AlcallParams, CapacityLimiter, ConcurrencyEvent
|
18
16
|
from lionagi.operations.node import Operation
|
19
17
|
from lionagi.protocols.types import EventStatus, Graph
|
20
18
|
from lionagi.session.branch import Branch
|
@@ -36,6 +34,7 @@ class DependencyAwareExecutor:
|
|
36
34
|
max_concurrent: int = 5,
|
37
35
|
verbose: bool = False,
|
38
36
|
default_branch: Branch | None = None,
|
37
|
+
alcall_params: AlcallParams | None = None,
|
39
38
|
):
|
40
39
|
"""Initialize the executor.
|
41
40
|
|
@@ -52,6 +51,7 @@ class DependencyAwareExecutor:
|
|
52
51
|
self.context = context or {}
|
53
52
|
self.max_concurrent = max_concurrent
|
54
53
|
self.verbose = verbose
|
54
|
+
self._alcall = alcall_params or AlcallParams()
|
55
55
|
self._default_branch = default_branch
|
56
56
|
|
57
57
|
# Track results and completion
|
@@ -92,11 +92,12 @@ class DependencyAwareExecutor:
|
|
92
92
|
)
|
93
93
|
limiter = CapacityLimiter(capacity)
|
94
94
|
|
95
|
-
|
96
|
-
|
97
|
-
for
|
98
|
-
|
99
|
-
|
95
|
+
nodes = [
|
96
|
+
n
|
97
|
+
for n in self.graph.internal_nodes.values()
|
98
|
+
if isinstance(n, Operation)
|
99
|
+
]
|
100
|
+
await self._alcall(nodes, self._execute_operation, limiter=limiter)
|
100
101
|
|
101
102
|
# Return results - only include actually completed operations
|
102
103
|
completed_ops = [
|
@@ -507,6 +508,7 @@ async def flow(
|
|
507
508
|
parallel: bool = True,
|
508
509
|
max_concurrent: int = None,
|
509
510
|
verbose: bool = False,
|
511
|
+
alcall_params: AlcallParams | None = None,
|
510
512
|
) -> dict[str, Any]:
|
511
513
|
"""Execute a graph using structured concurrency primitives.
|
512
514
|
|
@@ -521,6 +523,7 @@ async def flow(
|
|
521
523
|
parallel: Whether to execute independent operations in parallel
|
522
524
|
max_concurrent: Max concurrent operations (1 if not parallel)
|
523
525
|
verbose: Enable verbose logging
|
526
|
+
alcall_params: Parameters for async parallel call execution
|
524
527
|
|
525
528
|
Returns:
|
526
529
|
Execution results with completed operations and final context
|
@@ -528,8 +531,7 @@ async def flow(
|
|
528
531
|
|
529
532
|
# Handle concurrency limits
|
530
533
|
if not parallel:
|
531
|
-
max_concurrent = 1
|
532
|
-
# If max_concurrent is None, it means no limit
|
534
|
+
max_concurrent = 1
|
533
535
|
|
534
536
|
# Execute using the dependency-aware executor
|
535
537
|
executor = DependencyAwareExecutor(
|
@@ -539,6 +541,7 @@ async def flow(
|
|
539
541
|
max_concurrent=max_concurrent,
|
540
542
|
verbose=verbose,
|
541
543
|
default_branch=branch,
|
544
|
+
alcall_params=alcall_params,
|
542
545
|
)
|
543
546
|
|
544
547
|
return await executor.execute()
|
@@ -5,8 +5,7 @@
|
|
5
5
|
import asyncio
|
6
6
|
from typing import Any, ClassVar
|
7
7
|
|
8
|
-
from lionagi.
|
9
|
-
from lionagi.libs.concurrency import Semaphore, create_task_group
|
8
|
+
from lionagi.ln import ConcurrencyEvent, Semaphore, create_task_group
|
10
9
|
|
11
10
|
from .._concepts import Observer
|
12
11
|
from .element import ID
|
@@ -387,6 +387,7 @@ class Session(Node, Communicatable, Relational):
|
|
387
387
|
max_concurrent: int = 5,
|
388
388
|
verbose: bool = False,
|
389
389
|
default_branch: Branch | ID.Ref | None = None,
|
390
|
+
alcall_params: Any = None,
|
390
391
|
) -> dict[str, Any]:
|
391
392
|
"""
|
392
393
|
Execute a graph-based workflow using multi-branch orchestration.
|
@@ -401,7 +402,7 @@ class Session(Node, Communicatable, Relational):
|
|
401
402
|
max_concurrent: Maximum concurrent operations (branches)
|
402
403
|
verbose: Enable verbose logging
|
403
404
|
default_branch: Branch to use as default (defaults to self.default_branch)
|
404
|
-
|
405
|
+
alcall_params: Parameters for async parallel call execution
|
405
406
|
|
406
407
|
Returns:
|
407
408
|
Execution results with completed operations and final context
|
@@ -421,6 +422,7 @@ class Session(Node, Communicatable, Relational):
|
|
421
422
|
parallel=parallel,
|
422
423
|
max_concurrent=max_concurrent,
|
423
424
|
verbose=verbose,
|
425
|
+
alcall_params=alcall_params,
|
424
426
|
)
|
425
427
|
|
426
428
|
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.15.7"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "lionagi"
|
3
|
-
version = "0.15.
|
3
|
+
version = "0.15.7"
|
4
4
|
description = "An Intelligence Operating System."
|
5
5
|
authors = [
|
6
6
|
{ name = "HaiyangLi", email = "quantocean.li@gmail.com" },
|
@@ -9,7 +9,6 @@ readme = "README.md"
|
|
9
9
|
requires-python = ">=3.10"
|
10
10
|
dependencies = [
|
11
11
|
"aiocache>=0.12.0",
|
12
|
-
"aiofiles>=24.1.0",
|
13
12
|
"aiohttp>=3.11.0",
|
14
13
|
"anyio>=4.7.0",
|
15
14
|
"backoff>=2.2.1",
|
@@ -52,15 +52,6 @@ wheels = [
|
|
52
52
|
{ url = "https://files.pythonhosted.org/packages/37/d7/15d67e05b235d1ed8c3ce61688fe4d84130e72af1657acadfaac3479f4cf/aiocache-0.12.3-py2.py3-none-any.whl", hash = "sha256:889086fc24710f431937b87ad3720a289f7fc31c4fd8b68e9f918b9bacd8270d", size = 28199, upload-time = "2024-09-25T13:20:22.688Z" },
|
53
53
|
]
|
54
54
|
|
55
|
-
[[package]]
|
56
|
-
name = "aiofiles"
|
57
|
-
version = "24.1.0"
|
58
|
-
source = { registry = "https://pypi.org/simple" }
|
59
|
-
sdist = { url = "https://files.pythonhosted.org/packages/0b/03/a88171e277e8caa88a4c77808c20ebb04ba74cc4681bf1e9416c862de237/aiofiles-24.1.0.tar.gz", hash = "sha256:22a075c9e5a3810f0c2e48f3008c94d68c65d763b9b03857924c99e57355166c", size = 30247, upload-time = "2024-06-24T11:02:03.584Z" }
|
60
|
-
wheels = [
|
61
|
-
{ url = "https://files.pythonhosted.org/packages/a5/45/30bb92d442636f570cb5651bc661f52b610e2eec3f891a5dc3a4c3667db0/aiofiles-24.1.0-py3-none-any.whl", hash = "sha256:b4ec55f4195e3eb5d7abd1bf7e061763e864dd4954231fb8539a0ef8bb8260e5", size = 15896, upload-time = "2024-06-24T11:02:01.529Z" },
|
62
|
-
]
|
63
|
-
|
64
55
|
[[package]]
|
65
56
|
name = "aiohappyeyeballs"
|
66
57
|
version = "2.6.1"
|
@@ -1942,11 +1933,10 @@ wheels = [
|
|
1942
1933
|
|
1943
1934
|
[[package]]
|
1944
1935
|
name = "lionagi"
|
1945
|
-
version = "0.15.
|
1936
|
+
version = "0.15.7"
|
1946
1937
|
source = { editable = "." }
|
1947
1938
|
dependencies = [
|
1948
1939
|
{ name = "aiocache" },
|
1949
|
-
{ name = "aiofiles" },
|
1950
1940
|
{ name = "aiohttp" },
|
1951
1941
|
{ name = "anyio" },
|
1952
1942
|
{ name = "backoff" },
|
@@ -2037,7 +2027,6 @@ dev = [
|
|
2037
2027
|
[package.metadata]
|
2038
2028
|
requires-dist = [
|
2039
2029
|
{ name = "aiocache", specifier = ">=0.12.0" },
|
2040
|
-
{ name = "aiofiles", specifier = ">=24.1.0" },
|
2041
2030
|
{ name = "aiohttp", specifier = ">=3.11.0" },
|
2042
2031
|
{ name = "aiosqlite", marker = "extra == 'sqlite'", specifier = ">=0.21.0" },
|
2043
2032
|
{ name = "anyio", specifier = ">=4.7.0" },
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = "0.15.5"
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|