cocoindex 0.2.9__tar.gz → 0.2.10__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.
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.pre-commit-config.yaml +1 -1
- {cocoindex-0.2.9 → cocoindex-0.2.10}/Cargo.lock +12 -1
- {cocoindex-0.2.9 → cocoindex-0.2.10}/Cargo.toml +2 -1
- {cocoindex-0.2.9 → cocoindex-0.2.10}/PKG-INFO +1 -1
- {cocoindex-0.2.9 → cocoindex-0.2.10}/THIRD_PARTY_NOTICES.html +16 -2
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/core/settings.mdx +63 -30
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/ops/functions.md +1 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/__init__.py +8 -2
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/cli.py +0 -2
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/flow.py +5 -9
- cocoindex-0.2.10/python/cocoindex/lib.py +75 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/setting.py +5 -14
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/builder/analyzer.rs +2 -2
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/builder/flow_builder.rs +7 -3
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/db_tracking.rs +5 -1
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/db_tracking_setup.rs +1 -1
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/evaluator.rs +2 -1
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/source_indexer.rs +170 -86
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/lib_context.rs +65 -27
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/functions/split_recursively.rs +7 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/shared/postgres.rs +1 -1
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/py/convert.rs +1 -1
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/py/mod.rs +67 -19
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/service/error.rs +1 -1
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/setup/db_metadata.rs +1 -1
- cocoindex-0.2.9/python/cocoindex/lib.py +0 -32
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.cargo/config.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.env.lib_debug +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md" +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.github/scripts/update_version.sh +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.github/workflows/CI.yml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.github/workflows/_docs_release.yml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.github/workflows/_test.yml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.github/workflows/docs_release.yml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.github/workflows/docs_test.yml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.github/workflows/format.yml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.github/workflows/release.yml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/.gitignore +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/CODE_OF_CONDUCT.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/CONTRIBUTING.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/LICENSE +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/about.hbs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/about.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/dev/neo4j.yaml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/dev/postgres.yaml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/.gitignore +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/about/community.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/ai/llm.mdx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/contributing/guide.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/contributing/new_built_in_target.mdx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/contributing/setup_dev_environment.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/core/basics.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/core/cli.mdx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/core/data_example.svg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/core/data_types.mdx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/core/flow_def.mdx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/core/flow_example.svg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/core/flow_methods.mdx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/custom_ops/custom_functions.mdx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/custom_ops/custom_targets.mdx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/academic_papers_index.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/codebase_index.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/custom_targets.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/docs_to_knowledge_graph.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/document_ai.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/image_search.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/manual_extraction.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/multi_format_index.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/patient_form_extraction.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/photo_search.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/postgres_source.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/product_recommendation.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/examples/simple_vector_index.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/examples/index.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/getting_started/installation.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/getting_started/markdown_files.zip +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/getting_started/overview.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/getting_started/quickstart.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/ops/sources.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/ops/targets.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/query.mdx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/tutorials/live_updates.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docs/tutorials/manage_flow_dynamically.mdx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/docusaurus.config.ts +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/package.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/sidebars.ts +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/src/components/GitHubButton/index.tsx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/src/css/custom.css +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/src/theme/DocCard/index.tsx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/src/theme/DocCard/styles.module.css +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/src/theme/DocCardList/index.tsx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/src/theme/DocCardList/styles.module.css +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/src/theme/Root.js +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/.nojekyll +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/docusaurus.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/academic_papers_index/abstract_chunks.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/academic_papers_index/basic_info.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/academic_papers_index/chunk_embedding.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/academic_papers_index/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/academic_papers_index/first_page.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/academic_papers_index/flow.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/academic_papers_index/metadata.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/codebase_index/chunk.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/codebase_index/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/codebase_index/flow.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/custom_targets/convert.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/custom_targets/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/docs_to_knowledge_graph/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/docs_to_knowledge_graph/dedupe.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/docs_to_knowledge_graph/export_document.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/docs_to_knowledge_graph/export_relationship.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/docs_to_knowledge_graph/extract_relationship.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/docs_to_knowledge_graph/flow.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/docs_to_knowledge_graph/relationship.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/docs_to_knowledge_graph/summary.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/document_ai/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/document_ai/document_ai.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/document_ai/processor.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/image_search/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/image_search/embedding.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/image_search/flow.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/image_search/multi_modal_architecture.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/image_search/result.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/manual_extraction/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/manual_extraction/extraction.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/manual_extraction/flow.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/manual_extraction/summary.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/multi_format_index/colpali_architecture.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/multi_format_index/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/multi_format_index/embed.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/multi_format_index/flow.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/multi_format_index/pages.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/patient_form_extraction/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/patient_form_extraction/extraction.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/patient_form_extraction/fields.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/patient_form_extraction/flow.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/patient_form_extraction/tomarkdown.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/photo_search/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/photo_search/extraction.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/photo_search/flow.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/postgres_source/collector.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/postgres_source/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/postgres_source/description.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/postgres_source/embed.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/postgres_source/flow.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/postgres_source/lineage.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/postgres_source/price.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/postgres_source/source.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/product_recommendation/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/product_recommendation/dedupe.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/product_recommendation/export_all.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/product_recommendation/export_product.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/product_recommendation/export_taxonomy.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/product_recommendation/extract_product.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/product_recommendation/extract_taxonomy.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/product_recommendation/neo4j.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/product_recommendation/parse_json.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/product_recommendation/taxonomy.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/simple_vector_index/chunk.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/simple_vector_index/cover.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/simple_vector_index/embed.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/examples/simple_vector_index/flow.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/favicon.ico +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/icon.svg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/img/incremental-etl.gif +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/static/robots.txt +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/tsconfig.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/docs/yarn.lock +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/amazon_s3_embedding/.env.example +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/amazon_s3_embedding/.gitignore +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/amazon_s3_embedding/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/amazon_s3_embedding/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/amazon_s3_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/azure_blob_embedding/.env.example +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/azure_blob_embedding/.gitignore +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/azure_blob_embedding/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/azure_blob_embedding/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/azure_blob_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/code_embedding/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/code_embedding/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/code_embedding/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/code_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/custom_output_files/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/custom_output_files/.gitignore +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/custom_output_files/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/custom_output_files/data/bizarre_animals.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/custom_output_files/data/chunk_norris.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/custom_output_files/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/custom_output_files/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/docs_to_knowledge_graph/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/docs_to_knowledge_graph/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/docs_to_knowledge_graph/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/docs_to_knowledge_graph/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/face_recognition/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/face_recognition/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/face_recognition/images/Carter_welcomes_Reagan.jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/face_recognition/images/Solvay_conference_1927.jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/face_recognition/images/Steve_Jobs_and_Bill_Gates_(522695099).jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/face_recognition/images/einplanck3.jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/face_recognition/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/face_recognition/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/fastapi_server_docker/.dockerignore +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/fastapi_server_docker/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/fastapi_server_docker/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/fastapi_server_docker/compose.yaml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/fastapi_server_docker/dockerfile +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/fastapi_server_docker/files/1810.04805v2.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/fastapi_server_docker/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/fastapi_server_docker/requirements.txt +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/gdrive_text_embedding/.env.example +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/gdrive_text_embedding/.gitignore +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/gdrive_text_embedding/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/gdrive_text_embedding/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/gdrive_text_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/colpali_main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/frontend/.gitignore +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/frontend/index.html +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/frontend/package-lock.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/frontend/package.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/frontend/src/App.jsx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/frontend/src/main.jsx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/frontend/src/style.css +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/frontend/vite.config.js +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/img/cat1.jpeg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/img/dog1.jpeg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/img/elephant1.jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/img/giraffe.jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/image_search/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/live_updates/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/live_updates/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/live_updates/data/bizarre_animals.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/live_updates/data/chunk_norris.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/live_updates/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/live_updates/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/manuals_llm_extraction/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/manuals_llm_extraction/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/manuals_llm_extraction/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/manuals_llm_extraction/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/source_files/1706.03762v7.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/source_files/1810.04805v2.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/source_files/2502.06786v3.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/source_files/healthcare_industry_test_p101.jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/source_files/healthcare_industry_test_p86.jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/source_files/healthcare_industry_test_p9.jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/source_files/restaurant_brands_international_2023.jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/multi_format_indexing/source_files/sweetgreen_2023.jpg +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/paper_metadata/.env.example +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/paper_metadata/.gitignore +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/paper_metadata/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/paper_metadata/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/paper_metadata/papers/1706.03762v7.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/paper_metadata/papers/1810.04805v2.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/paper_metadata/papers/2502.06786v3.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/paper_metadata/papers/2502.20346v1.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/paper_metadata/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/patient_intake_extraction/.env.example +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/patient_intake_extraction/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/patient_intake_extraction/data/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_David_Artificial.docx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Emily_Artificial.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Joe_Artificial.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_From_Jane_Artificial.docx +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/patient_intake_extraction/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/patient_intake_extraction/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/pdf_embedding/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/pdf_embedding/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/pdf_embedding/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/pdf_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/postgres_source/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/postgres_source/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/postgres_source/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/postgres_source/prepare_source_data.sql +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/postgres_source/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/.env.example +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/.gitignore +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/img/cocoinsight.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/img/neo4j.png +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/products/p1.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/products/p2.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/products/p3.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/products/p4.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/products/p5.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/products/p6.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/products/p7.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/products/p8.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/products/p9.json +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/product_recommendation/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding/Text_Embedding.ipynb +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding_qdrant/.env +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding_qdrant/README.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding_qdrant/main.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/examples/text_embedding_qdrant/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/pyproject.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/auth_registry.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/convert.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/functions.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/index.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/llm.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/op.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/py.typed +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/runtime.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/setup.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/sources.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/subprocess_exec.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/targets.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/tests/__init__.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/tests/test_convert.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/tests/test_optional_database.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/tests/test_transform_flow.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/tests/test_typing.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/tests/test_validation.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/typing.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/user_app_loader.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/utils.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/python/cocoindex/validation.py +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/ruff.toml +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/base/duration.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/base/field_attrs.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/base/json_schema.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/base/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/base/schema.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/base/spec.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/base/value.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/builder/analyzed_flow.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/builder/exec_ctx.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/builder/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/builder/plan.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/dumper.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/indexing_status.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/live_updater.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/memoization.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/row_indexer.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/execution/stats.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/lib.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/llm/anthropic.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/llm/gemini.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/llm/litellm.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/llm/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/llm/ollama.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/llm/openai.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/llm/openrouter.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/llm/vllm.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/llm/voyage.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/factory_bases.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/functions/embed_text.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/functions/extract_by_llm.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/functions/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/functions/parse_json.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/functions/test_utils.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/interface.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/py_factory.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/registration.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/registry.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/sdk.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/shared/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/sources/amazon_s3.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/sources/azure_blob.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/sources/google_drive.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/sources/local_file.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/sources/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/sources/postgres.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/sources/shared/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/sources/shared/pattern_matcher.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/targets/kuzu.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/targets/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/targets/neo4j.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/targets/postgres.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/targets/qdrant.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/targets/shared/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/targets/shared/property_graph.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/ops/targets/shared/table_columns.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/prelude.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/server.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/service/flows.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/service/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/settings.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/setup/auth_registry.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/setup/components.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/setup/driver.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/setup/flow_features.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/setup/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/setup/states.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/utils/concur_control.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/utils/db.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/utils/deser.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/utils/fingerprint.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/utils/immutable.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/utils/mod.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/utils/retryable.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/utils/str_sanitize.rs +0 -0
- {cocoindex-0.2.9 → cocoindex-0.2.10}/src/utils/yaml_ser.rs +0 -0
@@ -1283,7 +1283,7 @@ dependencies = [
|
|
1283
1283
|
|
1284
1284
|
[[package]]
|
1285
1285
|
name = "cocoindex"
|
1286
|
-
version = "0.2.
|
1286
|
+
version = "0.2.10"
|
1287
1287
|
dependencies = [
|
1288
1288
|
"anyhow",
|
1289
1289
|
"async-openai",
|
@@ -1367,6 +1367,7 @@ dependencies = [
|
|
1367
1367
|
"tree-sitter-rust",
|
1368
1368
|
"tree-sitter-scala",
|
1369
1369
|
"tree-sitter-sequel",
|
1370
|
+
"tree-sitter-solidity",
|
1370
1371
|
"tree-sitter-swift",
|
1371
1372
|
"tree-sitter-toml-ng",
|
1372
1373
|
"tree-sitter-typescript",
|
@@ -5904,6 +5905,16 @@ dependencies = [
|
|
5904
5905
|
"tree-sitter-language",
|
5905
5906
|
]
|
5906
5907
|
|
5908
|
+
[[package]]
|
5909
|
+
name = "tree-sitter-solidity"
|
5910
|
+
version = "1.2.13"
|
5911
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
5912
|
+
checksum = "4eacf8875b70879f0cb670c60b233ad0b68752d9e1474e6c3ef168eea8a90b25"
|
5913
|
+
dependencies = [
|
5914
|
+
"cc",
|
5915
|
+
"tree-sitter-language",
|
5916
|
+
]
|
5917
|
+
|
5907
5918
|
[[package]]
|
5908
5919
|
name = "tree-sitter-swift"
|
5909
5920
|
version = "0.7.1"
|
@@ -2,7 +2,7 @@
|
|
2
2
|
name = "cocoindex"
|
3
3
|
# Version used for local development is always higher than others to take precedence.
|
4
4
|
# Will be overridden for specific release versions.
|
5
|
-
version = "0.2.
|
5
|
+
version = "0.2.10"
|
6
6
|
edition = "2024"
|
7
7
|
rust-version = "1.88"
|
8
8
|
license = "Apache-2.0"
|
@@ -101,6 +101,7 @@ tree-sitter-toml-ng = "0.7.0"
|
|
101
101
|
tree-sitter-typescript = "0.23.2"
|
102
102
|
tree-sitter-xml = "0.7.0"
|
103
103
|
tree-sitter-yaml = "0.7.1"
|
104
|
+
tree-sitter-solidity = "1.2.13"
|
104
105
|
|
105
106
|
globset = "0.4.16"
|
106
107
|
unicase = "2.8.1"
|
@@ -45,7 +45,7 @@
|
|
45
45
|
<h2>Overview of licenses:</h2>
|
46
46
|
<ul class="licenses-overview">
|
47
47
|
<li><a href="#Apache-2.0">Apache License 2.0</a> (412)</li>
|
48
|
-
<li><a href="#MIT">MIT License</a> (
|
48
|
+
<li><a href="#MIT">MIT License</a> (125)</li>
|
49
49
|
<li><a href="#Unicode-3.0">Unicode License v3</a> (19)</li>
|
50
50
|
<li><a href="#ISC">ISC License</a> (8)</li>
|
51
51
|
<li><a href="#BSD-3-Clause">BSD 3-Clause "New" or "Revised" License</a> (6)</li>
|
@@ -2428,7 +2428,7 @@ Software.
|
|
2428
2428
|
<h3 id="Apache-2.0">Apache License 2.0</h3>
|
2429
2429
|
<h4>Used by:</h4>
|
2430
2430
|
<ul class="license-used-by">
|
2431
|
-
<li><a href=" https://crates.io/crates/cocoindex ">cocoindex 0.2.
|
2431
|
+
<li><a href=" https://crates.io/crates/cocoindex ">cocoindex 0.2.10</a></li>
|
2432
2432
|
<li><a href=" https://github.com/awesomized/crc-fast-rust ">crc-fast 1.3.0</a></li>
|
2433
2433
|
<li><a href=" https://github.com/qdrant/rust-client ">qdrant-client 1.15.0</a></li>
|
2434
2434
|
</ul>
|
@@ -11376,6 +11376,20 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
|
11376
11376
|
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
11377
11377
|
DEALINGS IN THE SOFTWARE.
|
11378
11378
|
</pre>
|
11379
|
+
</li>
|
11380
|
+
<li class="license">
|
11381
|
+
<h3 id="MIT">MIT License</h3>
|
11382
|
+
<h4>Used by:</h4>
|
11383
|
+
<ul class="license-used-by">
|
11384
|
+
<li><a href=" https://github.com/JoranHonig/tree-sitter-solidity ">tree-sitter-solidity 1.2.13</a></li>
|
11385
|
+
</ul>
|
11386
|
+
<pre class="license-text">Copyright (c) 2020 Joran Honig
|
11387
|
+
|
11388
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
11389
|
+
|
11390
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
11391
|
+
|
11392
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</pre>
|
11379
11393
|
</li>
|
11380
11394
|
<li class="license">
|
11381
11395
|
<h3 id="MIT">MIT License</h3>
|
@@ -10,49 +10,82 @@ import TabItem from '@theme/TabItem';
|
|
10
10
|
|
11
11
|
Certain settings need to be provided for CocoIndex to work, e.g. database connections, app namespace, etc.
|
12
12
|
|
13
|
-
##
|
13
|
+
## Configure CocoIndex Settings
|
14
14
|
|
15
|
-
|
15
|
+
Note that in general, you have two ways to launch CocoIndex:
|
16
16
|
|
17
|
+
* Call CocoIndex APIs from your own Python application or library.
|
17
18
|
* Use [Cocoindex CLI](cli). It's handy for most routine indexing building and management tasks.
|
18
|
-
It will load settings from environment variables, either already set in your environment, or specified in `.env` file.
|
19
|
-
See [CLI](cli#environment-variables) for more details.
|
20
19
|
|
21
|
-
* Call CocoIndex functionality from your own Python application or library.
|
22
|
-
It's needed when you want to leverage CocoIndex support for query, or have your custom logic to trigger indexing, etc.
|
23
20
|
|
24
|
-
|
25
|
-
|
21
|
+
CocoIndex exposes process-level settings specified by `cocoindex.Settings` dataclass.
|
22
|
+
Settings can be configured in three different ways.
|
23
|
+
In the following sections, the later ones will override the earlier ones.
|
26
24
|
|
27
|
-
|
25
|
+
### Environment Variables
|
28
26
|
|
29
|
-
|
30
|
-
|
31
|
-
If you want to load environment variables from a specific `.env` file, consider call `load_dotenv()` provided by the [`python-dotenv`](https://github.com/theskumar/python-dotenv) package.
|
27
|
+
The simplest approach is to set corresponding environment variables.
|
28
|
+
See [List of Environment Variables](#list-of-environment-variables) for specific environment variables.
|
32
29
|
|
33
|
-
|
34
|
-
from dotenv import load_dotenv
|
35
|
-
import cocoindex
|
30
|
+
:::tip
|
36
31
|
|
37
|
-
|
38
|
-
|
39
|
-
|
32
|
+
You can consider place a `.env` file in your directory.
|
33
|
+
The [CLI](cli#environment-variables) will load environment variables from the `.env` file (see [CLI](cli#environment-variables) for more details).
|
34
|
+
From your own main module, you can also load environment variables with a package like [`python-dotenv`](https://github.com/theskumar/python-dotenv).
|
40
35
|
|
41
|
-
|
36
|
+
:::
|
37
|
+
|
38
|
+
### Setting Function
|
39
|
+
|
40
|
+
A more flexible approach is to provide a setting function that returns a `cocoindex.Settings` dataclass object.
|
41
|
+
The setting function can have any name, and needs to be decorated with the `@cocoindex.settings` decorator, for example:
|
42
|
+
|
43
|
+
```py
|
44
|
+
@cocoindex.settings
|
45
|
+
def cocoindex_settings() -> cocoindex.Settings:
|
46
|
+
return cocoindex.Settings(
|
47
|
+
database=cocoindex.DatabaseConnectionSpec(
|
48
|
+
url="postgres://cocoindex:cocoindex@localhost/cocoindex"
|
49
|
+
)
|
50
|
+
)
|
51
|
+
```
|
52
|
+
|
53
|
+
This setting function will be called once when CocoIndex is initialized.
|
54
|
+
Once the settings function is provided, environment variables will be ignored.
|
42
55
|
|
43
|
-
|
44
|
-
import cocoindex
|
56
|
+
### `cocoindex.init()` function
|
45
57
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
58
|
+
You can also call `cocoindex.init()` with a `cocoindex.Settings` dataclass object as argument, for example:
|
59
|
+
|
60
|
+
```py
|
61
|
+
cocoindex.init(
|
62
|
+
cocoindex.Settings(
|
63
|
+
database=cocoindex.DatabaseConnectionSpec(
|
64
|
+
url="postgres://cocoindex:cocoindex@localhost/cocoindex"
|
52
65
|
)
|
53
|
-
|
54
|
-
|
55
|
-
|
66
|
+
)
|
67
|
+
)
|
68
|
+
```
|
69
|
+
|
70
|
+
For example, you can call it in the main function of your application.
|
71
|
+
Once the `cocoindex.init()` is called with a `cocoindex.Settings` dataclass object as argument, the `@cocoindex.settings` function and environment variables will be ignored.
|
72
|
+
|
73
|
+
This is more flexible, as you can more easily construct `cocoindex.Settings` based on other stuffs you loaded earlier.
|
74
|
+
But be careful that if you call `cocoindex.init()` only under the path of main (e.g. within `if __name__ == "__main__":` guard), it won't be executed when you're using CocoIndex CLI, as it won't execute your main logic.
|
75
|
+
|
76
|
+
:::info
|
77
|
+
|
78
|
+
`cocoindex.init()` is optional:
|
79
|
+
|
80
|
+
- You can call `cocoindex.init()` with a `cocoindex.Settings` dataclass object as argument, or without any argument.
|
81
|
+
When without argument, the settings will be loaded from the `@cocoindex.settings` function or environment variables.
|
82
|
+
|
83
|
+
- You don't have to explicitly call `cocoindex.init()`.
|
84
|
+
CocoIndex will be automatically initialized when needed, e.g. when any method of any flow is called the first time.
|
85
|
+
But calling `cocoindex.init()` explicitly (usually at startup time, e.g. in the main function of your application) has the benefit of making sure CocoIndex library is initialized and any potential exceptions are raised earlier before proceeding with the application.
|
86
|
+
If you need this clarity, you can call it explicitly even if you don't want to provide settings by the `cocoindex.init()` call.
|
87
|
+
|
88
|
+
:::
|
56
89
|
|
57
90
|
## List of Settings
|
58
91
|
|
@@ -6,7 +6,12 @@ from . import functions, sources, targets, cli, utils
|
|
6
6
|
|
7
7
|
from . import targets as storages # Deprecated: Use targets instead
|
8
8
|
|
9
|
-
from .auth_registry import
|
9
|
+
from .auth_registry import (
|
10
|
+
AuthEntryReference,
|
11
|
+
add_auth_entry,
|
12
|
+
add_transient_auth_entry,
|
13
|
+
ref_auth_entry,
|
14
|
+
)
|
10
15
|
from .flow import FlowBuilder, DataScope, DataSlice, Flow, transform_flow
|
11
16
|
from .flow import flow_def
|
12
17
|
from .flow import EvaluateAndDumpOptions, GeneratedField
|
@@ -14,7 +19,7 @@ from .flow import FlowLiveUpdater, FlowLiveUpdaterOptions, FlowUpdaterStatusUpda
|
|
14
19
|
from .flow import open_flow
|
15
20
|
from .flow import add_flow_def, remove_flow # DEPRECATED
|
16
21
|
from .flow import update_all_flows_async, setup_all_flows, drop_all_flows
|
17
|
-
from .lib import init, start_server, stop
|
22
|
+
from .lib import settings, init, start_server, stop
|
18
23
|
from .llm import LlmSpec, LlmApiType
|
19
24
|
from .index import VectorSimilarityMetric, VectorIndexDef, IndexOptions
|
20
25
|
from .setting import DatabaseConnectionSpec, Settings, ServerSettings
|
@@ -65,6 +70,7 @@ __all__ = [
|
|
65
70
|
"setup_all_flows",
|
66
71
|
"drop_all_flows",
|
67
72
|
# Lib
|
73
|
+
"settings",
|
68
74
|
"init",
|
69
75
|
"start_server",
|
70
76
|
"stop",
|
@@ -694,16 +694,11 @@ class Flow:
|
|
694
694
|
"""
|
695
695
|
|
696
696
|
_name: str
|
697
|
-
_full_name: str
|
698
697
|
_lazy_engine_flow: Callable[[], _engine.Flow] | None
|
699
698
|
|
700
|
-
def __init__(
|
701
|
-
self, name: str, full_name: str, engine_flow_creator: Callable[[], _engine.Flow]
|
702
|
-
):
|
699
|
+
def __init__(self, name: str, engine_flow_creator: Callable[[], _engine.Flow]):
|
703
700
|
validate_flow_name(name)
|
704
|
-
validate_full_flow_name(full_name)
|
705
701
|
self._name = name
|
706
|
-
self._full_name = full_name
|
707
702
|
engine_flow = None
|
708
703
|
lock = Lock()
|
709
704
|
|
@@ -762,7 +757,7 @@ class Flow:
|
|
762
757
|
"""
|
763
758
|
Get the full name of the flow.
|
764
759
|
"""
|
765
|
-
return self.
|
760
|
+
return get_flow_full_name(self._name)
|
766
761
|
|
767
762
|
def update(self, /, *, reexport_targets: bool = False) -> _engine.IndexUpdateInfo:
|
768
763
|
"""
|
@@ -861,9 +856,10 @@ def _create_lazy_flow(
|
|
861
856
|
The flow will be built the first time when it's really needed.
|
862
857
|
"""
|
863
858
|
flow_name = _flow_name_builder.build_name(name, prefix="_flow_")
|
864
|
-
flow_full_name = get_flow_full_name(flow_name)
|
865
859
|
|
866
860
|
def _create_engine_flow() -> _engine.Flow:
|
861
|
+
flow_full_name = get_flow_full_name(flow_name)
|
862
|
+
validate_full_flow_name(flow_full_name)
|
867
863
|
flow_builder_state = _FlowBuilderState(flow_full_name)
|
868
864
|
root_scope = DataScope(
|
869
865
|
flow_builder_state, flow_builder_state.engine_flow_builder.root_scope()
|
@@ -873,7 +869,7 @@ def _create_lazy_flow(
|
|
873
869
|
execution_context.event_loop
|
874
870
|
)
|
875
871
|
|
876
|
-
return Flow(flow_name,
|
872
|
+
return Flow(flow_name, _create_engine_flow)
|
877
873
|
|
878
874
|
|
879
875
|
_flows_lock = Lock()
|
@@ -0,0 +1,75 @@
|
|
1
|
+
"""
|
2
|
+
Library level functions and states.
|
3
|
+
"""
|
4
|
+
|
5
|
+
import threading
|
6
|
+
import warnings
|
7
|
+
|
8
|
+
from . import _engine # type: ignore
|
9
|
+
from . import flow, setting
|
10
|
+
from .convert import dump_engine_object
|
11
|
+
from .validation import validate_app_namespace_name
|
12
|
+
from typing import Any, Callable, overload
|
13
|
+
|
14
|
+
|
15
|
+
def prepare_settings(settings: setting.Settings) -> Any:
|
16
|
+
"""Prepare the settings for the engine."""
|
17
|
+
if settings.app_namespace:
|
18
|
+
validate_app_namespace_name(settings.app_namespace)
|
19
|
+
return dump_engine_object(settings)
|
20
|
+
|
21
|
+
|
22
|
+
_engine.set_settings_fn(lambda: prepare_settings(setting.Settings.from_env()))
|
23
|
+
|
24
|
+
|
25
|
+
_prev_settings_fn: Callable[[], setting.Settings] | None = None
|
26
|
+
_prev_settings_fn_lock: threading.Lock = threading.Lock()
|
27
|
+
|
28
|
+
|
29
|
+
@overload
|
30
|
+
def settings(fn: Callable[[], setting.Settings]) -> Callable[[], setting.Settings]: ...
|
31
|
+
@overload
|
32
|
+
def settings(
|
33
|
+
fn: None,
|
34
|
+
) -> Callable[[Callable[[], setting.Settings]], Callable[[], setting.Settings]]: ...
|
35
|
+
def settings(fn: Callable[[], setting.Settings] | None = None) -> Any:
|
36
|
+
"""
|
37
|
+
Decorate a function that returns a settings.Settings object.
|
38
|
+
It registers the function as a settings provider.
|
39
|
+
"""
|
40
|
+
|
41
|
+
def _inner(fn: Callable[[], setting.Settings]) -> Callable[[], setting.Settings]:
|
42
|
+
global _prev_settings_fn # pylint: disable=global-statement
|
43
|
+
with _prev_settings_fn_lock:
|
44
|
+
if _prev_settings_fn is not None:
|
45
|
+
warnings.warn(
|
46
|
+
f"Setting a new settings function will override the previous one {_prev_settings_fn}."
|
47
|
+
)
|
48
|
+
_prev_settings_fn = fn
|
49
|
+
_engine.set_settings_fn(lambda: prepare_settings(fn()))
|
50
|
+
return fn
|
51
|
+
|
52
|
+
if fn is not None:
|
53
|
+
return _inner(fn)
|
54
|
+
else:
|
55
|
+
return _inner
|
56
|
+
|
57
|
+
|
58
|
+
def init(settings: setting.Settings | None = None) -> None:
|
59
|
+
"""
|
60
|
+
Initialize the cocoindex library.
|
61
|
+
|
62
|
+
If the settings are not provided, they are loaded from the environment variables.
|
63
|
+
"""
|
64
|
+
_engine.init(prepare_settings(settings) if settings is not None else None)
|
65
|
+
|
66
|
+
|
67
|
+
def start_server(settings: setting.ServerSettings) -> None:
|
68
|
+
"""Start the cocoindex server."""
|
69
|
+
flow.ensure_all_flows_built()
|
70
|
+
_engine.start_server(settings.__dict__)
|
71
|
+
|
72
|
+
|
73
|
+
def stop() -> None:
|
74
|
+
"""Stop the cocoindex library."""
|
75
|
+
_engine.stop()
|
@@ -6,16 +6,15 @@ import os
|
|
6
6
|
|
7
7
|
from typing import Callable, Self, Any, overload
|
8
8
|
from dataclasses import dataclass
|
9
|
-
from .
|
10
|
-
|
11
|
-
_app_namespace: str = ""
|
9
|
+
from . import _engine # type: ignore
|
12
10
|
|
13
11
|
|
14
12
|
def get_app_namespace(*, trailing_delimiter: str | None = None) -> str:
|
15
13
|
"""Get the application namespace. Append the `trailing_delimiter` if not empty."""
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
app_namespace: str = _engine.get_app_namespace()
|
15
|
+
if app_namespace == "" or trailing_delimiter is None:
|
16
|
+
return app_namespace
|
17
|
+
return f"{app_namespace}{trailing_delimiter}"
|
19
18
|
|
20
19
|
|
21
20
|
def split_app_namespace(full_name: str, delimiter: str) -> tuple[str, str]:
|
@@ -26,14 +25,6 @@ def split_app_namespace(full_name: str, delimiter: str) -> tuple[str, str]:
|
|
26
25
|
return (parts[0], parts[1])
|
27
26
|
|
28
27
|
|
29
|
-
def set_app_namespace(app_namespace: str) -> None:
|
30
|
-
"""Set the application namespace."""
|
31
|
-
if app_namespace:
|
32
|
-
validate_app_namespace_name(app_namespace)
|
33
|
-
global _app_namespace # pylint: disable=global-statement
|
34
|
-
_app_namespace = app_namespace
|
35
|
-
|
36
|
-
|
37
28
|
@dataclass
|
38
29
|
class DatabaseConnectionSpec:
|
39
30
|
"""
|
@@ -995,7 +995,7 @@ pub async fn analyze_flow(
|
|
995
995
|
impl Future<Output = Result<ExecutionPlan>> + Send + use<>,
|
996
996
|
)> {
|
997
997
|
let analyzer_ctx = AnalyzerContext {
|
998
|
-
lib_ctx: get_lib_context()?,
|
998
|
+
lib_ctx: get_lib_context().await?,
|
999
999
|
flow_ctx,
|
1000
1000
|
};
|
1001
1001
|
let root_data_scope = Arc::new(Mutex::new(DataScopeBuilder::new()));
|
@@ -1109,7 +1109,7 @@ pub async fn analyze_transient_flow<'a>(
|
|
1109
1109
|
)> {
|
1110
1110
|
let mut root_data_scope = DataScopeBuilder::new();
|
1111
1111
|
let analyzer_ctx = AnalyzerContext {
|
1112
|
-
lib_ctx: get_lib_context()?,
|
1112
|
+
lib_ctx: get_lib_context().await?,
|
1113
1113
|
flow_ctx,
|
1114
1114
|
};
|
1115
1115
|
let mut input_fields = vec![];
|
@@ -18,7 +18,7 @@ use crate::{
|
|
18
18
|
},
|
19
19
|
lib_context::LibContext,
|
20
20
|
ops::interface::FlowInstanceContext,
|
21
|
-
py::IntoPyResult,
|
21
|
+
py::{AnyhowIntoPyResult, IntoPyResult},
|
22
22
|
};
|
23
23
|
use crate::{lib_context::FlowContext, py};
|
24
24
|
|
@@ -247,8 +247,12 @@ pub struct FlowBuilder {
|
|
247
247
|
#[pymethods]
|
248
248
|
impl FlowBuilder {
|
249
249
|
#[new]
|
250
|
-
pub fn new(name: &str) -> PyResult<Self> {
|
251
|
-
let lib_context =
|
250
|
+
pub fn new(py: Python<'_>, name: &str) -> PyResult<Self> {
|
251
|
+
let lib_context = py
|
252
|
+
.allow_threads(|| -> anyhow::Result<Arc<LibContext>> {
|
253
|
+
get_runtime().block_on(get_lib_context())
|
254
|
+
})
|
255
|
+
.into_py_result()?;
|
252
256
|
let root_op_scope = OpScope::new(
|
253
257
|
spec::ROOT_SCOPE_NAME.to_string(),
|
254
258
|
None,
|
@@ -294,6 +294,8 @@ pub struct TrackedSourceKeyMetadata {
|
|
294
294
|
pub processed_source_ordinal: Option<i64>,
|
295
295
|
pub processed_source_fp: Option<Vec<u8>>,
|
296
296
|
pub process_logic_fingerprint: Option<Vec<u8>>,
|
297
|
+
pub max_process_ordinal: Option<i64>,
|
298
|
+
pub process_ordinal: Option<i64>,
|
297
299
|
}
|
298
300
|
|
299
301
|
pub struct ListTrackedSourceKeyMetadataState {
|
@@ -314,7 +316,9 @@ impl ListTrackedSourceKeyMetadataState {
|
|
314
316
|
pool: &'a PgPool,
|
315
317
|
) -> impl Stream<Item = Result<TrackedSourceKeyMetadata, sqlx::Error>> + 'a {
|
316
318
|
self.query_str = format!(
|
317
|
-
"SELECT
|
319
|
+
"SELECT \
|
320
|
+
source_key, processed_source_ordinal, {}, process_logic_fingerprint, max_process_ordinal, process_ordinal \
|
321
|
+
FROM {} WHERE source_id = $1",
|
318
322
|
if db_setup.has_fast_fingerprint_column {
|
319
323
|
"processed_source_fp"
|
320
324
|
} else {
|
@@ -252,7 +252,7 @@ impl ResourceSetupChange for TrackingTableSetupChange {
|
|
252
252
|
|
253
253
|
impl TrackingTableSetupChange {
|
254
254
|
pub async fn apply_change(&self) -> Result<()> {
|
255
|
-
let lib_context = get_lib_context()?;
|
255
|
+
let lib_context = get_lib_context().await?;
|
256
256
|
let pool = lib_context.require_builtin_db_pool()?;
|
257
257
|
if let Some(desired) = &self.desired_state {
|
258
258
|
for lagacy_name in self.legacy_tracking_table_names.iter() {
|
@@ -5,7 +5,7 @@ use futures::future::try_join_all;
|
|
5
5
|
|
6
6
|
use crate::base::value::EstimatedByteSize;
|
7
7
|
use crate::builder::{AnalyzedTransientFlow, plan::*};
|
8
|
-
use crate::py::
|
8
|
+
use crate::py::AnyhowIntoPyResult;
|
9
9
|
use crate::{
|
10
10
|
base::{schema, value},
|
11
11
|
utils::immutable::RefList,
|
@@ -73,6 +73,7 @@ impl ScopeValueBuilder {
|
|
73
73
|
.zip(&mut builder.fields)
|
74
74
|
{
|
75
75
|
r.set(augmented_value(v, &t.value_type.typ)?)
|
76
|
+
.map_err(|_| anyhow!("Value of field `{}` is already set", t.name))
|
76
77
|
.into_py_result()?;
|
77
78
|
}
|
78
79
|
Ok(builder)
|