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.
Files changed (313) hide show
  1. {lionagi-0.15.5 → lionagi-0.15.7}/PKG-INFO +1 -2
  2. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_async_call.py +7 -5
  3. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_models.py +75 -50
  4. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/__init__.py +2 -0
  5. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/flow.py +13 -10
  6. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/processor.py +1 -2
  7. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/session/session.py +3 -1
  8. lionagi-0.15.7/lionagi/version.py +1 -0
  9. {lionagi-0.15.5 → lionagi-0.15.7}/pyproject.toml +1 -2
  10. {lionagi-0.15.5 → lionagi-0.15.7}/uv.lock +1 -12
  11. lionagi-0.15.5/lionagi/version.py +0 -1
  12. {lionagi-0.15.5 → lionagi-0.15.7}/.coveragerc +0 -0
  13. {lionagi-0.15.5 → lionagi-0.15.7}/.env.example +0 -0
  14. {lionagi-0.15.5 → lionagi-0.15.7}/.github/FUNDING.yml +0 -0
  15. {lionagi-0.15.5 → lionagi-0.15.7}/.github/dependabot.yml +0 -0
  16. {lionagi-0.15.5 → lionagi-0.15.7}/.github/workflows/ci.yml +0 -0
  17. {lionagi-0.15.5 → lionagi-0.15.7}/.github/workflows/codeql.yml +0 -0
  18. {lionagi-0.15.5 → lionagi-0.15.7}/.github/workflows/docs.yml +0 -0
  19. {lionagi-0.15.5 → lionagi-0.15.7}/.github/workflows/release.yml +0 -0
  20. {lionagi-0.15.5 → lionagi-0.15.7}/.gitignore +0 -0
  21. {lionagi-0.15.5 → lionagi-0.15.7}/.pre-commit-config.yaml +0 -0
  22. {lionagi-0.15.5 → lionagi-0.15.7}/.python-version +0 -0
  23. {lionagi-0.15.5 → lionagi-0.15.7}/CODE_OF_CONDUCT.md +0 -0
  24. {lionagi-0.15.5 → lionagi-0.15.7}/CONTRIBUTING.md +0 -0
  25. {lionagi-0.15.5 → lionagi-0.15.7}/LICENSE +0 -0
  26. {lionagi-0.15.5 → lionagi-0.15.7}/README.md +0 -0
  27. {lionagi-0.15.5 → lionagi-0.15.7}/assets/operation_builder.gif +0 -0
  28. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/001_branch_converse.ipynb +0 -0
  29. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/002_branch_interact.ipynb +0 -0
  30. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/003_branch_info.ipynb +0 -0
  31. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/004_conversation_patterns.ipynb +0 -0
  32. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/005_react_basics.ipynb +0 -0
  33. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/006_operation_graphs_claim_extraction.ipynb +0 -0
  34. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/007_fan_out_in.py +0 -0
  35. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/claude_proxy/README.md +0 -0
  36. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/claude_proxy/claude_code_proxy.py +0 -0
  37. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/claude_proxy/run_w_claude_code_proxy.ipynb +0 -0
  38. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/data/002_comedian.json +0 -0
  39. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/data/002_critic.json +0 -0
  40. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/data/006_lion_proof_ch2.md +0 -0
  41. {lionagi-0.15.5 → lionagi-0.15.7}/cookbooks/using_claude_code.py +0 -0
  42. {lionagi-0.15.5 → lionagi-0.15.7}/docs/Makefile +0 -0
  43. {lionagi-0.15.5 → lionagi-0.15.7}/docs/_static/custom.css +0 -0
  44. {lionagi-0.15.5 → lionagi-0.15.7}/docs/_templates/layout.html +0 -0
  45. {lionagi-0.15.5 → lionagi-0.15.7}/docs/conf.py +0 -0
  46. {lionagi-0.15.5 → lionagi-0.15.7}/docs/discussions/anyio-migration.md +0 -0
  47. {lionagi-0.15.5 → lionagi-0.15.7}/docs/index.rst +0 -0
  48. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/action.rst +0 -0
  49. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/adapter.rst +0 -0
  50. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/branch.rst +0 -0
  51. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/branch_operations.rst +0 -0
  52. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/concepts.rst +0 -0
  53. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/element_id.rst +0 -0
  54. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/event.rst +0 -0
  55. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/form.rst +0 -0
  56. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/graph.rst +0 -0
  57. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/index.rst +0 -0
  58. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/instruct.rst +0 -0
  59. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/lib_file.rst +0 -0
  60. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/lib_nested.rst +0 -0
  61. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/lib_package.rst +0 -0
  62. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/lib_schema.rst +0 -0
  63. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/lib_validate.rst +0 -0
  64. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/log.rst +0 -0
  65. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/mail.rst +0 -0
  66. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/message.rst +0 -0
  67. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/models.rst +0 -0
  68. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/operative_step.rst +0 -0
  69. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/pile.rst +0 -0
  70. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/processor.rst +0 -0
  71. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/progression.rst +0 -0
  72. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/service.rst +0 -0
  73. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/session.rst +0 -0
  74. {lionagi-0.15.5 → lionagi-0.15.7}/docs/modules/utils.rst +0 -0
  75. {lionagi-0.15.5 → lionagi-0.15.7}/docs/tutorials/get_started.rst +0 -0
  76. {lionagi-0.15.5 → lionagi-0.15.7}/docs/tutorials/get_started_pt2.rst +0 -0
  77. {lionagi-0.15.5 → lionagi-0.15.7}/docs/tutorials/get_started_pt3.rst +0 -0
  78. {lionagi-0.15.5 → lionagi-0.15.7}/docs/tutorials/index.rst +0 -0
  79. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/__init__.py +0 -0
  80. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/_class_registry.py +0 -0
  81. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/_errors.py +0 -0
  82. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/_types.py +0 -0
  83. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/adapters/__init__.py +0 -0
  84. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/adapters/_utils.py +0 -0
  85. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/adapters/async_postgres_adapter.py +0 -0
  86. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/adapters/postgres_model_adapter.py +0 -0
  87. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/config.py +0 -0
  88. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/__init__.py +0 -0
  89. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/action.py +0 -0
  90. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/base.py +0 -0
  91. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/code.py +0 -0
  92. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/file.py +0 -0
  93. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/instruct.py +0 -0
  94. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/reason.py +0 -0
  95. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/fields/research.py +0 -0
  96. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/__init__.py +0 -0
  97. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/concurrency.py +0 -0
  98. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/__init__.py +0 -0
  99. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/chunk.py +0 -0
  100. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/concat.py +0 -0
  101. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/concat_files.py +0 -0
  102. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/file_ops.py +0 -0
  103. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/params.py +0 -0
  104. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/process.py +0 -0
  105. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/file/save.py +0 -0
  106. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/__init__.py +0 -0
  107. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/flatten.py +0 -0
  108. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/nfilter.py +0 -0
  109. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/nget.py +0 -0
  110. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/ninsert.py +0 -0
  111. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/nmerge.py +0 -0
  112. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/npop.py +0 -0
  113. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/nset.py +0 -0
  114. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/unflatten.py +0 -0
  115. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/nested/utils.py +0 -0
  116. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/package/__init__.py +0 -0
  117. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/package/imports.py +0 -0
  118. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/package/management.py +0 -0
  119. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/package/params.py +0 -0
  120. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/package/system.py +0 -0
  121. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/parse.py +0 -0
  122. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/__init__.py +0 -0
  123. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/as_readable.py +0 -0
  124. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/extract_code_block.py +0 -0
  125. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/extract_docstring.py +0 -0
  126. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/function_to_schema.py +0 -0
  127. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/json_schema.py +0 -0
  128. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
  129. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/__init__.py +0 -0
  130. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/base.py +0 -0
  131. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/llmlingua.py +0 -0
  132. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/perplexity.py +0 -0
  133. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
  134. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang.py +0 -0
  135. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
  136. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
  137. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
  138. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
  139. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -0
  140. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
  141. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
  142. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
  143. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
  144. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
  145. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
  146. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
  147. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
  148. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
  149. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +0 -0
  150. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/token_transform/types.py +0 -0
  151. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/unstructured/__init__.py +0 -0
  152. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/unstructured/pdf_to_image.py +0 -0
  153. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/unstructured/read_image_to_base64.py +0 -0
  154. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/__init__.py +0 -0
  155. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/common_field_validators.py +0 -0
  156. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
  157. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
  158. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/string_similarity.py +0 -0
  159. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/to_num.py +0 -0
  160. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/validate_boolean.py +0 -0
  161. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/libs/validate/xml_parser.py +0 -0
  162. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/__init__.py +0 -0
  163. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_hash.py +0 -0
  164. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_list_call.py +0 -0
  165. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_to_list.py +0 -0
  166. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/_types.py +0 -0
  167. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/cancel.py +0 -0
  168. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/errors.py +0 -0
  169. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/patterns.py +0 -0
  170. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/primitives.py +0 -0
  171. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/resource_tracker.py +0 -0
  172. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/task.py +0 -0
  173. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/throttle.py +0 -0
  174. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/ln/concurrency/utils.py +0 -0
  175. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/__init__.py +0 -0
  176. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/field_model.py +0 -0
  177. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/hashable_model.py +0 -0
  178. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/model_params.py +0 -0
  179. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/note.py +0 -0
  180. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/operable_model.py +0 -0
  181. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/models/schema_model.py +0 -0
  182. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/ReAct/ReAct.py +0 -0
  183. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/ReAct/__init__.py +0 -0
  184. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/ReAct/utils.py +0 -0
  185. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/__init__.py +0 -0
  186. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/_act/__init__.py +0 -0
  187. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/_act/act.py +0 -0
  188. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/brainstorm/__init__.py +0 -0
  189. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/brainstorm/brainstorm.py +0 -0
  190. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/brainstorm/prompt.py +0 -0
  191. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/builder.py +0 -0
  192. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/chat/__init__.py +0 -0
  193. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/chat/chat.py +0 -0
  194. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/communicate/__init__.py +0 -0
  195. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/communicate/communicate.py +0 -0
  196. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/instruct/__init__.py +0 -0
  197. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/instruct/instruct.py +0 -0
  198. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/interpret/__init__.py +0 -0
  199. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/interpret/interpret.py +0 -0
  200. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/manager.py +0 -0
  201. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/node.py +0 -0
  202. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/operate/__init__.py +0 -0
  203. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/operate/operate.py +0 -0
  204. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/parse/__init__.py +0 -0
  205. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/parse/parse.py +0 -0
  206. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/plan/__init__.py +0 -0
  207. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/plan/plan.py +0 -0
  208. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/plan/prompt.py +0 -0
  209. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/select/__init__.py +0 -0
  210. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/select/select.py +0 -0
  211. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/select/utils.py +0 -0
  212. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/translate/__init__.py +0 -0
  213. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/translate/translate.py +0 -0
  214. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/types.py +0 -0
  215. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/operations/utils.py +0 -0
  216. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/__init__.py +0 -0
  217. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/_concepts.py +0 -0
  218. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/action/__init__.py +0 -0
  219. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/action/function_calling.py +0 -0
  220. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/action/manager.py +0 -0
  221. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/action/tool.py +0 -0
  222. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/forms/__init__.py +0 -0
  223. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/forms/base.py +0 -0
  224. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/forms/flow.py +0 -0
  225. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/forms/form.py +0 -0
  226. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/forms/report.py +0 -0
  227. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/__init__.py +0 -0
  228. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/element.py +0 -0
  229. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/event.py +0 -0
  230. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/log.py +0 -0
  231. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/pile.py +0 -0
  232. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/generic/progression.py +0 -0
  233. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/graph/__init__.py +0 -0
  234. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/graph/edge.py +0 -0
  235. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/graph/graph.py +0 -0
  236. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/graph/node.py +0 -0
  237. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/__init__.py +0 -0
  238. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/exchange.py +0 -0
  239. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/mail.py +0 -0
  240. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/mailbox.py +0 -0
  241. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/manager.py +0 -0
  242. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/mail/package.py +0 -0
  243. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/__init__.py +0 -0
  244. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/action_request.py +0 -0
  245. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/action_response.py +0 -0
  246. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/assistant_response.py +0 -0
  247. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/base.py +0 -0
  248. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/instruction.py +0 -0
  249. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/manager.py +0 -0
  250. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/message.py +0 -0
  251. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/system.py +0 -0
  252. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/README.md +0 -0
  253. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
  254. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
  255. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
  256. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
  257. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
  258. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
  259. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/operatives/__init__.py +0 -0
  260. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/operatives/operative.py +0 -0
  261. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/operatives/step.py +0 -0
  262. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/protocols/types.py +0 -0
  263. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/py.typed +0 -0
  264. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/__init__.py +0 -0
  265. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/__init__.py +0 -0
  266. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/api_calling.py +0 -0
  267. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/endpoint.py +0 -0
  268. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/endpoint_config.py +0 -0
  269. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/header_factory.py +0 -0
  270. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/match_endpoint.py +0 -0
  271. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/__init__.py +0 -0
  272. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/anthropic_.py +0 -0
  273. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/claude_code_.py +0 -0
  274. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/claude_code_cli.py +0 -0
  275. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/exa_.py +0 -0
  276. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/oai_.py +0 -0
  277. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/ollama_.py +0 -0
  278. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/perplexity_.py +0 -0
  279. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/connections/providers/types.py +0 -0
  280. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/hooks/__init__.py +0 -0
  281. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/hooks/_types.py +0 -0
  282. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/hooks/_utils.py +0 -0
  283. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/hooks/hook_event.py +0 -0
  284. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/hooks/hook_registry.py +0 -0
  285. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/imodel.py +0 -0
  286. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/manager.py +0 -0
  287. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/rate_limited_processor.py +0 -0
  288. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/resilience.py +0 -0
  289. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/README.md +0 -0
  290. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/__init__.py +0 -0
  291. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/anthropic_models.py +0 -0
  292. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/claude_code.py +0 -0
  293. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/exa_models.py +0 -0
  294. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/openai_model_names.py +0 -0
  295. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/third_party/pplx_models.py +0 -0
  296. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/token_calculator.py +0 -0
  297. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/service/types.py +0 -0
  298. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/session/__init__.py +0 -0
  299. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/session/branch.py +0 -0
  300. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/session/prompts.py +0 -0
  301. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/settings.py +0 -0
  302. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/__init__.py +0 -0
  303. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/base.py +0 -0
  304. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/file/__init__.py +0 -0
  305. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/file/reader.py +0 -0
  306. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/memory/tools.py +0 -0
  307. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/tools/types.py +0 -0
  308. {lionagi-0.15.5 → lionagi-0.15.7}/lionagi/utils.py +0 -0
  309. {lionagi-0.15.5 → lionagi-0.15.7}/main.py +0 -0
  310. {lionagi-0.15.5 → lionagi-0.15.7}/scripts/README.md +0 -0
  311. {lionagi-0.15.5 → lionagi-0.15.7}/scripts/concat.py +0 -0
  312. {lionagi-0.15.5 → lionagi-0.15.7}/scripts/config.py +0 -0
  313. {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.5
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 = 0,
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
- f = self.as_partial()
281
- return await f(input_, func, **kw)
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
- f = self.as_partial()
294
- return await f(input_, func, self.batch_size, **kw)
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
- class _SentinelAware:
13
- """Metaclass to ensure sentinels are handled correctly in subclasses."""
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 as_partial(self) -> Any:
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
- self._particial_func = partial(self._func, **dict_)
107
- return self._particial_func
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(_SentinelAware):
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.concurrency.primitives import CapacityLimiter
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
- # Execute all operations using structured concurrency
96
- async with create_task_group() as tg:
97
- for node in self.graph.internal_nodes.values():
98
- if isinstance(node, Operation):
99
- await tg.start_soon(self._execute_operation, node, limiter)
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 # Force sequential execution
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.libs.concurrency import Event as ConcurrencyEvent
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
- **kwargs: Additional arguments passed to operations
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.5"
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.5"
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