lionagi 0.17.0__tar.gz → 0.17.1__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.17.0 → lionagi-0.17.1}/PKG-INFO +4 -1
- lionagi-0.17.1/lionagi/__init__.py +54 -0
- lionagi-0.17.1/lionagi/_types.py +47 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/flow.py +91 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/graph/node.py +27 -8
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/__init__.py +19 -1
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/api_calling.py +13 -4
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/types.py +19 -1
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/session/session.py +42 -0
- lionagi-0.17.1/lionagi/version.py +1 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/pyproject.toml +6 -1
- {lionagi-0.17.0 → lionagi-0.17.1}/uv.lock +65 -1
- lionagi-0.17.0/lionagi/__init__.py +0 -32
- lionagi-0.17.0/lionagi/_types.py +0 -3
- lionagi-0.17.0/lionagi/version.py +0 -1
- {lionagi-0.17.0 → lionagi-0.17.1}/.coveragerc +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.env.example +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.github/FUNDING.yml +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.github/dependabot.yml +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.github/workflows/benchmarks.yml +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.github/workflows/ci.yml +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.github/workflows/codeql.yml +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.github/workflows/docs-deploy.yml +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.github/workflows/refresh-bench-baselines.yml +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.github/workflows/release.yml +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.gitignore +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.pre-commit-config.yaml +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/.python-version +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/CODE_OF_CONDUCT.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/CONTRIBUTING.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/LICENSE +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/README.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/assets/operation_builder.gif +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/README.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/baselines/.gitkeep +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/baselines/concurrency-asyncio.json +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/baselines/concurrency-trio.json +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/baselines/fuzzy.json +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/baselines/ln-asyncio.json +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/baselines/ln-trio.json +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/ci_compare.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/concurrency_bench.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/fuzzy_bench.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/benchmarks/ln_bench.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/001_branch_converse.ipynb +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/002_branch_interact.ipynb +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/003_branch_info.ipynb +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/004_conversation_patterns.ipynb +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/005_react_basics.ipynb +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/006_operation_graphs_claim_extraction.ipynb +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/007_fan_out_in.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/claude_proxy/README.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/claude_proxy/claude_code_proxy.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/claude_proxy/run_w_claude_code_proxy.ipynb +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/data/002_comedian.json +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/data/002_critic.json +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/data/006_lion_proof_ch2.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/cookbooks/using_claude_code.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/DOCUMENTATION_STANDARDS.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/advanced/custom-operations.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/advanced/error-handling.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/advanced/flow-composition.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/advanced/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/advanced/observability.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/advanced/performance.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/code-of-conduct.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/comparisons/langgraph.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/contributing.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/cookbook/brainstorming.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/cookbook/claim-extraction.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/cookbook/code-review-crew.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/cookbook/data-persistence.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/cookbook/hr-automation.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/cookbook/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/cookbook/research-synthesis.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/core-concepts/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/core-concepts/lionagi-philosophy.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/core-concepts/messages-and-memory.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/core-concepts/models-and-providers.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/core-concepts/operations.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/core-concepts/sessions-and-branches.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/core-concepts/tools-and-functions.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/for-ai-agents/claude-code-usage.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/for-ai-agents/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/for-ai-agents/orchestration-guide.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/for-ai-agents/pattern-selection.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/for-ai-agents/self-improvement.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/includes/abbreviations.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/integrations/databases.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/integrations/dspy-optimization.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/integrations/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/integrations/llamaindex-rag.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/integrations/llm-providers.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/integrations/mcp-servers.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/integrations/tools.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/integrations/vector-stores.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/marketing/language-interoperability-manifesto.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/migration/from-autogen.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/migration/from-crewai.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/migration/from-langchain.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/migration/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/patterns/conditional-flows.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/patterns/fan-out-in.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/patterns/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/patterns/react-with-rag.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/patterns/sequential-analysis.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/patterns/tournament-validation.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/problem-statement.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/quickstart/claude-code-integration.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/quickstart/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/quickstart/installation.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/quickstart/orchestration-first.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/quickstart/your-first-flow.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/reference/api/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/reference/changelog.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/reference/troubleshooting.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/stylesheets/extra.css +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/thinking-in-lionagi/branches-as-agents.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/thinking-in-lionagi/builder-pattern.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/thinking-in-lionagi/graphs-over-chains.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/thinking-in-lionagi/index.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/docs/thinking-in-lionagi/why-lionagi.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/_class_registry.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/_errors.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/adapters/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/adapters/_utils.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/adapters/async_postgres_adapter.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/config.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/fields/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/fields/action.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/fields/base.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/fields/code.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/fields/file.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/fields/instruct.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/fields/reason.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/fields/research.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/file/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/file/_utils.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/file/chunk.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/file/concat.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/file/concat_files.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/file/file_ops.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/file/process.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/file/save.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/schema/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/schema/as_readable.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/schema/extract_code_block.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/schema/extract_docstring.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/schema/function_to_schema.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/validate/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/validate/common_field_validators.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/validate/to_num.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/libs/validate/validate_boolean.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/_async_call.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/_hash.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/_json_dump.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/_list_call.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/_to_list.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/_utils.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/concurrency/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/concurrency/_compat.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/concurrency/cancel.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/concurrency/errors.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/concurrency/patterns.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/concurrency/primitives.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/concurrency/resource_tracker.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/concurrency/task.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/concurrency/throttle.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/concurrency/utils.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/fuzzy/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/fuzzy/_extract_json.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/fuzzy/_fuzzy_json.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/fuzzy/_fuzzy_match.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/fuzzy/_fuzzy_validate.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/fuzzy/_string_similarity.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/fuzzy/_to_dict.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/ln/types.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/models/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/models/field_model.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/models/hashable_model.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/models/model_params.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/models/operable_model.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/models/schema_model.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/ReAct/ReAct.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/ReAct/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/ReAct/utils.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/_act/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/_act/act.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/_visualize_graph.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/brainstorm/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/brainstorm/brainstorm.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/brainstorm/prompt.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/builder.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/chat/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/chat/chat.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/communicate/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/communicate/communicate.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/instruct/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/instruct/instruct.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/interpret/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/interpret/interpret.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/manager.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/node.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/operate/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/operate/operate.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/parse/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/parse/parse.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/plan/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/plan/plan.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/plan/prompt.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/select/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/select/select.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/select/utils.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/types.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/operations/utils.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/_concepts.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/action/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/action/function_calling.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/action/manager.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/action/tool.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/contracts.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/forms/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/forms/base.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/forms/flow.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/forms/form.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/forms/report.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/generic/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/generic/element.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/generic/event.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/generic/log.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/generic/pile.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/generic/processor.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/generic/progression.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/graph/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/graph/edge.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/graph/graph.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/ids.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/mail/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/mail/exchange.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/mail/mail.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/mail/mailbox.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/mail/manager.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/mail/package.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/action_request.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/action_response.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/assistant_response.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/base.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/instruction.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/manager.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/message.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/system.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/templates/README.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/operatives/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/operatives/operative.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/operatives/step.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/protocols/types.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/py.typed +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/endpoint.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/endpoint_config.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/header_factory.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/match_endpoint.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/providers/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/providers/anthropic_.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/providers/claude_code_cli.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/providers/exa_.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/providers/nvidia_nim_.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/providers/oai_.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/providers/ollama_.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/providers/perplexity_.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/connections/providers/types.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/hooks/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/hooks/_types.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/hooks/_utils.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/hooks/hook_event.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/hooks/hook_registry.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/imodel.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/manager.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/rate_limited_processor.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/resilience.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/third_party/README.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/third_party/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/third_party/anthropic_models.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/third_party/claude_code.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/third_party/exa_models.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/third_party/openai_model_names.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/third_party/pplx_models.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/service/token_calculator.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/session/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/session/branch.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/session/prompts.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/settings.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/tools/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/tools/base.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/tools/file/__init__.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/tools/file/reader.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/tools/types.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/lionagi/utils.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/main.py +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/mkdocs.yml +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/scripts/README.md +0 -0
- {lionagi-0.17.0 → lionagi-0.17.1}/scripts/update_openai_models.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lionagi
|
3
|
-
Version: 0.17.
|
3
|
+
Version: 0.17.1
|
4
4
|
Summary: An Intelligence Operating System.
|
5
5
|
Author-email: HaiyangLi <quantocean.li@gmail.com>
|
6
6
|
License: Apache License
|
@@ -225,7 +225,10 @@ Requires-Dist: anyio>=4.7.0
|
|
225
225
|
Requires-Dist: backoff>=2.0.0
|
226
226
|
Requires-Dist: jinja2>=3.0.0
|
227
227
|
Requires-Dist: json-repair>=0.40.0
|
228
|
+
Requires-Dist: matplotlib>=3.10.3
|
228
229
|
Requires-Dist: msgspec>=0.18.0
|
230
|
+
Requires-Dist: pandas>=2.3.1
|
231
|
+
Requires-Dist: psutil>=7.0.0
|
229
232
|
Requires-Dist: pydantic-settings>=2.8.0
|
230
233
|
Requires-Dist: pydantic>=2.8.0
|
231
234
|
Requires-Dist: pydapter>=1.1.1
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
5
|
+
import logging
|
6
|
+
|
7
|
+
from pydantic import BaseModel, Field
|
8
|
+
|
9
|
+
# Eager imports for commonly used components
|
10
|
+
from . import ln as ln
|
11
|
+
from .operations.node import Operation
|
12
|
+
from .service.imodel import iModel
|
13
|
+
from .session.session import Branch, Session
|
14
|
+
from .version import __version__
|
15
|
+
|
16
|
+
logger = logging.getLogger(__name__)
|
17
|
+
logger.setLevel(logging.INFO)
|
18
|
+
|
19
|
+
# Module-level lazy loading cache
|
20
|
+
_lazy_imports = {}
|
21
|
+
|
22
|
+
|
23
|
+
def __getattr__(name: str):
|
24
|
+
"""Lazy loading for expensive imports."""
|
25
|
+
if name in _lazy_imports:
|
26
|
+
return _lazy_imports[name]
|
27
|
+
|
28
|
+
if name == "types":
|
29
|
+
from . import _types as types
|
30
|
+
|
31
|
+
_lazy_imports["types"] = types
|
32
|
+
return types
|
33
|
+
elif name == "Builder":
|
34
|
+
from .operations.builder import OperationGraphBuilder as Builder
|
35
|
+
|
36
|
+
_lazy_imports["Builder"] = Builder
|
37
|
+
return Builder
|
38
|
+
|
39
|
+
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
40
|
+
|
41
|
+
|
42
|
+
__all__ = (
|
43
|
+
"Session",
|
44
|
+
"Branch",
|
45
|
+
"iModel",
|
46
|
+
"types",
|
47
|
+
"__version__",
|
48
|
+
"BaseModel",
|
49
|
+
"Field",
|
50
|
+
"logger",
|
51
|
+
"Builder",
|
52
|
+
"Operation",
|
53
|
+
"ln",
|
54
|
+
)
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# Lazy loading for heavy type imports to improve startup performance
|
2
|
+
_lazy_type_imports = {}
|
3
|
+
|
4
|
+
|
5
|
+
def __getattr__(name: str):
|
6
|
+
"""Lazy loading for type definitions."""
|
7
|
+
if name in _lazy_type_imports:
|
8
|
+
return _lazy_type_imports[name]
|
9
|
+
|
10
|
+
# Import from fields
|
11
|
+
try:
|
12
|
+
from .fields import __all__ as fields_all
|
13
|
+
|
14
|
+
if name in fields_all:
|
15
|
+
from . import fields
|
16
|
+
|
17
|
+
attr = getattr(fields, name)
|
18
|
+
_lazy_type_imports[name] = attr
|
19
|
+
return attr
|
20
|
+
except (ImportError, AttributeError):
|
21
|
+
pass
|
22
|
+
|
23
|
+
# Import from models
|
24
|
+
try:
|
25
|
+
from .models import __all__ as models_all
|
26
|
+
|
27
|
+
if name in models_all:
|
28
|
+
from . import models
|
29
|
+
|
30
|
+
attr = getattr(models, name)
|
31
|
+
_lazy_type_imports[name] = attr
|
32
|
+
return attr
|
33
|
+
except (ImportError, AttributeError):
|
34
|
+
pass
|
35
|
+
|
36
|
+
# Import from protocols.types
|
37
|
+
try:
|
38
|
+
from .protocols import types as protocol_types
|
39
|
+
|
40
|
+
if hasattr(protocol_types, name):
|
41
|
+
attr = getattr(protocol_types, name)
|
42
|
+
_lazy_type_imports[name] = attr
|
43
|
+
return attr
|
44
|
+
except (ImportError, AttributeError):
|
45
|
+
pass
|
46
|
+
|
47
|
+
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
@@ -549,3 +549,94 @@ async def flow(
|
|
549
549
|
)
|
550
550
|
|
551
551
|
return await executor.execute()
|
552
|
+
|
553
|
+
|
554
|
+
def cleanup_flow_results(
|
555
|
+
result: dict[str, Any], keep_only: list[str] = None
|
556
|
+
) -> dict[str, Any]:
|
557
|
+
"""
|
558
|
+
Clean up flow execution results to reduce memory usage.
|
559
|
+
|
560
|
+
Args:
|
561
|
+
result: Flow execution result dictionary
|
562
|
+
keep_only: List of operation IDs to keep results for (optional)
|
563
|
+
|
564
|
+
Returns:
|
565
|
+
Modified result dictionary with reduced memory footprint
|
566
|
+
"""
|
567
|
+
if not isinstance(result, dict) or "operation_results" not in result:
|
568
|
+
return result
|
569
|
+
|
570
|
+
# If keep_only is specified, only keep those results
|
571
|
+
if keep_only is not None:
|
572
|
+
filtered_results = {
|
573
|
+
op_id: res
|
574
|
+
for op_id, res in result["operation_results"].items()
|
575
|
+
if op_id in keep_only
|
576
|
+
}
|
577
|
+
result["operation_results"] = filtered_results
|
578
|
+
# Update completed_operations to match
|
579
|
+
result["completed_operations"] = [
|
580
|
+
op_id
|
581
|
+
for op_id in result.get("completed_operations", [])
|
582
|
+
if op_id in keep_only
|
583
|
+
]
|
584
|
+
else:
|
585
|
+
# Clear all results to free memory
|
586
|
+
result["operation_results"] = {}
|
587
|
+
result["completed_operations"] = []
|
588
|
+
|
589
|
+
return result
|
590
|
+
|
591
|
+
|
592
|
+
async def flow_with_cleanup(
|
593
|
+
session: "Session",
|
594
|
+
graph: "Graph",
|
595
|
+
context: dict[str, Any] | None = None,
|
596
|
+
parallel: bool = True,
|
597
|
+
max_concurrent: int = 5,
|
598
|
+
verbose: bool = False,
|
599
|
+
branch: "Branch" = None,
|
600
|
+
alcall_params: AlcallParams | None = None,
|
601
|
+
cleanup_results: bool = True,
|
602
|
+
keep_only: list[str] = None,
|
603
|
+
) -> dict[str, Any]:
|
604
|
+
"""
|
605
|
+
Execute flow with automatic cleanup to prevent memory accumulation.
|
606
|
+
|
607
|
+
Args:
|
608
|
+
session: Session instance for branch management
|
609
|
+
graph: Operation graph to execute
|
610
|
+
context: Initial context data
|
611
|
+
parallel: Execute independent operations in parallel
|
612
|
+
max_concurrent: Max concurrent operations (1 if not parallel)
|
613
|
+
verbose: Enable verbose logging
|
614
|
+
branch: Default branch for operations
|
615
|
+
alcall_params: Parameters for async parallel call execution
|
616
|
+
cleanup_results: Whether to clean up operation results after execution
|
617
|
+
keep_only: List of operation IDs to keep results for (if cleanup_results=True)
|
618
|
+
|
619
|
+
Returns:
|
620
|
+
Execution results (potentially with cleaned up memory footprint)
|
621
|
+
"""
|
622
|
+
# Execute the flow normally
|
623
|
+
result = await flow(
|
624
|
+
session=session,
|
625
|
+
graph=graph,
|
626
|
+
context=context,
|
627
|
+
parallel=parallel,
|
628
|
+
max_concurrent=max_concurrent,
|
629
|
+
verbose=verbose,
|
630
|
+
branch=branch,
|
631
|
+
alcall_params=alcall_params,
|
632
|
+
)
|
633
|
+
|
634
|
+
# Clean up session memory
|
635
|
+
if hasattr(session, "cleanup_memory"):
|
636
|
+
session.cleanup_memory()
|
637
|
+
|
638
|
+
# Clean up results if requested
|
639
|
+
if cleanup_results:
|
640
|
+
result = cleanup_flow_results(result, keep_only=keep_only)
|
641
|
+
|
642
|
+
return result
|
@@ -62,6 +62,10 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
|
|
62
62
|
async def adapt_to_async(
|
63
63
|
self, obj_key: str, many=False, **kwargs: Any
|
64
64
|
) -> Any:
|
65
|
+
# Only register postgres adapter if this specific operation needs it
|
66
|
+
if obj_key == "lionagi_async_pg":
|
67
|
+
_ensure_postgres_adapter()
|
68
|
+
|
65
69
|
kwargs["adapt_meth"] = "to_dict"
|
66
70
|
kwargs["adapt_kw"] = {"mode": "db"}
|
67
71
|
return await super().adapt_to_async(
|
@@ -76,6 +80,10 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
|
|
76
80
|
many=False,
|
77
81
|
**kwargs: Any,
|
78
82
|
) -> Node:
|
83
|
+
# Only register postgres adapter if this specific operation needs it
|
84
|
+
if obj_key == "lionagi_async_pg":
|
85
|
+
_ensure_postgres_adapter()
|
86
|
+
|
79
87
|
kwargs["adapt_meth"] = "from_dict"
|
80
88
|
return await super().adapt_from_async(
|
81
89
|
obj, obj_key=obj_key, many=many, **kwargs
|
@@ -122,20 +130,31 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
|
|
122
130
|
return value
|
123
131
|
|
124
132
|
|
133
|
+
def _ensure_postgres_adapter():
|
134
|
+
"""Lazy registration of postgres adapter when needed"""
|
135
|
+
if not hasattr(Node, "_postgres_adapter_checked"):
|
136
|
+
from lionagi.adapters._utils import check_async_postgres_available
|
137
|
+
|
138
|
+
if check_async_postgres_available() is True:
|
139
|
+
try:
|
140
|
+
from lionagi.adapters.async_postgres_adapter import (
|
141
|
+
LionAGIAsyncPostgresAdapter,
|
142
|
+
)
|
143
|
+
|
144
|
+
Node.register_async_adapter(LionAGIAsyncPostgresAdapter)
|
145
|
+
except ImportError:
|
146
|
+
pass # Graceful degradation if postgres dependencies missing
|
147
|
+
Node._postgres_adapter_checked = True
|
148
|
+
|
149
|
+
|
125
150
|
if not _ADAPATER_REGISTERED:
|
126
151
|
from pydapter.adapters import JsonAdapter, TomlAdapter
|
127
152
|
|
128
153
|
Node.register_adapter(JsonAdapter)
|
129
154
|
Node.register_adapter(TomlAdapter)
|
130
155
|
|
131
|
-
|
132
|
-
|
133
|
-
if check_async_postgres_available() is True:
|
134
|
-
from lionagi.adapters.async_postgres_adapter import (
|
135
|
-
LionAGIAsyncPostgresAdapter,
|
136
|
-
)
|
137
|
-
|
138
|
-
Node.register_async_adapter(LionAGIAsyncPostgresAdapter)
|
156
|
+
# PostgreSQL adapter registration is now lazy - only loaded when needed
|
157
|
+
# Call _ensure_postgres_adapter() in methods that actually use async adapters
|
139
158
|
|
140
159
|
_ADAPATER_REGISTERED = True
|
141
160
|
|
@@ -1,10 +1,28 @@
|
|
1
|
+
# Eager imports for core functionality
|
1
2
|
from .connections.api_calling import APICalling
|
2
3
|
from .connections.endpoint import Endpoint, EndpointConfig
|
3
4
|
from .hooks import *
|
4
5
|
from .imodel import iModel
|
5
6
|
from .manager import iModelManager
|
6
7
|
from .rate_limited_processor import RateLimitedAPIExecutor
|
7
|
-
|
8
|
+
|
9
|
+
# Lazy loading cache
|
10
|
+
_lazy_imports = {}
|
11
|
+
|
12
|
+
|
13
|
+
def __getattr__(name: str):
|
14
|
+
"""Lazy loading for heavy service imports."""
|
15
|
+
if name in _lazy_imports:
|
16
|
+
return _lazy_imports[name]
|
17
|
+
|
18
|
+
if name == "TokenCalculator":
|
19
|
+
from .token_calculator import TokenCalculator
|
20
|
+
|
21
|
+
_lazy_imports["TokenCalculator"] = TokenCalculator
|
22
|
+
return TokenCalculator
|
23
|
+
|
24
|
+
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
25
|
+
|
8
26
|
|
9
27
|
__all__ = (
|
10
28
|
"APICalling",
|
@@ -12,10 +12,17 @@ from typing_extensions import Self
|
|
12
12
|
from lionagi.protocols.generic.event import Event, EventStatus
|
13
13
|
from lionagi.protocols.types import Log
|
14
14
|
from lionagi.service.hooks import HookEvent, HookEventTypes, global_hook_logger
|
15
|
-
from lionagi.service.token_calculator import TokenCalculator
|
16
15
|
|
17
16
|
from .endpoint import Endpoint
|
18
17
|
|
18
|
+
|
19
|
+
# Lazy import for TokenCalculator
|
20
|
+
def _get_token_calculator():
|
21
|
+
from lionagi.service.token_calculator import TokenCalculator
|
22
|
+
|
23
|
+
return TokenCalculator
|
24
|
+
|
25
|
+
|
19
26
|
logger = logging.getLogger(__name__)
|
20
27
|
|
21
28
|
|
@@ -129,7 +136,7 @@ class APICalling(Event):
|
|
129
136
|
|
130
137
|
# Handle chat completions format
|
131
138
|
if "messages" in self.payload:
|
132
|
-
return
|
139
|
+
return _get_token_calculator().calculate_message_tokens(
|
133
140
|
self.payload["messages"], **self.payload
|
134
141
|
)
|
135
142
|
# Handle responses API format
|
@@ -150,12 +157,14 @@ class APICalling(Event):
|
|
150
157
|
messages.append(item)
|
151
158
|
else:
|
152
159
|
return None
|
153
|
-
return
|
160
|
+
return _get_token_calculator().calculate_message_tokens(
|
154
161
|
messages, **self.payload
|
155
162
|
)
|
156
163
|
# Handle embeddings endpoint
|
157
164
|
elif "embed" in self.endpoint.config.endpoint:
|
158
|
-
return
|
165
|
+
return _get_token_calculator().calculate_embed_token(
|
166
|
+
**self.payload
|
167
|
+
)
|
159
168
|
|
160
169
|
return None
|
161
170
|
|
@@ -2,6 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
5
|
+
# Eager imports for core functionality
|
5
6
|
from .connections.api_calling import APICalling
|
6
7
|
from .connections.endpoint import Endpoint, EndpointConfig
|
7
8
|
from .connections.providers.types import *
|
@@ -9,7 +10,24 @@ from .hooks import *
|
|
9
10
|
from .imodel import iModel
|
10
11
|
from .manager import iModelManager
|
11
12
|
from .rate_limited_processor import RateLimitedAPIExecutor
|
12
|
-
|
13
|
+
|
14
|
+
# Lazy loading cache
|
15
|
+
_lazy_imports = {}
|
16
|
+
|
17
|
+
|
18
|
+
def __getattr__(name: str):
|
19
|
+
"""Lazy loading for heavy service imports."""
|
20
|
+
if name in _lazy_imports:
|
21
|
+
return _lazy_imports[name]
|
22
|
+
|
23
|
+
if name == "TokenCalculator":
|
24
|
+
from .token_calculator import TokenCalculator
|
25
|
+
|
26
|
+
_lazy_imports["TokenCalculator"] = TokenCalculator
|
27
|
+
return TokenCalculator
|
28
|
+
|
29
|
+
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
30
|
+
|
13
31
|
|
14
32
|
__all__ = (
|
15
33
|
"APICalling",
|
@@ -416,6 +416,48 @@ class Session(Node, Communicatable, Relational):
|
|
416
416
|
alcall_params=alcall_params,
|
417
417
|
)
|
418
418
|
|
419
|
+
def cleanup_memory(
|
420
|
+
self, clear_branches: bool = True, clear_mail: bool = True
|
421
|
+
):
|
422
|
+
"""
|
423
|
+
Clean up session memory to prevent memory accumulation.
|
424
|
+
|
425
|
+
Args:
|
426
|
+
clear_branches: Whether to clear branch logs and memory
|
427
|
+
clear_mail: Whether to clear mail transfer history
|
428
|
+
"""
|
429
|
+
if clear_branches and self.branches:
|
430
|
+
for branch in self.branches:
|
431
|
+
if hasattr(branch, "dump_logs"):
|
432
|
+
branch.dump_logs(clear=True)
|
433
|
+
|
434
|
+
if clear_mail and self.mail_transfer:
|
435
|
+
# Clear mail transfer history if available
|
436
|
+
if hasattr(self.mail_transfer, "clear"):
|
437
|
+
self.mail_transfer.clear()
|
438
|
+
|
439
|
+
async def acleanup_memory(
|
440
|
+
self, clear_branches: bool = True, clear_mail: bool = True
|
441
|
+
):
|
442
|
+
"""
|
443
|
+
Asynchronously clean up session memory to prevent memory accumulation.
|
444
|
+
|
445
|
+
Args:
|
446
|
+
clear_branches: Whether to clear branch logs and memory
|
447
|
+
clear_mail: Whether to clear mail transfer history
|
448
|
+
"""
|
449
|
+
if clear_branches and self.branches:
|
450
|
+
for branch in self.branches:
|
451
|
+
if hasattr(branch, "adump_logs"):
|
452
|
+
await branch.adump_logs(clear=True)
|
453
|
+
|
454
|
+
if clear_mail and self.mail_transfer:
|
455
|
+
# Clear mail transfer history if available
|
456
|
+
if hasattr(self.mail_transfer, "aclear"):
|
457
|
+
await self.mail_transfer.aclear()
|
458
|
+
elif hasattr(self.mail_transfer, "clear"):
|
459
|
+
self.mail_transfer.clear()
|
460
|
+
|
419
461
|
|
420
462
|
__all__ = ["Session"]
|
421
463
|
# File: autoos/session/session.py
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.17.1"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "lionagi"
|
3
|
-
version = "0.17.
|
3
|
+
version = "0.17.1"
|
4
4
|
description = "An Intelligence Operating System."
|
5
5
|
authors = [
|
6
6
|
{ name = "HaiyangLi", email = "quantocean.li@gmail.com" },
|
@@ -14,7 +14,10 @@ dependencies = [
|
|
14
14
|
"backoff>=2.0.0",
|
15
15
|
"jinja2>=3.0.0",
|
16
16
|
"json-repair>=0.40.0",
|
17
|
+
"matplotlib>=3.10.3",
|
17
18
|
"msgspec>=0.18.0",
|
19
|
+
"pandas>=2.3.1",
|
20
|
+
"psutil>=7.0.0",
|
18
21
|
"pydantic>=2.8.0",
|
19
22
|
"pydantic-settings>=2.8.0",
|
20
23
|
"pydapter>=1.1.1",
|
@@ -61,6 +64,8 @@ dev = [
|
|
61
64
|
"mkdocstrings>=0.30.0",
|
62
65
|
"mkdocstrings-python>=1.17.0",
|
63
66
|
"trio>=0.30.0",
|
67
|
+
"line-profiler>=5.0.0",
|
68
|
+
"memory-profiler>=0.61.0",
|
64
69
|
]
|
65
70
|
|
66
71
|
[project.optional-dependencies]
|
@@ -2050,9 +2050,51 @@ wheels = [
|
|
2050
2050
|
{ url = "https://files.pythonhosted.org/packages/83/60/d497a310bde3f01cb805196ac61b7ad6dc5dcf8dce66634dc34364b20b4f/lazy_loader-0.4-py3-none-any.whl", hash = "sha256:342aa8e14d543a154047afb4ba8ef17f5563baad3fc610d7b15b213b0f119efc", size = 12097, upload-time = "2024-04-05T13:03:10.514Z" },
|
2051
2051
|
]
|
2052
2052
|
|
2053
|
+
[[package]]
|
2054
|
+
name = "line-profiler"
|
2055
|
+
version = "5.0.0"
|
2056
|
+
source = { registry = "https://pypi.org/simple" }
|
2057
|
+
dependencies = [
|
2058
|
+
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
2059
|
+
]
|
2060
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ea/5c/bbe9042ef5cf4c6cad4bf4d6f7975193430eba9191b7278ea114a3993fbb/line_profiler-5.0.0.tar.gz", hash = "sha256:a80f0afb05ba0d275d9dddc5ff97eab637471167ff3e66dcc7d135755059398c", size = 376919, upload-time = "2025-07-23T20:15:41.819Z" }
|
2061
|
+
wheels = [
|
2062
|
+
{ url = "https://files.pythonhosted.org/packages/3e/b8/8eb2bd10873a7bb93f412db8f735ff5b708bfcedef6492f2ec0a1f4dc55a/line_profiler-5.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5cd1621ff77e1f3f423dcc2611ef6fba462e791ce01fb41c95dce6d519c48ec8", size = 631005, upload-time = "2025-07-23T20:14:25.307Z" },
|
2063
|
+
{ url = "https://files.pythonhosted.org/packages/36/af/a7fd6b2a83fbc10427e1fdd178a0a80621eeb3b29256b1856d459abb7d2a/line_profiler-5.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:17a44491d16309bc39fc6197b376a120ebc52adc3f50b0b6f9baf99af3124406", size = 490943, upload-time = "2025-07-23T20:14:27.396Z" },
|
2064
|
+
{ url = "https://files.pythonhosted.org/packages/be/50/dcfc2e5386f5b3177cdad8eaa912482fe6a9218149a5cb5e85e871b55f2c/line_profiler-5.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a36a9a5ea5e37b0969a451f922b4dbb109350981187317f708694b3b5ceac3a5", size = 476487, upload-time = "2025-07-23T20:14:30.818Z" },
|
2065
|
+
{ url = "https://files.pythonhosted.org/packages/c6/0c/cdcfc640d5b3338891cd336b465c6112d9d5c2f56ced4f9ea3e795b192c6/line_profiler-5.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b67e6e292efaf85d9678fe29295b46efd72c0d363b38e6b424df39b6553c49b3", size = 1412553, upload-time = "2025-07-23T20:14:32.07Z" },
|
2066
|
+
{ url = "https://files.pythonhosted.org/packages/ca/23/bcdf3adf487917cfe431cb009b184c1a81a5099753747fe1a4aee42493f0/line_profiler-5.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9c92c28ee16bf3ba99966854407e4bc927473a925c1629489c8ebc01f8a640", size = 1461495, upload-time = "2025-07-23T20:14:33.396Z" },
|
2067
|
+
{ url = "https://files.pythonhosted.org/packages/ec/04/1360ff19c4c426352ed820bba315670a6d52b3194fcb80af550a50e09310/line_profiler-5.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:51609cc264df6315cd9b9fa76d822a7b73a4f278dcab90ba907e32dc939ab1c2", size = 2510352, upload-time = "2025-07-23T20:14:34.797Z" },
|
2068
|
+
{ url = "https://files.pythonhosted.org/packages/11/af/138966a6edfd95208e92e9cfef79595d6890df31b1749cc0244d36127473/line_profiler-5.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:67f9721281655dc2b6763728a63928e3b8a35dfd6160c628a3c599afd0814a71", size = 2445103, upload-time = "2025-07-23T20:14:36.19Z" },
|
2069
|
+
{ url = "https://files.pythonhosted.org/packages/92/95/5c9e4771f819b4d81510fa90b20a608bd3f91c268acd72747cd09f905de9/line_profiler-5.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:c2c27ac0c30d35ca1de5aeebe97e1d9c0d582e3d2c4146c572a648bec8efcfac", size = 461940, upload-time = "2025-07-23T20:14:37.422Z" },
|
2070
|
+
{ url = "https://files.pythonhosted.org/packages/ef/f7/4e0fd2610749136d60f3e168812b5f6c697ffcfbb167b10d4aac24af1223/line_profiler-5.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f32d536c056393b7ca703e459632edc327ff9e0fc320c7b0e0ed14b84d342b7f", size = 634587, upload-time = "2025-07-23T20:14:39.069Z" },
|
2071
|
+
{ url = "https://files.pythonhosted.org/packages/d7/fe/b5458452c2dbf7a9590b5ad3cf4250710a2554a5a045bfa6395cdea1b2d5/line_profiler-5.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a7da04ffc5a0a1f6653f43b13ad2e7ebf66f1d757174b7e660dfa0cbe74c4fc6", size = 492744, upload-time = "2025-07-23T20:14:40.632Z" },
|
2072
|
+
{ url = "https://files.pythonhosted.org/packages/4c/e1/b69e20aeea8a11340f8c5d540c88ecf955a3559d8fbd5034cfe5677c69cf/line_profiler-5.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d2746f6b13c19ca4847efd500402d53a5ebb2fe31644ce8af74fbeac5ea4c54c", size = 478101, upload-time = "2025-07-23T20:14:42.306Z" },
|
2073
|
+
{ url = "https://files.pythonhosted.org/packages/0d/3b/b29e5539b2c98d2bd9f5651f10597dd70e07d5b09bb47cc0aa8d48927d72/line_profiler-5.0.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b4290319a59730c04cbd03755472d10524130065a20a695dc10dd66ffd92172", size = 1455927, upload-time = "2025-07-23T20:14:44.139Z" },
|
2074
|
+
{ url = "https://files.pythonhosted.org/packages/82/1d/dcc75d2cf82bbe6ef65d0f39cc32410e099e7e1cd7f85b121a8d440ce8bc/line_profiler-5.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cd168a8af0032e8e3cb2fbb9ffc7694cdcecd47ec356ae863134df07becb3a2", size = 1508770, upload-time = "2025-07-23T20:14:45.868Z" },
|
2075
|
+
{ url = "https://files.pythonhosted.org/packages/cc/9f/cbf9d011381c878f848f824190ad833fbfeb5426eb6c42811b5b759d5d54/line_profiler-5.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:cbe7b095865d00dda0f53d7d4556c2b1b5d13f723173a85edb206a78779ee07a", size = 2551269, upload-time = "2025-07-23T20:14:47.279Z" },
|
2076
|
+
{ url = "https://files.pythonhosted.org/packages/7c/86/06999bff316e2522fc1d11fcd3720be81a7c47e94c785a9d93c290ae0415/line_profiler-5.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ff176045ea8a9e33900856db31b0b979357c337862ae4837140c98bd3161c3c7", size = 2491091, upload-time = "2025-07-23T20:14:48.637Z" },
|
2077
|
+
{ url = "https://files.pythonhosted.org/packages/61/d1/758f2f569b5d4fdc667b88e88e7424081ba3a1d17fb531042ed7f0f08d7f/line_profiler-5.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:474e0962d02123f1190a804073b308a67ef5f9c3b8379184483d5016844a00df", size = 462954, upload-time = "2025-07-23T20:14:50.094Z" },
|
2078
|
+
{ url = "https://files.pythonhosted.org/packages/73/d8/383c37c36f888c4ca82a28ffea27c589988463fc3f0edd6abae221c35275/line_profiler-5.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:729b18c0ac66b3368ade61203459219c202609f76b34190cbb2508b8e13998c8", size = 628109, upload-time = "2025-07-23T20:14:51.71Z" },
|
2079
|
+
{ url = "https://files.pythonhosted.org/packages/54/a3/75a27b1f3e14ae63a2e99f3c7014dbc1e3a37f56c91b63a2fc171e72990d/line_profiler-5.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:438ed24278c428119473b61a473c8fe468ace7c97c94b005cb001137bc624547", size = 489142, upload-time = "2025-07-23T20:14:52.993Z" },
|
2080
|
+
{ url = "https://files.pythonhosted.org/packages/8b/85/f65cdbfe8537da6fab97c42958109858df846563546b9c234a902a98c313/line_profiler-5.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:920b0076dca726caadbf29f0bfcce0cbcb4d9ff034cd9445a7308f9d556b4b3a", size = 475838, upload-time = "2025-07-23T20:14:54.637Z" },
|
2081
|
+
{ url = "https://files.pythonhosted.org/packages/0c/ea/cfa53c8ede0ef539cfe767a390d7ccfc015f89c39cc2a8c34e77753fd023/line_profiler-5.0.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53326eaad2d807487dcd45d2e385feaaed81aaf72b9ecd4f53c1a225d658006f", size = 1402290, upload-time = "2025-07-23T20:14:56.775Z" },
|
2082
|
+
{ url = "https://files.pythonhosted.org/packages/e4/2c/3467cd5051afbc0eb277ee426e8dffdbd1fcdd82f1bc95a0cd8945b6c106/line_profiler-5.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e3995a989cdea022f0ede5db19a6ab527f818c59ffcebf4e5f7a8be4eb8e880", size = 1457827, upload-time = "2025-07-23T20:14:58.158Z" },
|
2083
|
+
{ url = "https://files.pythonhosted.org/packages/d9/87/d5039608979b37ce3dadfa3eed7bf8bfec53b645acd30ca12c8088cf738d/line_profiler-5.0.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8bf57892a1d3a42273652506746ba9f620c505773ada804367c42e5b4146d6b6", size = 2497423, upload-time = "2025-07-23T20:15:01.015Z" },
|
2084
|
+
{ url = "https://files.pythonhosted.org/packages/59/3e/e5e09699e2841b4f41c16d01ff2adfd20fde6cb73cfa512262f0421e15e0/line_profiler-5.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43672085f149f5fbf3f08bba072ad7014dd485282e8665827b26941ea97d2d76", size = 2439733, upload-time = "2025-07-23T20:15:02.582Z" },
|
2085
|
+
{ url = "https://files.pythonhosted.org/packages/d0/cf/18d8fefabd8a56fb963f944149cadb69be67a479ce6723275cae2c943af5/line_profiler-5.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:446bd4f04e4bd9e979d68fdd916103df89a9d419e25bfb92b31af13c33808ee0", size = 460852, upload-time = "2025-07-23T20:15:03.827Z" },
|
2086
|
+
{ url = "https://files.pythonhosted.org/packages/7d/eb/bc4420cf68661406c98d590656d72eed6f7d76e45accf568802dc83615ef/line_profiler-5.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9873fabbae1587778a551176758a70a5f6c89d8d070a1aca7a689677d41a1348", size = 624828, upload-time = "2025-07-23T20:15:05.315Z" },
|
2087
|
+
{ url = "https://files.pythonhosted.org/packages/f2/6e/6e0a4c1009975d27810027427d601acbad75b45947040d0fd80cec5b3e94/line_profiler-5.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2cd6cdb5a4d3b4ced607104dbed73ec820a69018decd1a90904854380536ed32", size = 487651, upload-time = "2025-07-23T20:15:06.961Z" },
|
2088
|
+
{ url = "https://files.pythonhosted.org/packages/3b/2c/e60e61f24faa0e6eca375bdac9c4b4b37c3267488d7cb1a8c5bd74cf5cdc/line_profiler-5.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:34d6172a3bd14167b3ea2e629d71b08683b17b3bc6eb6a4936d74e3669f875b6", size = 474071, upload-time = "2025-07-23T20:15:08.607Z" },
|
2089
|
+
{ url = "https://files.pythonhosted.org/packages/e1/d5/6f178e74746f84cc17381f607d191c54772207770d585fda773b868bfe28/line_profiler-5.0.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5edd859be322aa8252253e940ac1c60cca4c385760d90a402072f8f35e4b967", size = 1405434, upload-time = "2025-07-23T20:15:09.862Z" },
|
2090
|
+
{ url = "https://files.pythonhosted.org/packages/9b/32/ce67bbf81e5c78cc8d606afe6a192fbef30395021b2aaffe15681e186e3f/line_profiler-5.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d4f97b223105eed6e525994f5653061bd981e04838ee5d14e01d17c26185094", size = 1467553, upload-time = "2025-07-23T20:15:11.195Z" },
|
2091
|
+
{ url = "https://files.pythonhosted.org/packages/c1/c1/431ffb89a351aaa63f8358442e0b9456a3bb745cebdf9c0d7aa4d47affca/line_profiler-5.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4758007e491bee3be40ebcca460596e0e28e7f39b735264694a9cafec729dfa9", size = 2442489, upload-time = "2025-07-23T20:15:12.602Z" },
|
2092
|
+
{ url = "https://files.pythonhosted.org/packages/ce/9d/e34cc99c8abca3a27911d3542a87361e9c292fa1258d182e4a0a5c442850/line_profiler-5.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:213b19c4b65942db5d477e603c18c76126e3811a39d8bab251d930d8ce82ffba", size = 461377, upload-time = "2025-07-23T20:15:13.871Z" },
|
2093
|
+
]
|
2094
|
+
|
2053
2095
|
[[package]]
|
2054
2096
|
name = "lionagi"
|
2055
|
-
version = "0.17.
|
2097
|
+
version = "0.17.1"
|
2056
2098
|
source = { editable = "." }
|
2057
2099
|
dependencies = [
|
2058
2100
|
{ name = "aiocache" },
|
@@ -2061,7 +2103,10 @@ dependencies = [
|
|
2061
2103
|
{ name = "backoff" },
|
2062
2104
|
{ name = "jinja2" },
|
2063
2105
|
{ name = "json-repair" },
|
2106
|
+
{ name = "matplotlib" },
|
2064
2107
|
{ name = "msgspec" },
|
2108
|
+
{ name = "pandas" },
|
2109
|
+
{ name = "psutil" },
|
2065
2110
|
{ name = "pydantic" },
|
2066
2111
|
{ name = "pydantic-settings" },
|
2067
2112
|
{ name = "pydapter" },
|
@@ -2121,6 +2166,8 @@ dev = [
|
|
2121
2166
|
{ name = "ipython", version = "9.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
|
2122
2167
|
{ name = "ipywidgets" },
|
2123
2168
|
{ name = "isort" },
|
2169
|
+
{ name = "line-profiler" },
|
2170
|
+
{ name = "memory-profiler" },
|
2124
2171
|
{ name = "mkdocs" },
|
2125
2172
|
{ name = "mkdocs-git-committers-plugin-2" },
|
2126
2173
|
{ name = "mkdocs-git-revision-date-localized-plugin" },
|
@@ -2160,10 +2207,13 @@ requires-dist = [
|
|
2160
2207
|
{ name = "lionagi", extras = ["rich"], marker = "extra == 'all'" },
|
2161
2208
|
{ name = "lionagi", extras = ["schema"], marker = "extra == 'all'" },
|
2162
2209
|
{ name = "lionagi", extras = ["sqlite"], marker = "extra == 'all'" },
|
2210
|
+
{ name = "matplotlib", specifier = ">=3.10.3" },
|
2163
2211
|
{ name = "matplotlib", marker = "extra == 'graph'", specifier = ">=3.7.0" },
|
2164
2212
|
{ name = "msgspec", specifier = ">=0.18.0" },
|
2165
2213
|
{ name = "networkx", marker = "extra == 'graph'", specifier = ">=3.0.0" },
|
2166
2214
|
{ name = "ollama", marker = "extra == 'ollama'", specifier = ">=0.4.0" },
|
2215
|
+
{ name = "pandas", specifier = ">=2.3.1" },
|
2216
|
+
{ name = "psutil", specifier = ">=7.0.0" },
|
2167
2217
|
{ name = "pydantic", specifier = ">=2.8.0" },
|
2168
2218
|
{ name = "pydantic-settings", specifier = ">=2.8.0" },
|
2169
2219
|
{ name = "pydapter", specifier = ">=1.1.1" },
|
@@ -2183,6 +2233,8 @@ dev = [
|
|
2183
2233
|
{ name = "ipython", specifier = ">=8.31.0" },
|
2184
2234
|
{ name = "ipywidgets", specifier = ">=8.1.5" },
|
2185
2235
|
{ name = "isort", specifier = ">=6.0.0" },
|
2236
|
+
{ name = "line-profiler", specifier = ">=5.0.0" },
|
2237
|
+
{ name = "memory-profiler", specifier = ">=0.61.0" },
|
2186
2238
|
{ name = "mkdocs", specifier = ">=1.6.1" },
|
2187
2239
|
{ name = "mkdocs-git-committers-plugin-2", specifier = ">=2.5.0" },
|
2188
2240
|
{ name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.4.7" },
|
@@ -2467,6 +2519,18 @@ wheels = [
|
|
2467
2519
|
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" },
|
2468
2520
|
]
|
2469
2521
|
|
2522
|
+
[[package]]
|
2523
|
+
name = "memory-profiler"
|
2524
|
+
version = "0.61.0"
|
2525
|
+
source = { registry = "https://pypi.org/simple" }
|
2526
|
+
dependencies = [
|
2527
|
+
{ name = "psutil" },
|
2528
|
+
]
|
2529
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b2/88/e1907e1ca3488f2d9507ca8b0ae1add7b1cd5d3ca2bc8e5b329382ea2c7b/memory_profiler-0.61.0.tar.gz", hash = "sha256:4e5b73d7864a1d1292fb76a03e82a3e78ef934d06828a698d9dada76da2067b0", size = 35935, upload-time = "2022-11-15T17:57:28.994Z" }
|
2530
|
+
wheels = [
|
2531
|
+
{ url = "https://files.pythonhosted.org/packages/49/26/aaca612a0634ceede20682e692a6c55e35a94c21ba36b807cc40fe910ae1/memory_profiler-0.61.0-py3-none-any.whl", hash = "sha256:400348e61031e3942ad4d4109d18753b2fb08c2f6fb8290671c5513a34182d84", size = 31803, upload-time = "2022-11-15T17:57:27.031Z" },
|
2532
|
+
]
|
2533
|
+
|
2470
2534
|
[[package]]
|
2471
2535
|
name = "mergedeep"
|
2472
2536
|
version = "1.3.4"
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
|
-
#
|
3
|
-
# SPDX-License-Identifier: Apache-2.0
|
4
|
-
|
5
|
-
import logging
|
6
|
-
|
7
|
-
from pydantic import BaseModel, Field
|
8
|
-
|
9
|
-
from . import _types as types
|
10
|
-
from . import ln as ln
|
11
|
-
from .operations.builder import OperationGraphBuilder as Builder
|
12
|
-
from .operations.node import Operation
|
13
|
-
from .service.imodel import iModel
|
14
|
-
from .session.session import Branch, Session
|
15
|
-
from .version import __version__
|
16
|
-
|
17
|
-
logger = logging.getLogger(__name__)
|
18
|
-
logger.setLevel(logging.INFO)
|
19
|
-
|
20
|
-
__all__ = (
|
21
|
-
"Session",
|
22
|
-
"Branch",
|
23
|
-
"iModel",
|
24
|
-
"types",
|
25
|
-
"__version__",
|
26
|
-
"BaseModel",
|
27
|
-
"Field",
|
28
|
-
"logger",
|
29
|
-
"Builder",
|
30
|
-
"Operation",
|
31
|
-
"ln",
|
32
|
-
)
|
lionagi-0.17.0/lionagi/_types.py
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = "0.17.0"
|
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
|