lionagi 0.12.4__tar.gz → 0.12.5__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 (270) hide show
  1. {lionagi-0.12.4 → lionagi-0.12.5}/PKG-INFO +2 -3
  2. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/pile.py +76 -29
  3. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/graph/node.py +25 -19
  4. lionagi-0.12.5/lionagi/version.py +1 -0
  5. {lionagi-0.12.4 → lionagi-0.12.5}/pyproject.toml +2 -3
  6. {lionagi-0.12.4 → lionagi-0.12.5}/uv.lock +88 -5
  7. lionagi-0.12.4/lionagi/adapters/__init__.py +0 -1
  8. lionagi-0.12.4/lionagi/adapters/adapter.py +0 -120
  9. lionagi-0.12.4/lionagi/adapters/json_adapter.py +0 -181
  10. lionagi-0.12.4/lionagi/adapters/pandas_/csv_adapter.py +0 -94
  11. lionagi-0.12.4/lionagi/adapters/pandas_/excel_adapter.py +0 -94
  12. lionagi-0.12.4/lionagi/adapters/pandas_/pd_dataframe_adapter.py +0 -81
  13. lionagi-0.12.4/lionagi/adapters/pandas_/pd_series_adapter.py +0 -57
  14. lionagi-0.12.4/lionagi/adapters/toml_adapter.py +0 -204
  15. lionagi-0.12.4/lionagi/adapters/types.py +0 -21
  16. lionagi-0.12.4/lionagi/service/third_party/__init__.py +0 -0
  17. lionagi-0.12.4/lionagi/version.py +0 -1
  18. {lionagi-0.12.4 → lionagi-0.12.5}/.coveragerc +0 -0
  19. {lionagi-0.12.4 → lionagi-0.12.5}/.env.example +0 -0
  20. {lionagi-0.12.4 → lionagi-0.12.5}/.github/FUNDING.yml +0 -0
  21. {lionagi-0.12.4 → lionagi-0.12.5}/.github/dependabot.yml +0 -0
  22. {lionagi-0.12.4 → lionagi-0.12.5}/.github/workflows/ci.yml +0 -0
  23. {lionagi-0.12.4 → lionagi-0.12.5}/.github/workflows/codeql.yml +0 -0
  24. {lionagi-0.12.4 → lionagi-0.12.5}/.github/workflows/docs.yml +0 -0
  25. {lionagi-0.12.4 → lionagi-0.12.5}/.github/workflows/release.yml +0 -0
  26. {lionagi-0.12.4 → lionagi-0.12.5}/.gitignore +0 -0
  27. {lionagi-0.12.4 → lionagi-0.12.5}/.pre-commit-config.yaml +0 -0
  28. {lionagi-0.12.4 → lionagi-0.12.5}/.python-version +0 -0
  29. {lionagi-0.12.4 → lionagi-0.12.5}/CODE_OF_CONDUCT.md +0 -0
  30. {lionagi-0.12.4 → lionagi-0.12.5}/CONTRIBUTING.md +0 -0
  31. {lionagi-0.12.4 → lionagi-0.12.5}/LICENSE +0 -0
  32. {lionagi-0.12.4 → lionagi-0.12.5}/README.md +0 -0
  33. {lionagi-0.12.4 → lionagi-0.12.5}/cookbooks/ch01_get_started.md +0 -0
  34. {lionagi-0.12.4 → lionagi-0.12.5}/cookbooks/ch02_concepts.md +0 -0
  35. {lionagi-0.12.4 → lionagi-0.12.5}/docs/Makefile +0 -0
  36. {lionagi-0.12.4 → lionagi-0.12.5}/docs/_static/custom.css +0 -0
  37. {lionagi-0.12.4 → lionagi-0.12.5}/docs/_templates/layout.html +0 -0
  38. {lionagi-0.12.4 → lionagi-0.12.5}/docs/conf.py +0 -0
  39. {lionagi-0.12.4 → lionagi-0.12.5}/docs/index.rst +0 -0
  40. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/action.rst +0 -0
  41. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/adapter.rst +0 -0
  42. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/branch.rst +0 -0
  43. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/branch_operations.rst +0 -0
  44. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/concepts.rst +0 -0
  45. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/element_id.rst +0 -0
  46. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/event.rst +0 -0
  47. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/form.rst +0 -0
  48. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/graph.rst +0 -0
  49. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/index.rst +0 -0
  50. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/instruct.rst +0 -0
  51. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/lib_file.rst +0 -0
  52. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/lib_nested.rst +0 -0
  53. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/lib_package.rst +0 -0
  54. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/lib_schema.rst +0 -0
  55. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/lib_validate.rst +0 -0
  56. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/log.rst +0 -0
  57. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/mail.rst +0 -0
  58. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/message.rst +0 -0
  59. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/models.rst +0 -0
  60. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/operative_step.rst +0 -0
  61. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/pile.rst +0 -0
  62. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/processor.rst +0 -0
  63. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/progression.rst +0 -0
  64. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/service.rst +0 -0
  65. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/session.rst +0 -0
  66. {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/utils.rst +0 -0
  67. {lionagi-0.12.4 → lionagi-0.12.5}/docs/tutorials/get_started.rst +0 -0
  68. {lionagi-0.12.4 → lionagi-0.12.5}/docs/tutorials/get_started_pt2.rst +0 -0
  69. {lionagi-0.12.4 → lionagi-0.12.5}/docs/tutorials/get_started_pt3.rst +0 -0
  70. {lionagi-0.12.4 → lionagi-0.12.5}/docs/tutorials/index.rst +0 -0
  71. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/__init__.py +0 -0
  72. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/_class_registry.py +0 -0
  73. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/_errors.py +0 -0
  74. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/_types.py +0 -0
  75. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/config.py +0 -0
  76. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/__init__.py +0 -0
  77. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/action.py +0 -0
  78. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/base.py +0 -0
  79. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/code.py +0 -0
  80. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/file.py +0 -0
  81. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/instruct.py +0 -0
  82. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/reason.py +0 -0
  83. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/research.py +0 -0
  84. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/__init__.py +0 -0
  85. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/__init__.py +0 -0
  86. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/chunk.py +0 -0
  87. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/concat.py +0 -0
  88. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/concat_files.py +0 -0
  89. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/file_ops.py +0 -0
  90. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/params.py +0 -0
  91. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/process.py +0 -0
  92. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/save.py +0 -0
  93. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/__init__.py +0 -0
  94. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/flatten.py +0 -0
  95. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/nfilter.py +0 -0
  96. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/nget.py +0 -0
  97. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/ninsert.py +0 -0
  98. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/nmerge.py +0 -0
  99. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/npop.py +0 -0
  100. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/nset.py +0 -0
  101. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/unflatten.py +0 -0
  102. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/utils.py +0 -0
  103. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/package/__init__.py +0 -0
  104. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/package/imports.py +0 -0
  105. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/package/management.py +0 -0
  106. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/package/params.py +0 -0
  107. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/package/system.py +0 -0
  108. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/parse.py +0 -0
  109. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/__init__.py +0 -0
  110. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/as_readable.py +0 -0
  111. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/extract_code_block.py +0 -0
  112. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/extract_docstring.py +0 -0
  113. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/function_to_schema.py +0 -0
  114. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/json_schema.py +0 -0
  115. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
  116. {lionagi-0.12.4/lionagi/adapters/pandas_ → lionagi-0.12.5/lionagi/libs/token_transform}/__init__.py +0 -0
  117. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/base.py +0 -0
  118. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/llmlingua.py +0 -0
  119. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/perplexity.py +0 -0
  120. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
  121. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang.py +0 -0
  122. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
  123. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
  124. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
  125. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
  126. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -0
  127. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
  128. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
  129. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
  130. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
  131. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
  132. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
  133. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
  134. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
  135. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
  136. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +0 -0
  137. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/types.py +0 -0
  138. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/__init__.py +0 -0
  139. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/common_field_validators.py +0 -0
  140. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
  141. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
  142. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/string_similarity.py +0 -0
  143. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/validate_boolean.py +0 -0
  144. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/__init__.py +0 -0
  145. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/field_model.py +0 -0
  146. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/hashable_model.py +0 -0
  147. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/model_params.py +0 -0
  148. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/note.py +0 -0
  149. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/operable_model.py +0 -0
  150. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/schema_model.py +0 -0
  151. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/ReAct/ReAct.py +0 -0
  152. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/ReAct/__init__.py +0 -0
  153. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/ReAct/utils.py +0 -0
  154. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/__init__.py +0 -0
  155. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/_act/__init__.py +0 -0
  156. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/_act/act.py +0 -0
  157. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/brainstorm/__init__.py +0 -0
  158. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/brainstorm/brainstorm.py +0 -0
  159. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/brainstorm/prompt.py +0 -0
  160. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/chat/__init__.py +0 -0
  161. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/chat/chat.py +0 -0
  162. {lionagi-0.12.4/lionagi/libs/token_transform → lionagi-0.12.5/lionagi/operations/communicate}/__init__.py +0 -0
  163. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/communicate/communicate.py +0 -0
  164. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/instruct/__init__.py +0 -0
  165. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/instruct/instruct.py +0 -0
  166. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/interpret/__init__.py +0 -0
  167. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/interpret/interpret.py +0 -0
  168. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/manager.py +0 -0
  169. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/operate/__init__.py +0 -0
  170. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/operate/operate.py +0 -0
  171. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/parse/__init__.py +0 -0
  172. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/parse/parse.py +0 -0
  173. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/plan/__init__.py +0 -0
  174. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/plan/plan.py +0 -0
  175. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/plan/prompt.py +0 -0
  176. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/select/__init__.py +0 -0
  177. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/select/select.py +0 -0
  178. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/select/utils.py +0 -0
  179. {lionagi-0.12.4/lionagi/operations/communicate → lionagi-0.12.5/lionagi/operations/translate}/__init__.py +0 -0
  180. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/translate/translate.py +0 -0
  181. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/types.py +0 -0
  182. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/utils.py +0 -0
  183. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/__init__.py +0 -0
  184. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/_concepts.py +0 -0
  185. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/action/__init__.py +0 -0
  186. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/action/function_calling.py +0 -0
  187. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/action/manager.py +0 -0
  188. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/action/tool.py +0 -0
  189. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/forms/__init__.py +0 -0
  190. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/forms/base.py +0 -0
  191. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/forms/flow.py +0 -0
  192. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/forms/form.py +0 -0
  193. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/forms/report.py +0 -0
  194. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/__init__.py +0 -0
  195. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/element.py +0 -0
  196. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/event.py +0 -0
  197. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/log.py +0 -0
  198. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/processor.py +0 -0
  199. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/progression.py +0 -0
  200. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/graph/__init__.py +0 -0
  201. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/graph/edge.py +0 -0
  202. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/graph/graph.py +0 -0
  203. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/__init__.py +0 -0
  204. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/exchange.py +0 -0
  205. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/mail.py +0 -0
  206. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/mailbox.py +0 -0
  207. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/manager.py +0 -0
  208. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/package.py +0 -0
  209. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/__init__.py +0 -0
  210. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/action_request.py +0 -0
  211. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/action_response.py +0 -0
  212. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/assistant_response.py +0 -0
  213. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/base.py +0 -0
  214. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/instruction.py +0 -0
  215. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/manager.py +0 -0
  216. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/message.py +0 -0
  217. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/system.py +0 -0
  218. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/README.md +0 -0
  219. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
  220. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
  221. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
  222. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
  223. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
  224. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
  225. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/operatives/__init__.py +0 -0
  226. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/operatives/operative.py +0 -0
  227. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/operatives/step.py +0 -0
  228. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/types.py +0 -0
  229. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/py.typed +0 -0
  230. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/__init__.py +0 -0
  231. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/__init__.py +0 -0
  232. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/api_calling.py +0 -0
  233. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/endpoint.py +0 -0
  234. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/endpoint_config.py +0 -0
  235. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/header_factory.py +0 -0
  236. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/match_endpoint.py +0 -0
  237. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/__init__.py +0 -0
  238. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/anthropic_.py +0 -0
  239. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/exa_.py +0 -0
  240. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/oai_.py +0 -0
  241. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/ollama_.py +0 -0
  242. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/perplexity_.py +0 -0
  243. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/imodel.py +0 -0
  244. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/manager.py +0 -0
  245. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/rate_limited_processor.py +0 -0
  246. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/resilience.py +0 -0
  247. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/third_party/README.md +0 -0
  248. {lionagi-0.12.4/lionagi/operations/translate → lionagi-0.12.5/lionagi/service/third_party}/__init__.py +0 -0
  249. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/third_party/anthropic_models.py +0 -0
  250. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/third_party/exa_models.py +0 -0
  251. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/third_party/openai_models.py +0 -0
  252. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/third_party/pplx_models.py +0 -0
  253. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/token_calculator.py +0 -0
  254. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/types.py +0 -0
  255. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/session/__init__.py +0 -0
  256. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/session/branch.py +0 -0
  257. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/session/prompts.py +0 -0
  258. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/session/session.py +0 -0
  259. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/settings.py +0 -0
  260. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/__init__.py +0 -0
  261. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/base.py +0 -0
  262. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/file/__init__.py +0 -0
  263. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/file/reader.py +0 -0
  264. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/memory/tools.py +0 -0
  265. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/types.py +0 -0
  266. {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/utils.py +0 -0
  267. {lionagi-0.12.4 → lionagi-0.12.5}/main.py +0 -0
  268. {lionagi-0.12.4 → lionagi-0.12.5}/scripts/README.md +0 -0
  269. {lionagi-0.12.4 → lionagi-0.12.5}/scripts/concat.py +0 -0
  270. {lionagi-0.12.4 → lionagi-0.12.5}/scripts/config.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.12.4
3
+ Version: 0.12.5
4
4
  Summary: An Intelligence Operating System.
5
5
  Author-email: HaiyangLi <quantocean.li@gmail.com>, Liangbingyan Luo <llby_luo@outlook.com>
6
6
  License: Apache License
@@ -223,10 +223,9 @@ Requires-Dist: aiocache>=0.12.0
223
223
  Requires-Dist: aiohttp>=3.12.0
224
224
  Requires-Dist: backoff>=2.2.1
225
225
  Requires-Dist: jinja2>=3.1.0
226
- Requires-Dist: pandas>=2.0.0
227
226
  Requires-Dist: pillow>=11.0.0
228
227
  Requires-Dist: pydantic-settings>=2.8.0
229
- Requires-Dist: pydantic>2.0.0
228
+ Requires-Dist: pydapter[pandas]>=0.3.0
230
229
  Requires-Dist: python-dotenv>=1.1.0
231
230
  Requires-Dist: tiktoken>=0.8.0
232
231
  Requires-Dist: toml>=0.9.0
@@ -5,6 +5,7 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  import asyncio
8
+ import json
8
9
  import threading
9
10
  from collections import deque
10
11
  from collections.abc import (
@@ -21,18 +22,13 @@ from typing import Any, ClassVar, Generic, TypeVar
21
22
  import pandas as pd
22
23
  from pydantic import Field
23
24
  from pydantic.fields import FieldInfo
25
+ from pydapter import Adapter, AdapterRegistry
26
+ from pydapter.adapters import CsvAdapter, JsonAdapter
27
+ from pydapter.extras.excel_ import ExcelAdapter
28
+ from pydapter.extras.pandas_ import DataFrameAdapter
24
29
  from typing_extensions import Self, override
25
30
 
26
31
  from lionagi._errors import ItemExistsError, ItemNotFoundError
27
- from lionagi.adapters.types import (
28
- Adapter,
29
- AdapterRegistry,
30
- CSVFileAdapter,
31
- ExcelFileAdapter,
32
- JsonAdapter,
33
- JsonFileAdapter,
34
- PandasDataFrameAdapter,
35
- )
36
32
  from lionagi.utils import UNDEFINED, is_same_dtype, to_list
37
33
 
38
34
  from .._concepts import Observable
@@ -45,10 +41,9 @@ T = TypeVar("T", bound=E)
45
41
 
46
42
  PILE_DEFAULT_ADAPTERS = (
47
43
  JsonAdapter,
48
- JsonFileAdapter,
49
- CSVFileAdapter,
50
- ExcelFileAdapter,
51
- PandasDataFrameAdapter,
44
+ CsvAdapter,
45
+ ExcelAdapter,
46
+ DataFrameAdapter,
52
47
  )
53
48
 
54
49
 
@@ -56,8 +51,9 @@ class PileAdapterRegistry(AdapterRegistry):
56
51
  pass
57
52
 
58
53
 
54
+ pile_adapter_registry = PileAdapterRegistry()
59
55
  for i in PILE_DEFAULT_ADAPTERS:
60
- PileAdapterRegistry.register(i)
56
+ pile_adapter_registry.register(i)
61
57
 
62
58
 
63
59
  __all__ = (
@@ -117,7 +113,7 @@ class Pile(Element, Collective[E], Generic[E]):
117
113
  frozen=True,
118
114
  )
119
115
 
120
- _adapter_registry: ClassVar[AdapterRegistry] = PileAdapterRegistry
116
+ _adapter_registry: ClassVar[AdapterRegistry] = pile_adapter_registry
121
117
 
122
118
  def __pydantic_extra__(self) -> dict[str, FieldInfo]:
123
119
  return {
@@ -966,12 +962,25 @@ class Pile(Element, Collective[E], Generic[E]):
966
962
 
967
963
  def adapt_to(self, obj_key: str, /, **kwargs: Any) -> Any:
968
964
  """Convert to another format."""
969
- return self._get_adapter_registry().adapt_to(self, obj_key, **kwargs)
965
+ # For JSON adapter, we need to pass the dict representation
966
+ if obj_key in ["json", "csv", "toml"]:
967
+ data = self.to_dict()
970
968
 
971
- @classmethod
972
- def list_adapters(cls):
973
- """List available adapters."""
974
- return cls._get_adapter_registry().list_adapters()
969
+ # Create a simple object that has model_dump method
970
+ class _Wrapper:
971
+ def __init__(self, data):
972
+ self._data = data
973
+
974
+ def model_dump(self):
975
+ return self._data
976
+
977
+ wrapper = _Wrapper(data)
978
+ return self._get_adapter_registry().adapt_to(
979
+ wrapper, obj_key=obj_key, **kwargs
980
+ )
981
+ return self._get_adapter_registry().adapt_to(
982
+ self, obj_key=obj_key, **kwargs
983
+ )
975
984
 
976
985
  @classmethod
977
986
  def register_adapter(cls, adapter: type[Adapter]):
@@ -988,7 +997,7 @@ class Pile(Element, Collective[E], Generic[E]):
988
997
  def adapt_from(cls, obj: Any, obj_key: str, /, **kwargs: Any):
989
998
  """Create from another format."""
990
999
  dict_ = cls._get_adapter_registry().adapt_from(
991
- cls, obj, obj_key, **kwargs
1000
+ cls, obj, obj_key=obj_key, **kwargs
992
1001
  )
993
1002
  if isinstance(dict_, list):
994
1003
  dict_ = {"collections": dict_}
@@ -1000,11 +1009,31 @@ class Pile(Element, Collective[E], Generic[E]):
1000
1009
  **kwargs: Any,
1001
1010
  ) -> pd.DataFrame:
1002
1011
  """Convert to DataFrame."""
1003
- return self.adapt_to("pd_dataframe", columns=columns, **kwargs)
1012
+ # For DataFrame, we need to pass a list of dicts
1013
+ data = [item.to_dict() for item in self.collections.values()]
1014
+
1015
+ # Create wrapper objects for each item
1016
+ class _ItemWrapper:
1017
+ def __init__(self, data):
1018
+ self._data = data
1019
+
1020
+ def model_dump(self):
1021
+ return self._data
1022
+
1023
+ wrappers = [_ItemWrapper(d) for d in data]
1024
+ df = self._get_adapter_registry().adapt_to(
1025
+ wrappers, obj_key="pd.DataFrame", many=True, **kwargs
1026
+ )
1027
+
1028
+ if columns:
1029
+ return df[columns]
1030
+ return df
1004
1031
 
1005
1032
  def to_csv_file(self, fp: str | Path, **kwargs: Any) -> None:
1006
1033
  """Save to CSV file."""
1007
- self.adapt_to(".csv", fp=fp, **kwargs)
1034
+ # Convert to DataFrame first, then save as CSV
1035
+ df = self.to_df()
1036
+ df.to_csv(fp, index=False, **kwargs)
1008
1037
 
1009
1038
  def to_json_file(
1010
1039
  self,
@@ -1025,8 +1054,14 @@ class Pile(Element, Collective[E], Generic[E]):
1025
1054
  **kwargs: Additional arguments for json.dump() or DataFrame.to_json().
1026
1055
  """
1027
1056
  if use_pd:
1028
- return self.to_df().to_json(mode=mode, **kwargs)
1029
- return self.adapt_to(".json", fp=path_or_buf, mode=mode, many=many)
1057
+ return self.to_df().to_json(path_or_buf, mode=mode, **kwargs)
1058
+
1059
+ # Get JSON string from adapter
1060
+ json_str = self.adapt_to("json", many=many, **kwargs)
1061
+
1062
+ # Write to file
1063
+ with open(path_or_buf, mode, encoding="utf-8") as f:
1064
+ f.write(json_str)
1030
1065
 
1031
1066
 
1032
1067
  def pile(
@@ -1052,16 +1087,28 @@ def pile(
1052
1087
  """
1053
1088
 
1054
1089
  if df:
1055
- return Pile.adapt_from(df, "pd_dataframe", **kwargs)
1090
+ return Pile.adapt_from(df, "pd.DataFrame", **kwargs)
1056
1091
 
1057
1092
  if fp:
1058
1093
  fp = Path(fp)
1059
1094
  if fp.suffix == ".csv":
1060
- return Pile.adapt_from(fp, ".csv", **kwargs)
1095
+ # Read CSV to DataFrame first
1096
+ df = pd.read_csv(fp, **kwargs)
1097
+ return Pile.adapt_from(df, "pd.DataFrame")
1061
1098
  if fp.suffix == ".xlsx":
1062
- return Pile.adapt_from(fp, ".xlsx", **kwargs)
1099
+ # Read Excel to DataFrame first
1100
+ df = pd.read_excel(fp, **kwargs)
1101
+ return Pile.adapt_from(df, "pd.DataFrame")
1063
1102
  if fp.suffix in [".json", ".jsonl"]:
1064
- return Pile.adapt_from(fp, ".json", **kwargs)
1103
+ # Read JSON file
1104
+ with open(fp, encoding="utf-8") as f:
1105
+ data = json.load(f)
1106
+ if isinstance(data, dict):
1107
+ return Pile.from_dict(data)
1108
+ elif isinstance(data, list):
1109
+ return Pile.from_dict({"collections": data})
1110
+ else:
1111
+ raise ValueError(f"Invalid JSON data structure in {fp}")
1065
1112
 
1066
1113
  return Pile(
1067
1114
  collections,
@@ -6,26 +6,19 @@ import json
6
6
  from typing import Any, ClassVar
7
7
 
8
8
  from pydantic import field_validator
9
+ from pydapter import AdapterRegistry
10
+ from pydapter.adapters import JsonAdapter, TomlAdapter
11
+ from pydapter.extras.pandas_ import SeriesAdapter
9
12
 
10
13
  from lionagi._class_registry import LION_CLASS_REGISTRY
11
- from lionagi.adapters.types import (
12
- AdapterRegistry,
13
- JsonAdapter,
14
- JsonFileAdapter,
15
- PandasSeriesAdapter,
16
- TomlAdapter,
17
- TomlFileAdapter,
18
- )
19
14
 
20
15
  from .._concepts import Relational
21
16
  from ..generic.element import Element
22
17
 
23
18
  NODE_DEFAULT_ADAPTERS = (
24
19
  JsonAdapter,
25
- JsonFileAdapter,
26
- PandasSeriesAdapter,
20
+ SeriesAdapter,
27
21
  TomlAdapter,
28
- TomlFileAdapter,
29
22
  )
30
23
 
31
24
 
@@ -33,8 +26,9 @@ class NodeAdapterRegistry(AdapterRegistry):
33
26
  pass
34
27
 
35
28
 
29
+ node_adapter_registry = NodeAdapterRegistry()
36
30
  for i in NODE_DEFAULT_ADAPTERS:
37
- NodeAdapterRegistry.register(i)
31
+ node_adapter_registry.register(i)
38
32
 
39
33
  __all__ = ("Node",)
40
34
 
@@ -48,7 +42,7 @@ class Node(Element, Relational):
48
42
  - Automatic subclass registration
49
43
  """
50
44
 
51
- _adapter_registry: ClassVar[AdapterRegistry] = NodeAdapterRegistry
45
+ _adapter_registry: ClassVar[AdapterRegistry] = node_adapter_registry
52
46
 
53
47
  content: Any = None
54
48
  embedding: list[float] | None = None
@@ -88,8 +82,24 @@ class Node(Element, Relational):
88
82
  """
89
83
  Convert this Node to another format using a registered adapter.
90
84
  """
85
+ # For JSON/TOML adapters, we need to pass the dict representation
86
+ if obj_key in ["json", "toml"]:
87
+ data = self.to_dict()
88
+
89
+ # Create a simple object that has model_dump method
90
+ class _Wrapper:
91
+ def __init__(self, data):
92
+ self._data = data
93
+
94
+ def model_dump(self):
95
+ return self._data
96
+
97
+ wrapper = _Wrapper(data)
98
+ return self._get_adapter_registry().adapt_to(
99
+ wrapper, obj_key=obj_key, many=many, **kwargs
100
+ )
91
101
  return self._get_adapter_registry().adapt_to(
92
- self, obj_key, many=many, **kwargs
102
+ self, obj_key=obj_key, many=many, **kwargs
93
103
  )
94
104
 
95
105
  @classmethod
@@ -107,7 +117,7 @@ class Node(Element, Relational):
107
117
  auto-delegate to the correct subclass via from_dict.
108
118
  """
109
119
  result = cls._get_adapter_registry().adapt_from(
110
- cls, obj, obj_key, many=many, **kwargs
120
+ cls, obj, obj_key=obj_key, many=many, **kwargs
111
121
  )
112
122
  # If adapter returned multiple items, choose the first or handle as needed.
113
123
  if isinstance(result, list):
@@ -124,9 +134,5 @@ class Node(Element, Relational):
124
134
  def register_adapter(cls, adapter: Any) -> None:
125
135
  cls._get_adapter_registry().register(adapter)
126
136
 
127
- @classmethod
128
- def list_adapters(cls) -> list[str]:
129
- return cls._get_adapter_registry().list_adapters()
130
-
131
137
 
132
138
  # File: lionagi/protocols/graph/node.py
@@ -0,0 +1 @@
1
+ __version__ = "0.12.5"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "lionagi"
3
- version = "0.12.4"
3
+ version = "0.12.5"
4
4
  description = "An Intelligence Operating System."
5
5
  authors = [
6
6
  { name = "HaiyangLi", email = "quantocean.li@gmail.com" },
@@ -13,10 +13,9 @@ dependencies = [
13
13
  "aiohttp>=3.12.0",
14
14
  "backoff>=2.2.1",
15
15
  "jinja2>=3.1.0",
16
- "pandas>=2.0.0",
17
16
  "pillow>=11.0.0",
18
- "pydantic>2.0.0",
19
17
  "pydantic-settings>=2.8.0",
18
+ "pydapter[pandas]>=0.3.0",
20
19
  "python-dotenv>=1.1.0",
21
20
  "tiktoken>=0.8.0",
22
21
  "toml>=0.9.0",
@@ -1166,17 +1166,16 @@ wheels = [
1166
1166
 
1167
1167
  [[package]]
1168
1168
  name = "lionagi"
1169
- version = "0.12.4"
1169
+ version = "0.12.5"
1170
1170
  source = { editable = "." }
1171
1171
  dependencies = [
1172
1172
  { name = "aiocache" },
1173
1173
  { name = "aiohttp" },
1174
1174
  { name = "backoff" },
1175
1175
  { name = "jinja2" },
1176
- { name = "pandas" },
1177
1176
  { name = "pillow" },
1178
- { name = "pydantic" },
1179
1177
  { name = "pydantic-settings" },
1178
+ { name = "pydapter", extra = ["pandas"] },
1180
1179
  { name = "python-dotenv" },
1181
1180
  { name = "tiktoken" },
1182
1181
  { name = "toml" },
@@ -1235,11 +1234,10 @@ requires-dist = [
1235
1234
  { name = "lionagi", extras = ["reader"], marker = "extra == 'all'" },
1236
1235
  { name = "lionagi", extras = ["reader"], marker = "extra == 'tools'" },
1237
1236
  { name = "ollama", marker = "extra == 'ollama'", specifier = ">=0.5.0" },
1238
- { name = "pandas", specifier = ">=2.0.0" },
1239
1237
  { name = "pillow", specifier = ">=11.0.0" },
1240
1238
  { name = "pre-commit", marker = "extra == 'lint'", specifier = ">=4.0.1" },
1241
- { name = "pydantic", specifier = ">2.0.0" },
1242
1239
  { name = "pydantic-settings", specifier = ">=2.8.0" },
1240
+ { name = "pydapter", extras = ["pandas"], specifier = ">=0.3.0" },
1243
1241
  { name = "pytest", marker = "extra == 'test'", specifier = ">=8.3.4" },
1244
1242
  { name = "pytest-asyncio", marker = "extra == 'test'", specifier = ">=1.0.0" },
1245
1243
  { name = "python-dotenv", specifier = ">=1.1.0" },
@@ -1893,6 +1891,72 @@ wheels = [
1893
1891
  { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size = 250910, upload-time = "2024-06-28T14:03:41.161Z" },
1894
1892
  ]
1895
1893
 
1894
+ [[package]]
1895
+ name = "orjson"
1896
+ version = "3.10.18"
1897
+ source = { registry = "https://pypi.org/simple" }
1898
+ sdist = { url = "https://files.pythonhosted.org/packages/81/0b/fea456a3ffe74e70ba30e01ec183a9b26bec4d497f61dcfce1b601059c60/orjson-3.10.18.tar.gz", hash = "sha256:e8da3947d92123eda795b68228cafe2724815621fe35e8e320a9e9593a4bcd53", size = 5422810, upload-time = "2025-04-29T23:30:08.423Z" }
1899
+ wheels = [
1900
+ { url = "https://files.pythonhosted.org/packages/27/16/2ceb9fb7bc2b11b1e4a3ea27794256e93dee2309ebe297fd131a778cd150/orjson-3.10.18-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a45e5d68066b408e4bc383b6e4ef05e717c65219a9e1390abc6155a520cac402", size = 248927, upload-time = "2025-04-29T23:28:08.643Z" },
1901
+ { url = "https://files.pythonhosted.org/packages/3d/e1/d3c0a2bba5b9906badd121da449295062b289236c39c3a7801f92c4682b0/orjson-3.10.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be3b9b143e8b9db05368b13b04c84d37544ec85bb97237b3a923f076265ec89c", size = 136995, upload-time = "2025-04-29T23:28:11.503Z" },
1902
+ { url = "https://files.pythonhosted.org/packages/d7/51/698dd65e94f153ee5ecb2586c89702c9e9d12f165a63e74eb9ea1299f4e1/orjson-3.10.18-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9b0aa09745e2c9b3bf779b096fa71d1cc2d801a604ef6dd79c8b1bfef52b2f92", size = 132893, upload-time = "2025-04-29T23:28:12.751Z" },
1903
+ { url = "https://files.pythonhosted.org/packages/b3/e5/155ce5a2c43a85e790fcf8b985400138ce5369f24ee6770378ee6b691036/orjson-3.10.18-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53a245c104d2792e65c8d225158f2b8262749ffe64bc7755b00024757d957a13", size = 137017, upload-time = "2025-04-29T23:28:14.498Z" },
1904
+ { url = "https://files.pythonhosted.org/packages/46/bb/6141ec3beac3125c0b07375aee01b5124989907d61c72c7636136e4bd03e/orjson-3.10.18-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9495ab2611b7f8a0a8a505bcb0f0cbdb5469caafe17b0e404c3c746f9900469", size = 138290, upload-time = "2025-04-29T23:28:16.211Z" },
1905
+ { url = "https://files.pythonhosted.org/packages/77/36/6961eca0b66b7809d33c4ca58c6bd4c23a1b914fb23aba2fa2883f791434/orjson-3.10.18-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:73be1cbcebadeabdbc468f82b087df435843c809cd079a565fb16f0f3b23238f", size = 142828, upload-time = "2025-04-29T23:28:18.065Z" },
1906
+ { url = "https://files.pythonhosted.org/packages/8b/2f/0c646d5fd689d3be94f4d83fa9435a6c4322c9b8533edbb3cd4bc8c5f69a/orjson-3.10.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe8936ee2679e38903df158037a2f1c108129dee218975122e37847fb1d4ac68", size = 132806, upload-time = "2025-04-29T23:28:19.782Z" },
1907
+ { url = "https://files.pythonhosted.org/packages/ea/af/65907b40c74ef4c3674ef2bcfa311c695eb934710459841b3c2da212215c/orjson-3.10.18-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7115fcbc8525c74e4c2b608129bef740198e9a120ae46184dac7683191042056", size = 135005, upload-time = "2025-04-29T23:28:21.367Z" },
1908
+ { url = "https://files.pythonhosted.org/packages/c7/d1/68bd20ac6a32cd1f1b10d23e7cc58ee1e730e80624e3031d77067d7150fc/orjson-3.10.18-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:771474ad34c66bc4d1c01f645f150048030694ea5b2709b87d3bda273ffe505d", size = 413418, upload-time = "2025-04-29T23:28:23.097Z" },
1909
+ { url = "https://files.pythonhosted.org/packages/31/31/c701ec0bcc3e80e5cb6e319c628ef7b768aaa24b0f3b4c599df2eaacfa24/orjson-3.10.18-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:7c14047dbbea52886dd87169f21939af5d55143dad22d10db6a7514f058156a8", size = 153288, upload-time = "2025-04-29T23:28:25.02Z" },
1910
+ { url = "https://files.pythonhosted.org/packages/d9/31/5e1aa99a10893a43cfc58009f9da840990cc8a9ebb75aa452210ba18587e/orjson-3.10.18-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:641481b73baec8db14fdf58f8967e52dc8bda1f2aba3aa5f5c1b07ed6df50b7f", size = 137181, upload-time = "2025-04-29T23:28:26.318Z" },
1911
+ { url = "https://files.pythonhosted.org/packages/bf/8c/daba0ac1b8690011d9242a0f37235f7d17df6d0ad941021048523b76674e/orjson-3.10.18-cp310-cp310-win32.whl", hash = "sha256:607eb3ae0909d47280c1fc657c4284c34b785bae371d007595633f4b1a2bbe06", size = 142694, upload-time = "2025-04-29T23:28:28.092Z" },
1912
+ { url = "https://files.pythonhosted.org/packages/16/62/8b687724143286b63e1d0fab3ad4214d54566d80b0ba9d67c26aaf28a2f8/orjson-3.10.18-cp310-cp310-win_amd64.whl", hash = "sha256:8770432524ce0eca50b7efc2a9a5f486ee0113a5fbb4231526d414e6254eba92", size = 134600, upload-time = "2025-04-29T23:28:29.422Z" },
1913
+ { url = "https://files.pythonhosted.org/packages/97/c7/c54a948ce9a4278794f669a353551ce7db4ffb656c69a6e1f2264d563e50/orjson-3.10.18-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e0a183ac3b8e40471e8d843105da6fbe7c070faab023be3b08188ee3f85719b8", size = 248929, upload-time = "2025-04-29T23:28:30.716Z" },
1914
+ { url = "https://files.pythonhosted.org/packages/9e/60/a9c674ef1dd8ab22b5b10f9300e7e70444d4e3cda4b8258d6c2488c32143/orjson-3.10.18-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:5ef7c164d9174362f85238d0cd4afdeeb89d9e523e4651add6a5d458d6f7d42d", size = 133364, upload-time = "2025-04-29T23:28:32.392Z" },
1915
+ { url = "https://files.pythonhosted.org/packages/c1/4e/f7d1bdd983082216e414e6d7ef897b0c2957f99c545826c06f371d52337e/orjson-3.10.18-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afd14c5d99cdc7bf93f22b12ec3b294931518aa019e2a147e8aa2f31fd3240f7", size = 136995, upload-time = "2025-04-29T23:28:34.024Z" },
1916
+ { url = "https://files.pythonhosted.org/packages/17/89/46b9181ba0ea251c9243b0c8ce29ff7c9796fa943806a9c8b02592fce8ea/orjson-3.10.18-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7b672502323b6cd133c4af6b79e3bea36bad2d16bca6c1f645903fce83909a7a", size = 132894, upload-time = "2025-04-29T23:28:35.318Z" },
1917
+ { url = "https://files.pythonhosted.org/packages/ca/dd/7bce6fcc5b8c21aef59ba3c67f2166f0a1a9b0317dcca4a9d5bd7934ecfd/orjson-3.10.18-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:51f8c63be6e070ec894c629186b1c0fe798662b8687f3d9fdfa5e401c6bd7679", size = 137016, upload-time = "2025-04-29T23:28:36.674Z" },
1918
+ { url = "https://files.pythonhosted.org/packages/1c/4a/b8aea1c83af805dcd31c1f03c95aabb3e19a016b2a4645dd822c5686e94d/orjson-3.10.18-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f9478ade5313d724e0495d167083c6f3be0dd2f1c9c8a38db9a9e912cdaf947", size = 138290, upload-time = "2025-04-29T23:28:38.3Z" },
1919
+ { url = "https://files.pythonhosted.org/packages/36/d6/7eb05c85d987b688707f45dcf83c91abc2251e0dd9fb4f7be96514f838b1/orjson-3.10.18-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:187aefa562300a9d382b4b4eb9694806e5848b0cedf52037bb5c228c61bb66d4", size = 142829, upload-time = "2025-04-29T23:28:39.657Z" },
1920
+ { url = "https://files.pythonhosted.org/packages/d2/78/ddd3ee7873f2b5f90f016bc04062713d567435c53ecc8783aab3a4d34915/orjson-3.10.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9da552683bc9da222379c7a01779bddd0ad39dd699dd6300abaf43eadee38334", size = 132805, upload-time = "2025-04-29T23:28:40.969Z" },
1921
+ { url = "https://files.pythonhosted.org/packages/8c/09/c8e047f73d2c5d21ead9c180203e111cddeffc0848d5f0f974e346e21c8e/orjson-3.10.18-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e450885f7b47a0231979d9c49b567ed1c4e9f69240804621be87c40bc9d3cf17", size = 135008, upload-time = "2025-04-29T23:28:42.284Z" },
1922
+ { url = "https://files.pythonhosted.org/packages/0c/4b/dccbf5055ef8fb6eda542ab271955fc1f9bf0b941a058490293f8811122b/orjson-3.10.18-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5e3c9cc2ba324187cd06287ca24f65528f16dfc80add48dc99fa6c836bb3137e", size = 413419, upload-time = "2025-04-29T23:28:43.673Z" },
1923
+ { url = "https://files.pythonhosted.org/packages/8a/f3/1eac0c5e2d6d6790bd2025ebfbefcbd37f0d097103d76f9b3f9302af5a17/orjson-3.10.18-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:50ce016233ac4bfd843ac5471e232b865271d7d9d44cf9d33773bcd883ce442b", size = 153292, upload-time = "2025-04-29T23:28:45.573Z" },
1924
+ { url = "https://files.pythonhosted.org/packages/1f/b4/ef0abf64c8f1fabf98791819ab502c2c8c1dc48b786646533a93637d8999/orjson-3.10.18-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b3ceff74a8f7ffde0b2785ca749fc4e80e4315c0fd887561144059fb1c138aa7", size = 137182, upload-time = "2025-04-29T23:28:47.229Z" },
1925
+ { url = "https://files.pythonhosted.org/packages/a9/a3/6ea878e7b4a0dc5c888d0370d7752dcb23f402747d10e2257478d69b5e63/orjson-3.10.18-cp311-cp311-win32.whl", hash = "sha256:fdba703c722bd868c04702cac4cb8c6b8ff137af2623bc0ddb3b3e6a2c8996c1", size = 142695, upload-time = "2025-04-29T23:28:48.564Z" },
1926
+ { url = "https://files.pythonhosted.org/packages/79/2a/4048700a3233d562f0e90d5572a849baa18ae4e5ce4c3ba6247e4ece57b0/orjson-3.10.18-cp311-cp311-win_amd64.whl", hash = "sha256:c28082933c71ff4bc6ccc82a454a2bffcef6e1d7379756ca567c772e4fb3278a", size = 134603, upload-time = "2025-04-29T23:28:50.442Z" },
1927
+ { url = "https://files.pythonhosted.org/packages/03/45/10d934535a4993d27e1c84f1810e79ccf8b1b7418cef12151a22fe9bb1e1/orjson-3.10.18-cp311-cp311-win_arm64.whl", hash = "sha256:a6c7c391beaedd3fa63206e5c2b7b554196f14debf1ec9deb54b5d279b1b46f5", size = 131400, upload-time = "2025-04-29T23:28:51.838Z" },
1928
+ { url = "https://files.pythonhosted.org/packages/21/1a/67236da0916c1a192d5f4ccbe10ec495367a726996ceb7614eaa687112f2/orjson-3.10.18-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:50c15557afb7f6d63bc6d6348e0337a880a04eaa9cd7c9d569bcb4e760a24753", size = 249184, upload-time = "2025-04-29T23:28:53.612Z" },
1929
+ { url = "https://files.pythonhosted.org/packages/b3/bc/c7f1db3b1d094dc0c6c83ed16b161a16c214aaa77f311118a93f647b32dc/orjson-3.10.18-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:356b076f1662c9813d5fa56db7d63ccceef4c271b1fb3dd522aca291375fcf17", size = 133279, upload-time = "2025-04-29T23:28:55.055Z" },
1930
+ { url = "https://files.pythonhosted.org/packages/af/84/664657cd14cc11f0d81e80e64766c7ba5c9b7fc1ec304117878cc1b4659c/orjson-3.10.18-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:559eb40a70a7494cd5beab2d73657262a74a2c59aff2068fdba8f0424ec5b39d", size = 136799, upload-time = "2025-04-29T23:28:56.828Z" },
1931
+ { url = "https://files.pythonhosted.org/packages/9a/bb/f50039c5bb05a7ab024ed43ba25d0319e8722a0ac3babb0807e543349978/orjson-3.10.18-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f3c29eb9a81e2fbc6fd7ddcfba3e101ba92eaff455b8d602bf7511088bbc0eae", size = 132791, upload-time = "2025-04-29T23:28:58.751Z" },
1932
+ { url = "https://files.pythonhosted.org/packages/93/8c/ee74709fc072c3ee219784173ddfe46f699598a1723d9d49cbc78d66df65/orjson-3.10.18-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6612787e5b0756a171c7d81ba245ef63a3533a637c335aa7fcb8e665f4a0966f", size = 137059, upload-time = "2025-04-29T23:29:00.129Z" },
1933
+ { url = "https://files.pythonhosted.org/packages/6a/37/e6d3109ee004296c80426b5a62b47bcadd96a3deab7443e56507823588c5/orjson-3.10.18-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ac6bd7be0dcab5b702c9d43d25e70eb456dfd2e119d512447468f6405b4a69c", size = 138359, upload-time = "2025-04-29T23:29:01.704Z" },
1934
+ { url = "https://files.pythonhosted.org/packages/4f/5d/387dafae0e4691857c62bd02839a3bf3fa648eebd26185adfac58d09f207/orjson-3.10.18-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9f72f100cee8dde70100406d5c1abba515a7df926d4ed81e20a9730c062fe9ad", size = 142853, upload-time = "2025-04-29T23:29:03.576Z" },
1935
+ { url = "https://files.pythonhosted.org/packages/27/6f/875e8e282105350b9a5341c0222a13419758545ae32ad6e0fcf5f64d76aa/orjson-3.10.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dca85398d6d093dd41dc0983cbf54ab8e6afd1c547b6b8a311643917fbf4e0c", size = 133131, upload-time = "2025-04-29T23:29:05.753Z" },
1936
+ { url = "https://files.pythonhosted.org/packages/48/b2/73a1f0b4790dcb1e5a45f058f4f5dcadc8a85d90137b50d6bbc6afd0ae50/orjson-3.10.18-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22748de2a07fcc8781a70edb887abf801bb6142e6236123ff93d12d92db3d406", size = 134834, upload-time = "2025-04-29T23:29:07.35Z" },
1937
+ { url = "https://files.pythonhosted.org/packages/56/f5/7ed133a5525add9c14dbdf17d011dd82206ca6840811d32ac52a35935d19/orjson-3.10.18-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:3a83c9954a4107b9acd10291b7f12a6b29e35e8d43a414799906ea10e75438e6", size = 413368, upload-time = "2025-04-29T23:29:09.301Z" },
1938
+ { url = "https://files.pythonhosted.org/packages/11/7c/439654221ed9c3324bbac7bdf94cf06a971206b7b62327f11a52544e4982/orjson-3.10.18-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:303565c67a6c7b1f194c94632a4a39918e067bd6176a48bec697393865ce4f06", size = 153359, upload-time = "2025-04-29T23:29:10.813Z" },
1939
+ { url = "https://files.pythonhosted.org/packages/48/e7/d58074fa0cc9dd29a8fa2a6c8d5deebdfd82c6cfef72b0e4277c4017563a/orjson-3.10.18-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:86314fdb5053a2f5a5d881f03fca0219bfdf832912aa88d18676a5175c6916b5", size = 137466, upload-time = "2025-04-29T23:29:12.26Z" },
1940
+ { url = "https://files.pythonhosted.org/packages/57/4d/fe17581cf81fb70dfcef44e966aa4003360e4194d15a3f38cbffe873333a/orjson-3.10.18-cp312-cp312-win32.whl", hash = "sha256:187ec33bbec58c76dbd4066340067d9ece6e10067bb0cc074a21ae3300caa84e", size = 142683, upload-time = "2025-04-29T23:29:13.865Z" },
1941
+ { url = "https://files.pythonhosted.org/packages/e6/22/469f62d25ab5f0f3aee256ea732e72dc3aab6d73bac777bd6277955bceef/orjson-3.10.18-cp312-cp312-win_amd64.whl", hash = "sha256:f9f94cf6d3f9cd720d641f8399e390e7411487e493962213390d1ae45c7814fc", size = 134754, upload-time = "2025-04-29T23:29:15.338Z" },
1942
+ { url = "https://files.pythonhosted.org/packages/10/b0/1040c447fac5b91bc1e9c004b69ee50abb0c1ffd0d24406e1350c58a7fcb/orjson-3.10.18-cp312-cp312-win_arm64.whl", hash = "sha256:3d600be83fe4514944500fa8c2a0a77099025ec6482e8087d7659e891f23058a", size = 131218, upload-time = "2025-04-29T23:29:17.324Z" },
1943
+ { url = "https://files.pythonhosted.org/packages/04/f0/8aedb6574b68096f3be8f74c0b56d36fd94bcf47e6c7ed47a7bd1474aaa8/orjson-3.10.18-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:69c34b9441b863175cc6a01f2935de994025e773f814412030f269da4f7be147", size = 249087, upload-time = "2025-04-29T23:29:19.083Z" },
1944
+ { url = "https://files.pythonhosted.org/packages/bc/f7/7118f965541aeac6844fcb18d6988e111ac0d349c9b80cda53583e758908/orjson-3.10.18-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:1ebeda919725f9dbdb269f59bc94f861afbe2a27dce5608cdba2d92772364d1c", size = 133273, upload-time = "2025-04-29T23:29:20.602Z" },
1945
+ { url = "https://files.pythonhosted.org/packages/fb/d9/839637cc06eaf528dd8127b36004247bf56e064501f68df9ee6fd56a88ee/orjson-3.10.18-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5adf5f4eed520a4959d29ea80192fa626ab9a20b2ea13f8f6dc58644f6927103", size = 136779, upload-time = "2025-04-29T23:29:22.062Z" },
1946
+ { url = "https://files.pythonhosted.org/packages/2b/6d/f226ecfef31a1f0e7d6bf9a31a0bbaf384c7cbe3fce49cc9c2acc51f902a/orjson-3.10.18-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7592bb48a214e18cd670974f289520f12b7aed1fa0b2e2616b8ed9e069e08595", size = 132811, upload-time = "2025-04-29T23:29:23.602Z" },
1947
+ { url = "https://files.pythonhosted.org/packages/73/2d/371513d04143c85b681cf8f3bce743656eb5b640cb1f461dad750ac4b4d4/orjson-3.10.18-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f872bef9f042734110642b7a11937440797ace8c87527de25e0c53558b579ccc", size = 137018, upload-time = "2025-04-29T23:29:25.094Z" },
1948
+ { url = "https://files.pythonhosted.org/packages/69/cb/a4d37a30507b7a59bdc484e4a3253c8141bf756d4e13fcc1da760a0b00cb/orjson-3.10.18-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0315317601149c244cb3ecef246ef5861a64824ccbcb8018d32c66a60a84ffbc", size = 138368, upload-time = "2025-04-29T23:29:26.609Z" },
1949
+ { url = "https://files.pythonhosted.org/packages/1e/ae/cd10883c48d912d216d541eb3db8b2433415fde67f620afe6f311f5cd2ca/orjson-3.10.18-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0da26957e77e9e55a6c2ce2e7182a36a6f6b180ab7189315cb0995ec362e049", size = 142840, upload-time = "2025-04-29T23:29:28.153Z" },
1950
+ { url = "https://files.pythonhosted.org/packages/6d/4c/2bda09855c6b5f2c055034c9eda1529967b042ff8d81a05005115c4e6772/orjson-3.10.18-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb70d489bc79b7519e5803e2cc4c72343c9dc1154258adf2f8925d0b60da7c58", size = 133135, upload-time = "2025-04-29T23:29:29.726Z" },
1951
+ { url = "https://files.pythonhosted.org/packages/13/4a/35971fd809a8896731930a80dfff0b8ff48eeb5d8b57bb4d0d525160017f/orjson-3.10.18-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e9e86a6af31b92299b00736c89caf63816f70a4001e750bda179e15564d7a034", size = 134810, upload-time = "2025-04-29T23:29:31.269Z" },
1952
+ { url = "https://files.pythonhosted.org/packages/99/70/0fa9e6310cda98365629182486ff37a1c6578e34c33992df271a476ea1cd/orjson-3.10.18-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:c382a5c0b5931a5fc5405053d36c1ce3fd561694738626c77ae0b1dfc0242ca1", size = 413491, upload-time = "2025-04-29T23:29:33.315Z" },
1953
+ { url = "https://files.pythonhosted.org/packages/32/cb/990a0e88498babddb74fb97855ae4fbd22a82960e9b06eab5775cac435da/orjson-3.10.18-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8e4b2ae732431127171b875cb2668f883e1234711d3c147ffd69fe5be51a8012", size = 153277, upload-time = "2025-04-29T23:29:34.946Z" },
1954
+ { url = "https://files.pythonhosted.org/packages/92/44/473248c3305bf782a384ed50dd8bc2d3cde1543d107138fd99b707480ca1/orjson-3.10.18-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d808e34ddb24fc29a4d4041dcfafbae13e129c93509b847b14432717d94b44f", size = 137367, upload-time = "2025-04-29T23:29:36.52Z" },
1955
+ { url = "https://files.pythonhosted.org/packages/ad/fd/7f1d3edd4ffcd944a6a40e9f88af2197b619c931ac4d3cfba4798d4d3815/orjson-3.10.18-cp313-cp313-win32.whl", hash = "sha256:ad8eacbb5d904d5591f27dee4031e2c1db43d559edb8f91778efd642d70e6bea", size = 142687, upload-time = "2025-04-29T23:29:38.292Z" },
1956
+ { url = "https://files.pythonhosted.org/packages/4b/03/c75c6ad46be41c16f4cfe0352a2d1450546f3c09ad2c9d341110cd87b025/orjson-3.10.18-cp313-cp313-win_amd64.whl", hash = "sha256:aed411bcb68bf62e85588f2a7e03a6082cc42e5a2796e06e72a962d7c6310b52", size = 134794, upload-time = "2025-04-29T23:29:40.349Z" },
1957
+ { url = "https://files.pythonhosted.org/packages/c2/28/f53038a5a72cc4fd0b56c1eafb4ef64aec9685460d5ac34de98ca78b6e29/orjson-3.10.18-cp313-cp313-win_arm64.whl", hash = "sha256:f54c1385a0e6aba2f15a40d703b858bedad36ded0491e55d35d905b2c34a4cc3", size = 131186, upload-time = "2025-04-29T23:29:41.922Z" },
1958
+ ]
1959
+
1896
1960
  [[package]]
1897
1961
  name = "packaging"
1898
1962
  version = "24.2"
@@ -2359,6 +2423,25 @@ wheels = [
2359
2423
  { url = "https://files.pythonhosted.org/packages/c1/a9/3b9642025174bbe67e900785fb99c9bfe91ea584b0b7126ff99945c24a0e/pydantic_settings-2.8.0-py3-none-any.whl", hash = "sha256:c782c7dc3fb40e97b238e713c25d26f64314aece2e91abcff592fcac15f71820", size = 30746, upload-time = "2025-02-21T08:04:50.49Z" },
2360
2424
  ]
2361
2425
 
2426
+ [[package]]
2427
+ name = "pydapter"
2428
+ version = "0.3.0"
2429
+ source = { registry = "https://pypi.org/simple" }
2430
+ dependencies = [
2431
+ { name = "orjson" },
2432
+ { name = "pydantic" },
2433
+ { name = "toml" },
2434
+ ]
2435
+ sdist = { url = "https://files.pythonhosted.org/packages/ac/84/105b7c1a0c4256f42fd9d7a69b117920b711566f1a3cd83f4b62c6c79079/pydapter-0.3.0.tar.gz", hash = "sha256:e616cf7dbf71f244b218031ca1b52f8fcf015383ebbe85bee647d518d7cc7c56", size = 371106, upload-time = "2025-05-30T17:58:48.825Z" }
2436
+ wheels = [
2437
+ { url = "https://files.pythonhosted.org/packages/21/eb/690458817b4ff29a1952fef848af5021ac48ab90c0fc06d9318237ca7e76/pydapter-0.3.0-py3-none-any.whl", hash = "sha256:edd845e06c201d825ee5c9a44bcac61946e02d41a220eb1310b8ebe7585bab3d", size = 117702, upload-time = "2025-05-30T17:58:47.662Z" },
2438
+ ]
2439
+
2440
+ [package.optional-dependencies]
2441
+ pandas = [
2442
+ { name = "pandas" },
2443
+ ]
2444
+
2362
2445
  [[package]]
2363
2446
  name = "pygments"
2364
2447
  version = "2.19.1"
@@ -1 +0,0 @@
1
- """deprecated, will be removed in v0.13.0"""
@@ -1,120 +0,0 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
3
- # SPDX-License-Identifier: Apache-2.0
4
-
5
- """
6
- Defines the `Adapter` protocol (a formal interface), along with the
7
- `AdapterRegistry` that maps string/file extensions or object keys to
8
- specific adapter implementations.
9
- """
10
-
11
- import logging
12
- from typing import Any, Protocol, TypeVar, runtime_checkable
13
-
14
- from typing_extensions import get_protocol_members
15
-
16
- T = TypeVar("T")
17
-
18
- __all__ = (
19
- "Adapter",
20
- "ADAPTER_MEMBERS",
21
- "AdapterRegistry",
22
- )
23
-
24
-
25
- @runtime_checkable
26
- class Adapter(Protocol):
27
- """
28
- Describes a two-way converter that knows how to transform an object
29
- from an external representation to an internal format, and vice versa.
30
-
31
- Attributes
32
- ----------
33
- obj_key : str
34
- A unique key or extension that identifies what format this
35
- adapter supports (e.g. ".csv", "json", "pd_dataframe").
36
-
37
- Methods
38
- -------
39
- from_obj(subj_cls: type[T], obj: Any, /, many: bool, **kwargs) -> dict|list[dict]
40
- Converts a raw external object (file contents, JSON string, etc.)
41
- into a dictionary or list of dictionaries.
42
- to_obj(subj: T, /, many: bool, **kwargs) -> Any
43
- Converts an internal object (e.g., a Pydantic-based model)
44
- into the target format (file, JSON, DataFrame, etc.).
45
- """
46
-
47
- obj_key: str
48
-
49
- @classmethod
50
- def from_obj(
51
- cls,
52
- subj_cls: type[T],
53
- obj: Any,
54
- /,
55
- *,
56
- many: bool,
57
- **kwargs,
58
- ) -> dict | list[dict]: ...
59
-
60
- @classmethod
61
- def to_obj(
62
- cls,
63
- subj: T,
64
- /,
65
- *,
66
- many: bool,
67
- **kwargs,
68
- ) -> Any: ...
69
-
70
-
71
- ADAPTER_MEMBERS = get_protocol_members(Adapter) # duck typing
72
-
73
-
74
- class AdapterRegistry:
75
-
76
- _adapters: dict[str, Adapter] = {}
77
-
78
- @classmethod
79
- def list_adapters(cls) -> list[tuple[str | type, ...]]:
80
- return list(cls._adapters.keys())
81
-
82
- @classmethod
83
- def register(cls, adapter: type[Adapter]) -> None:
84
- for member in ADAPTER_MEMBERS:
85
- if not hasattr(adapter, member):
86
- _str = getattr(adapter, "obj_key", None) or repr(adapter)
87
- _str = _str[:50] if len(_str) > 50 else _str
88
- raise AttributeError(
89
- f"Adapter {_str} missing required methods."
90
- )
91
-
92
- if isinstance(adapter, type):
93
- cls._adapters[adapter.obj_key] = adapter()
94
- else:
95
- cls._adapters[adapter.obj_key] = adapter
96
-
97
- @classmethod
98
- def get(cls, obj_key: type | str) -> Adapter:
99
- try:
100
- return cls._adapters[obj_key]
101
- except Exception as e:
102
- logging.error(f"Error getting adapter for {obj_key}. Error: {e}")
103
-
104
- @classmethod
105
- def adapt_from(
106
- cls, subj_cls: type[T], obj: Any, obj_key: type | str, **kwargs
107
- ) -> dict | list[dict]:
108
- try:
109
- return cls.get(obj_key).from_obj(subj_cls, obj, **kwargs)
110
- except Exception as e:
111
- logging.error(f"Error adapting data from {obj_key}. Error: {e}")
112
- raise e
113
-
114
- @classmethod
115
- def adapt_to(cls, subj: T, obj_key: type | str, **kwargs) -> Any:
116
- try:
117
- return cls.get(obj_key).to_obj(subj, **kwargs)
118
- except Exception as e:
119
- logging.error(f"Error adapting data to {obj_key}. Error: {e}")
120
- raise e