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.
- {lionagi-0.12.4 → lionagi-0.12.5}/PKG-INFO +2 -3
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/pile.py +76 -29
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/graph/node.py +25 -19
- lionagi-0.12.5/lionagi/version.py +1 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/pyproject.toml +2 -3
- {lionagi-0.12.4 → lionagi-0.12.5}/uv.lock +88 -5
- lionagi-0.12.4/lionagi/adapters/__init__.py +0 -1
- lionagi-0.12.4/lionagi/adapters/adapter.py +0 -120
- lionagi-0.12.4/lionagi/adapters/json_adapter.py +0 -181
- lionagi-0.12.4/lionagi/adapters/pandas_/csv_adapter.py +0 -94
- lionagi-0.12.4/lionagi/adapters/pandas_/excel_adapter.py +0 -94
- lionagi-0.12.4/lionagi/adapters/pandas_/pd_dataframe_adapter.py +0 -81
- lionagi-0.12.4/lionagi/adapters/pandas_/pd_series_adapter.py +0 -57
- lionagi-0.12.4/lionagi/adapters/toml_adapter.py +0 -204
- lionagi-0.12.4/lionagi/adapters/types.py +0 -21
- lionagi-0.12.4/lionagi/service/third_party/__init__.py +0 -0
- lionagi-0.12.4/lionagi/version.py +0 -1
- {lionagi-0.12.4 → lionagi-0.12.5}/.coveragerc +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/.env.example +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/.github/FUNDING.yml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/.github/dependabot.yml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/.github/workflows/ci.yml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/.github/workflows/codeql.yml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/.github/workflows/docs.yml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/.github/workflows/release.yml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/.gitignore +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/.pre-commit-config.yaml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/.python-version +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/CODE_OF_CONDUCT.md +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/CONTRIBUTING.md +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/LICENSE +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/README.md +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/cookbooks/ch01_get_started.md +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/cookbooks/ch02_concepts.md +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/Makefile +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/_static/custom.css +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/_templates/layout.html +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/conf.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/index.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/action.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/adapter.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/branch.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/branch_operations.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/concepts.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/element_id.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/event.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/form.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/graph.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/index.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/instruct.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/lib_file.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/lib_nested.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/lib_package.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/lib_schema.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/lib_validate.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/log.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/mail.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/message.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/models.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/operative_step.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/pile.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/processor.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/progression.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/service.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/session.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/modules/utils.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/tutorials/get_started.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/tutorials/get_started_pt2.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/tutorials/get_started_pt3.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/docs/tutorials/index.rst +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/_class_registry.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/_errors.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/_types.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/config.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/action.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/base.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/code.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/file.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/instruct.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/reason.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/fields/research.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/chunk.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/concat.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/concat_files.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/file_ops.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/params.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/process.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/file/save.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/flatten.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/nfilter.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/nget.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/ninsert.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/nmerge.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/npop.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/nset.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/unflatten.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/nested/utils.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/package/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/package/imports.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/package/management.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/package/params.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/package/system.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/parse.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/as_readable.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/extract_code_block.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/extract_docstring.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/function_to_schema.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/json_schema.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
- {lionagi-0.12.4/lionagi/adapters/pandas_ → lionagi-0.12.5/lionagi/libs/token_transform}/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/base.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/llmlingua.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/perplexity.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/token_transform/types.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/common_field_validators.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/string_similarity.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/libs/validate/validate_boolean.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/field_model.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/hashable_model.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/model_params.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/note.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/operable_model.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/models/schema_model.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/ReAct/ReAct.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/ReAct/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/ReAct/utils.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/_act/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/_act/act.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/brainstorm/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/brainstorm/brainstorm.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/brainstorm/prompt.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/chat/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/chat/chat.py +0 -0
- {lionagi-0.12.4/lionagi/libs/token_transform → lionagi-0.12.5/lionagi/operations/communicate}/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/communicate/communicate.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/instruct/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/instruct/instruct.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/interpret/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/interpret/interpret.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/manager.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/operate/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/operate/operate.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/parse/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/parse/parse.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/plan/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/plan/plan.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/plan/prompt.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/select/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/select/select.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/select/utils.py +0 -0
- {lionagi-0.12.4/lionagi/operations/communicate → lionagi-0.12.5/lionagi/operations/translate}/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/translate/translate.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/types.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/operations/utils.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/_concepts.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/action/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/action/function_calling.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/action/manager.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/action/tool.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/forms/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/forms/base.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/forms/flow.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/forms/form.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/forms/report.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/element.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/event.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/log.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/processor.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/generic/progression.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/graph/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/graph/edge.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/graph/graph.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/exchange.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/mail.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/mailbox.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/manager.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/mail/package.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/action_request.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/action_response.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/assistant_response.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/base.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/instruction.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/manager.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/message.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/system.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/README.md +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/operatives/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/operatives/operative.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/operatives/step.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/protocols/types.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/py.typed +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/api_calling.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/endpoint.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/endpoint_config.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/header_factory.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/match_endpoint.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/anthropic_.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/exa_.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/oai_.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/ollama_.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/connections/providers/perplexity_.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/imodel.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/manager.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/rate_limited_processor.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/resilience.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/third_party/README.md +0 -0
- {lionagi-0.12.4/lionagi/operations/translate → lionagi-0.12.5/lionagi/service/third_party}/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/third_party/anthropic_models.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/third_party/exa_models.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/third_party/openai_models.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/third_party/pplx_models.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/token_calculator.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/service/types.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/session/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/session/branch.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/session/prompts.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/session/session.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/settings.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/base.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/file/__init__.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/file/reader.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/memory/tools.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/tools/types.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/lionagi/utils.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/main.py +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/scripts/README.md +0 -0
- {lionagi-0.12.4 → lionagi-0.12.5}/scripts/concat.py +0 -0
- {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.
|
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:
|
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
|
-
|
49
|
-
|
50
|
-
|
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
|
-
|
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] =
|
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
|
-
|
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
|
-
|
972
|
-
|
973
|
-
|
974
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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, "
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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] =
|
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.
|
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.
|
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
|