cocoindex 0.1.34__tar.gz → 0.1.35__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. {cocoindex-0.1.34 → cocoindex-0.1.35}/Cargo.lock +1 -1
  2. {cocoindex-0.1.34 → cocoindex-0.1.35}/Cargo.toml +1 -1
  3. {cocoindex-0.1.34 → cocoindex-0.1.35}/PKG-INFO +1 -1
  4. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/gdrive_text_embedding/main.py +3 -3
  5. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/__init__.py +1 -1
  6. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/cli.py +7 -10
  7. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/flow.py +63 -36
  8. {cocoindex-0.1.34 → cocoindex-0.1.35}/.cargo/config.toml +0 -0
  9. {cocoindex-0.1.34 → cocoindex-0.1.35}/.env.lib_debug +0 -0
  10. {cocoindex-0.1.34 → cocoindex-0.1.35}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
  11. {cocoindex-0.1.34 → cocoindex-0.1.35}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md" +0 -0
  12. {cocoindex-0.1.34 → cocoindex-0.1.35}/.github/scripts/update_version.sh +0 -0
  13. {cocoindex-0.1.34 → cocoindex-0.1.35}/.github/workflows/CI.yml +0 -0
  14. {cocoindex-0.1.34 → cocoindex-0.1.35}/.github/workflows/_test.yml +0 -0
  15. {cocoindex-0.1.34 → cocoindex-0.1.35}/.github/workflows/docs.yml +0 -0
  16. {cocoindex-0.1.34 → cocoindex-0.1.35}/.github/workflows/release.yml +0 -0
  17. {cocoindex-0.1.34 → cocoindex-0.1.35}/.gitignore +0 -0
  18. {cocoindex-0.1.34 → cocoindex-0.1.35}/.vscode/settings.json +0 -0
  19. {cocoindex-0.1.34 → cocoindex-0.1.35}/CODE_OF_CONDUCT.md +0 -0
  20. {cocoindex-0.1.34 → cocoindex-0.1.35}/CONTRIBUTING.md +0 -0
  21. {cocoindex-0.1.34 → cocoindex-0.1.35}/LICENSE +0 -0
  22. {cocoindex-0.1.34 → cocoindex-0.1.35}/README.md +0 -0
  23. {cocoindex-0.1.34 → cocoindex-0.1.35}/dev/neo4j.yaml +0 -0
  24. {cocoindex-0.1.34 → cocoindex-0.1.35}/dev/postgres.yaml +0 -0
  25. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/.gitignore +0 -0
  26. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/README.md +0 -0
  27. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/about/community.md +0 -0
  28. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/about/contributing.md +0 -0
  29. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/ai/llm.mdx +0 -0
  30. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/core/basics.md +0 -0
  31. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/core/cli.mdx +0 -0
  32. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/core/custom_function.mdx +0 -0
  33. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/core/data_example.svg +0 -0
  34. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/core/data_types.mdx +0 -0
  35. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/core/flow_def.mdx +0 -0
  36. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/core/flow_example.svg +0 -0
  37. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/core/flow_methods.mdx +0 -0
  38. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/core/initialization.mdx +0 -0
  39. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/getting_started/installation.md +0 -0
  40. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/getting_started/markdown_files.zip +0 -0
  41. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/getting_started/overview.md +0 -0
  42. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/getting_started/quickstart.md +0 -0
  43. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/ops/functions.md +0 -0
  44. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/ops/sources.md +0 -0
  45. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docs/ops/storages.md +0 -0
  46. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/docusaurus.config.ts +0 -0
  47. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/package.json +0 -0
  48. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/sidebars.ts +0 -0
  49. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/src/components/HomepageFeatures/index.tsx +0 -0
  50. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/src/components/HomepageFeatures/styles.module.css +0 -0
  51. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/src/css/custom.css +0 -0
  52. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/src/theme/Root.js +0 -0
  53. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/static/.nojekyll +0 -0
  54. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/static/img/docusaurus.png +0 -0
  55. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/static/img/favicon.ico +0 -0
  56. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/static/img/icon.svg +0 -0
  57. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/static/robots.txt +0 -0
  58. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/tsconfig.json +0 -0
  59. {cocoindex-0.1.34 → cocoindex-0.1.35}/docs/yarn.lock +0 -0
  60. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/code_embedding/.env +0 -0
  61. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/code_embedding/README.md +0 -0
  62. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/code_embedding/main.py +0 -0
  63. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/code_embedding/pyproject.toml +0 -0
  64. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/docs_to_knowledge_graph/.env +0 -0
  65. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/docs_to_knowledge_graph/README.md +0 -0
  66. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/docs_to_knowledge_graph/main.py +0 -0
  67. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/docs_to_knowledge_graph/markdown_files/1706.03762v7.md +0 -0
  68. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/docs_to_knowledge_graph/markdown_files/1810.04805v2.md +0 -0
  69. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/docs_to_knowledge_graph/markdown_files/rfc8259.md +0 -0
  70. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/docs_to_knowledge_graph/pyproject.toml +0 -0
  71. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/fastapi_server_docker/.dockerignore +0 -0
  72. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/fastapi_server_docker/.env +0 -0
  73. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/fastapi_server_docker/README.md +0 -0
  74. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/fastapi_server_docker/compose.yaml +0 -0
  75. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/fastapi_server_docker/dockerfile +0 -0
  76. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/fastapi_server_docker/main.py +0 -0
  77. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/fastapi_server_docker/requirements.txt +0 -0
  78. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/fastapi_server_docker/sample_code/main.py +0 -0
  79. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/fastapi_server_docker/src/cocoindex_funs.py +0 -0
  80. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/gdrive_text_embedding/.env.example +0 -0
  81. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/gdrive_text_embedding/.gitignore +0 -0
  82. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/gdrive_text_embedding/README.md +0 -0
  83. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/gdrive_text_embedding/data/1706.03762v7.docx +0 -0
  84. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/gdrive_text_embedding/data/1810.04805v2.docx +0 -0
  85. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/gdrive_text_embedding/pyproject.toml +0 -0
  86. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/.env +0 -0
  87. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/README.md +0 -0
  88. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/frontend/.gitignore +0 -0
  89. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/frontend/index.html +0 -0
  90. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/frontend/package-lock.json +0 -0
  91. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/frontend/package.json +0 -0
  92. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/frontend/src/App.jsx +0 -0
  93. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/frontend/src/main.jsx +0 -0
  94. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/frontend/src/style.css +0 -0
  95. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/frontend/vite.config.js +0 -0
  96. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/img/cat1.jpeg +0 -0
  97. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/img/dog1.jpeg +0 -0
  98. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/img/elephant1.jpg +0 -0
  99. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/img/giraffe.jpg +0 -0
  100. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/main.py +0 -0
  101. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/image_search_example/requirements.txt +0 -0
  102. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/manuals_llm_extraction/.env +0 -0
  103. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/manuals_llm_extraction/README.md +0 -0
  104. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/manuals_llm_extraction/main.py +0 -0
  105. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
  106. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
  107. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
  108. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
  109. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/manuals_llm_extraction/pyproject.toml +0 -0
  110. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/pdf_embedding/.env +0 -0
  111. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/pdf_embedding/README.md +0 -0
  112. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/pdf_embedding/main.py +0 -0
  113. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
  114. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
  115. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
  116. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/pdf_embedding/pyproject.toml +0 -0
  117. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/.env +0 -0
  118. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/README.md +0 -0
  119. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/img/cocoinsight.png +0 -0
  120. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/img/neo4j.png +0 -0
  121. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/main.py +0 -0
  122. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/products/p1.json +0 -0
  123. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/products/p2.json +0 -0
  124. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/products/p3.json +0 -0
  125. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/products/p4.json +0 -0
  126. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/products/p5.json +0 -0
  127. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/products/p6.json +0 -0
  128. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/products/p7.json +0 -0
  129. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/products/p8.json +0 -0
  130. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/products/p9.json +0 -0
  131. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/product_taxonomy_knowledge_graph/pyproject.toml +0 -0
  132. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding/.env +0 -0
  133. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding/README.md +0 -0
  134. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding/Text_Embedding.ipynb +0 -0
  135. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding/main.py +0 -0
  136. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
  137. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
  138. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
  139. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding/pyproject.toml +0 -0
  140. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding_qdrant/.env +0 -0
  141. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding_qdrant/README.md +0 -0
  142. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding_qdrant/main.py +0 -0
  143. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
  144. {cocoindex-0.1.34 → cocoindex-0.1.35}/examples/text_embedding_qdrant/pyproject.toml +0 -0
  145. {cocoindex-0.1.34 → cocoindex-0.1.35}/pyproject.toml +0 -0
  146. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/auth_registry.py +0 -0
  147. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/convert.py +0 -0
  148. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/functions.py +0 -0
  149. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/index.py +0 -0
  150. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/lib.py +0 -0
  151. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/llm.py +0 -0
  152. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/op.py +0 -0
  153. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/py.typed +0 -0
  154. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/query.py +0 -0
  155. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/runtime.py +0 -0
  156. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/setting.py +0 -0
  157. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/setup.py +0 -0
  158. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/sources.py +0 -0
  159. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/storages.py +0 -0
  160. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/tests/__init__.py +0 -0
  161. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/tests/test_convert.py +0 -0
  162. {cocoindex-0.1.34 → cocoindex-0.1.35}/python/cocoindex/typing.py +0 -0
  163. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/base/field_attrs.rs +0 -0
  164. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/base/json_schema.rs +0 -0
  165. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/base/mod.rs +0 -0
  166. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/base/schema.rs +0 -0
  167. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/base/spec.rs +0 -0
  168. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/base/value.rs +0 -0
  169. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/builder/analyzed_flow.rs +0 -0
  170. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/builder/analyzer.rs +0 -0
  171. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/builder/flow_builder.rs +0 -0
  172. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/builder/mod.rs +0 -0
  173. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/builder/plan.rs +0 -0
  174. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/db_tracking.rs +0 -0
  175. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/db_tracking_setup.rs +0 -0
  176. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/dumper.rs +0 -0
  177. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/evaluator.rs +0 -0
  178. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/live_updater.rs +0 -0
  179. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/memoization.rs +0 -0
  180. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/mod.rs +0 -0
  181. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/query.rs +0 -0
  182. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/row_indexer.rs +0 -0
  183. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/source_indexer.rs +0 -0
  184. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/execution/stats.rs +0 -0
  185. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/lib.rs +0 -0
  186. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/lib_context.rs +0 -0
  187. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/llm/anthropic.rs +0 -0
  188. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/llm/gemini.rs +0 -0
  189. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/llm/mod.rs +0 -0
  190. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/llm/ollama.rs +0 -0
  191. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/llm/openai.rs +0 -0
  192. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/factory_bases.rs +0 -0
  193. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/functions/extract_by_llm.rs +0 -0
  194. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/functions/mod.rs +0 -0
  195. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/functions/parse_json.rs +0 -0
  196. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/functions/split_recursively.rs +0 -0
  197. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/interface.rs +0 -0
  198. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/mod.rs +0 -0
  199. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/py_factory.rs +0 -0
  200. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/registration.rs +0 -0
  201. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/registry.rs +0 -0
  202. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/sdk.rs +0 -0
  203. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/sources/google_drive.rs +0 -0
  204. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/sources/local_file.rs +0 -0
  205. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/sources/mod.rs +0 -0
  206. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/storages/mod.rs +0 -0
  207. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/storages/neo4j.rs +0 -0
  208. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/storages/postgres.rs +0 -0
  209. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/storages/qdrant.rs +0 -0
  210. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/ops/storages/spec.rs +0 -0
  211. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/prelude.rs +0 -0
  212. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/py/convert.rs +0 -0
  213. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/py/mod.rs +0 -0
  214. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/server.rs +0 -0
  215. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/service/error.rs +0 -0
  216. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/service/flows.rs +0 -0
  217. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/service/mod.rs +0 -0
  218. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/service/search.rs +0 -0
  219. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/settings.rs +0 -0
  220. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/setup/auth_registry.rs +0 -0
  221. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/setup/components.rs +0 -0
  222. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/setup/db_metadata.rs +0 -0
  223. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/setup/driver.rs +0 -0
  224. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/setup/mod.rs +0 -0
  225. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/setup/states.rs +0 -0
  226. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/utils/db.rs +0 -0
  227. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/utils/fingerprint.rs +0 -0
  228. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/utils/immutable.rs +0 -0
  229. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/utils/mod.rs +0 -0
  230. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/utils/retriable.rs +0 -0
  231. {cocoindex-0.1.34 → cocoindex-0.1.35}/src/utils/yaml_ser.rs +0 -0
@@ -533,7 +533,7 @@ dependencies = [
533
533
 
534
534
  [[package]]
535
535
  name = "cocoindex"
536
- version = "0.1.34"
536
+ version = "0.1.35"
537
537
  dependencies = [
538
538
  "anyhow",
539
539
  "async-openai",
@@ -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.1.34"
5
+ version = "0.1.35"
6
6
  edition = "2021"
7
7
 
8
8
  [profile.release]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cocoindex
3
- Version: 0.1.34
3
+ Version: 0.1.35
4
4
  Requires-Dist: sentence-transformers>=3.3.1
5
5
  Requires-Dist: click>=8.1.8
6
6
  Requires-Dist: rich>=14.0.0
@@ -53,9 +53,9 @@ query_handler = cocoindex.query.SimpleSemanticsQueryHandler(
53
53
  default_similarity_metric=cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY)
54
54
 
55
55
  @cocoindex.main_fn()
56
- async def _run():
56
+ def _run():
57
57
  # Use a `FlowLiveUpdater` to keep the flow data updated.
58
- async with cocoindex.FlowLiveUpdater(gdrive_text_embedding_flow):
58
+ with cocoindex.FlowLiveUpdater(gdrive_text_embedding_flow):
59
59
  # Run queries in a loop to demonstrate the query capabilities.
60
60
  while True:
61
61
  try:
@@ -74,4 +74,4 @@ async def _run():
74
74
 
75
75
  if __name__ == "__main__":
76
76
  load_dotenv(override=True)
77
- asyncio.run(_run())
77
+ _run()
@@ -4,7 +4,7 @@ Cocoindex is a framework for building and running indexing pipelines.
4
4
  from . import functions, query, sources, storages, cli
5
5
  from .flow import FlowBuilder, DataScope, DataSlice, Flow, flow_def
6
6
  from .flow import EvaluateAndDumpOptions, GeneratedField
7
- from .flow import update_all_flows, FlowLiveUpdater, FlowLiveUpdaterOptions
7
+ from .flow import update_all_flows_async, FlowLiveUpdater, FlowLiveUpdaterOptions
8
8
  from .llm import LlmSpec, LlmApiType
9
9
  from .index import VectorSimilarityMetric, VectorIndexDef, IndexOptions
10
10
  from .auth_registry import AuthEntryReference, add_auth_entry, ref_auth_entry
@@ -1,4 +1,3 @@
1
- import asyncio
2
1
  import click
3
2
  import datetime
4
3
 
@@ -7,7 +6,6 @@ from rich.table import Table
7
6
 
8
7
  from . import flow, lib, setting
9
8
  from .setup import sync_setup, drop_setup, flow_names_with_setup, apply_setup_changes
10
- from .runtime import execution_context
11
9
 
12
10
  @click.group()
13
11
  def cli():
@@ -136,13 +134,12 @@ def update(flow_name: str | None, live: bool, quiet: bool):
136
134
  Update the index to reflect the latest data from data sources.
137
135
  """
138
136
  options = flow.FlowLiveUpdaterOptions(live_mode=live, print_stats=not quiet)
139
- async def _update():
140
- if flow_name is None:
141
- await flow.update_all_flows(options)
142
- else:
143
- updater = await flow.FlowLiveUpdater.create(_flow_by_name(flow_name), options)
144
- await updater.wait()
145
- execution_context.run(_update())
137
+ if flow_name is None:
138
+ return flow.update_all_flows(options)
139
+ else:
140
+ with flow.FlowLiveUpdater(_flow_by_name(flow_name), options) as updater:
141
+ updater.wait()
142
+ return updater.update_stats()
146
143
 
147
144
  @cli.command()
148
145
  @click.argument("flow_name", type=str, required=False)
@@ -217,7 +214,7 @@ def server(address: str | None, live_update: bool, quiet: bool, cors_origin: str
217
214
 
218
215
  if live_update:
219
216
  options = flow.FlowLiveUpdaterOptions(live_mode=True, print_stats=not quiet)
220
- execution_context.run(flow.update_all_flows(options))
217
+ flow.update_all_flows(options)
221
218
  if COCOINDEX_HOST in cors_origins:
222
219
  click.echo(f"Open CocoInsight at: {COCOINDEX_HOST}/cocoinsight")
223
220
  input("Press Enter to stop...")
@@ -8,7 +8,6 @@ import asyncio
8
8
  import re
9
9
  import inspect
10
10
  import datetime
11
- import json
12
11
 
13
12
  from typing import Any, Callable, Sequence, TypeVar
14
13
  from threading import Lock
@@ -384,56 +383,71 @@ class FlowLiveUpdater:
384
383
  """
385
384
  A live updater for a flow.
386
385
  """
387
- _engine_live_updater: _engine.FlowLiveUpdater
386
+ _flow: Flow
387
+ _options: FlowLiveUpdaterOptions
388
+ _engine_live_updater: _engine.FlowLiveUpdater | None = None
388
389
 
389
- def __init__(self, arg: Flow | _engine.FlowLiveUpdater, options: FlowLiveUpdaterOptions | None = None):
390
- if isinstance(arg, _engine.FlowLiveUpdater):
391
- self._engine_live_updater = arg
392
- else:
393
- self._engine_live_updater = execution_context.run(_engine.FlowLiveUpdater(
394
- arg.internal_flow(), dump_engine_object(options or FlowLiveUpdaterOptions())))
395
-
396
- @staticmethod
397
- async def create(fl: Flow, options: FlowLiveUpdaterOptions | None = None) -> FlowLiveUpdater:
398
- """
399
- Create a live updater for a flow.
400
- """
401
- engine_live_updater = await _engine.FlowLiveUpdater.create(
402
- await fl.ainternal_flow(),
403
- dump_engine_object(options or FlowLiveUpdaterOptions()))
404
- return FlowLiveUpdater(engine_live_updater)
390
+ def __init__(self, fl: Flow, options: FlowLiveUpdaterOptions | None = None):
391
+ self._flow = fl
392
+ self._options = options or FlowLiveUpdaterOptions()
405
393
 
406
394
  def __enter__(self) -> FlowLiveUpdater:
395
+ self.start()
407
396
  return self
408
397
 
409
398
  def __exit__(self, exc_type, exc_value, traceback):
410
399
  self.abort()
411
- execution_context.run(self.wait())
400
+ self.wait()
412
401
 
413
402
  async def __aenter__(self) -> FlowLiveUpdater:
403
+ await self.start_async()
414
404
  return self
415
405
 
416
406
  async def __aexit__(self, exc_type, exc_value, traceback):
417
407
  self.abort()
418
- await self.wait()
408
+ await self.wait_async()
409
+
410
+ def start(self) -> None:
411
+ """
412
+ Start the live updater.
413
+ """
414
+ execution_context.run(self.start_async())
415
+
416
+ async def start_async(self) -> None:
417
+ """
418
+ Start the live updater.
419
+ """
420
+ self._engine_live_updater = await _engine.FlowLiveUpdater.create(
421
+ await self._flow.internal_flow_async(), dump_engine_object(self._options))
419
422
 
420
- async def wait(self) -> None:
423
+ def wait(self) -> None:
421
424
  """
422
425
  Wait for the live updater to finish.
423
426
  """
424
- await self._engine_live_updater.wait()
427
+ execution_context.run(self.wait_async())
428
+
429
+ async def wait_async(self) -> None:
430
+ """
431
+ Wait for the live updater to finish. Async version.
432
+ """
433
+ await self._get_engine_live_updater().wait()
425
434
 
426
435
  def abort(self) -> None:
427
436
  """
428
437
  Abort the live updater.
429
438
  """
430
- self._engine_live_updater.abort()
439
+ self._get_engine_live_updater().abort()
431
440
 
432
441
  def update_stats(self) -> _engine.IndexUpdateInfo:
433
442
  """
434
443
  Get the index update info.
435
444
  """
436
- return self._engine_live_updater.index_update_info()
445
+ return self._get_engine_live_updater().index_update_info()
446
+
447
+ def _get_engine_live_updater(self) -> _engine.FlowLiveUpdater:
448
+ if self._engine_live_updater is None:
449
+ raise RuntimeError("Live updater is not started")
450
+ return self._engine_live_updater
437
451
 
438
452
 
439
453
  @dataclass
@@ -500,13 +514,20 @@ class Flow:
500
514
  """
501
515
  return self._lazy_engine_flow().name()
502
516
 
503
- async def update(self) -> _engine.IndexUpdateInfo:
517
+ def update(self) -> _engine.IndexUpdateInfo:
518
+ """
519
+ Update the index defined by the flow.
520
+ Once the function returns, the index is fresh up to the moment when the function is called.
521
+ """
522
+ return execution_context.run(self.update_async())
523
+
524
+ async def update_async(self) -> _engine.IndexUpdateInfo:
504
525
  """
505
526
  Update the index defined by the flow.
506
- Once the function returns, the indice is fresh up to the moment when the function is called.
527
+ Once the function returns, the index is fresh up to the moment when the function is called.
507
528
  """
508
- updater = await FlowLiveUpdater.create(self, FlowLiveUpdaterOptions(live_mode=False))
509
- await updater.wait()
529
+ updater = await FlowLiveUpdater.create_async(self, FlowLiveUpdaterOptions(live_mode=False))
530
+ await updater.wait_async()
510
531
  return updater.update_stats()
511
532
 
512
533
  def evaluate_and_dump(self, options: EvaluateAndDumpOptions):
@@ -521,7 +542,7 @@ class Flow:
521
542
  """
522
543
  return self._lazy_engine_flow()
523
544
 
524
- async def ainternal_flow(self) -> _engine.Flow:
545
+ async def internal_flow_async(self) -> _engine.Flow:
525
546
  """
526
547
  Get the engine flow. The async version.
527
548
  """
@@ -587,22 +608,28 @@ def ensure_all_flows_built() -> None:
587
608
  for fl in flows():
588
609
  fl.internal_flow()
589
610
 
590
- async def aensure_all_flows_built() -> None:
611
+ async def ensure_all_flows_built_async() -> None:
591
612
  """
592
613
  Ensure all flows are built.
593
614
  """
594
615
  for fl in flows():
595
- await fl.ainternal_flow()
616
+ await fl.internal_flow_async()
596
617
 
597
- async def update_all_flows(options: FlowLiveUpdaterOptions) -> dict[str, _engine.IndexUpdateInfo]:
618
+ def update_all_flows(options: FlowLiveUpdaterOptions) -> dict[str, _engine.IndexUpdateInfo]:
598
619
  """
599
620
  Update all flows.
600
621
  """
601
- await aensure_all_flows_built()
622
+ return execution_context.run(update_all_flows_async(options))
623
+
624
+ async def update_all_flows_async(options: FlowLiveUpdaterOptions) -> dict[str, _engine.IndexUpdateInfo]:
625
+ """
626
+ Update all flows.
627
+ """
628
+ await ensure_all_flows_built_async()
602
629
  async def _update_flow(fl: Flow) -> _engine.IndexUpdateInfo:
603
- updater = await FlowLiveUpdater.create(fl, options)
604
- await updater.wait()
605
- return updater.update_stats()
630
+ async with FlowLiveUpdater(fl, options) as updater:
631
+ await updater.wait_async()
632
+ return updater.update_stats()
606
633
  fls = flows()
607
634
  all_stats = await asyncio.gather(*(_update_flow(fl) for fl in fls))
608
635
  return {fl.name: stats for fl, stats in zip(fls, all_stats)}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes