cocoindex 0.2.2__tar.gz → 0.2.3__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 (406) hide show
  1. cocoindex-0.2.3/.github/workflows/_test.yml +65 -0
  2. {cocoindex-0.2.2 → cocoindex-0.2.3}/.github/workflows/release.yml +29 -11
  3. {cocoindex-0.2.2 → cocoindex-0.2.3}/Cargo.lock +1 -1
  4. {cocoindex-0.2.2 → cocoindex-0.2.3}/Cargo.toml +7 -2
  5. {cocoindex-0.2.2 → cocoindex-0.2.3}/PKG-INFO +17 -1
  6. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/simple_vector_index.md +43 -21
  7. cocoindex-0.2.3/docs/docs/getting_started/quickstart.md +177 -0
  8. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/ops/sources.md +21 -0
  9. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docusaurus.config.ts +1 -1
  10. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/src/components/GitHubButton/index.tsx +2 -2
  11. cocoindex-0.2.3/docs/static/img/examples/simple_vector_index/embed.png +0 -0
  12. cocoindex-0.2.3/examples/postgres_source/main.py +164 -0
  13. cocoindex-0.2.3/examples/postgres_source/pyproject.toml +15 -0
  14. {cocoindex-0.2.2 → cocoindex-0.2.3}/pyproject.toml +29 -0
  15. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/convert.py +37 -26
  16. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/op.py +4 -19
  17. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/sources.py +13 -0
  18. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/subprocess_exec.py +27 -3
  19. cocoindex-0.2.3/python/cocoindex/tests/conftest.py +38 -0
  20. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/base/value.rs +151 -194
  21. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/builder/analyzer.rs +9 -17
  22. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/builder/plan.rs +1 -1
  23. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/dumper.rs +6 -5
  24. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/evaluator.rs +7 -7
  25. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/indexing_status.rs +1 -1
  26. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/live_updater.rs +13 -9
  27. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/row_indexer.rs +13 -14
  28. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/source_indexer.rs +48 -46
  29. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/factory_bases.rs +5 -2
  30. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/functions/split_recursively.rs +2 -2
  31. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/interface.rs +37 -28
  32. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/py_factory.rs +2 -2
  33. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/shared/postgres.rs +9 -24
  34. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/sources/amazon_s3.rs +17 -9
  35. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/sources/azure_blob.rs +16 -8
  36. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/sources/google_drive.rs +18 -10
  37. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/sources/local_file.rs +16 -8
  38. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/sources/postgres.rs +353 -100
  39. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/targets/kuzu.rs +9 -12
  40. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/targets/neo4j.rs +2 -5
  41. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/targets/postgres.rs +4 -11
  42. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/targets/qdrant.rs +6 -5
  43. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/targets/shared/property_graph.rs +3 -1
  44. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/py/convert.rs +32 -5
  45. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/service/flows.rs +6 -5
  46. cocoindex-0.2.2/.github/workflows/_test.yml +0 -58
  47. cocoindex-0.2.2/docs/docs/getting_started/quickstart.md +0 -283
  48. cocoindex-0.2.2/docs/static/img/examples/simple_vector_index/embed.png +0 -0
  49. cocoindex-0.2.2/examples/postgres_source/main.py +0 -82
  50. cocoindex-0.2.2/examples/postgres_source/pyproject.toml +0 -9
  51. {cocoindex-0.2.2 → cocoindex-0.2.3}/.cargo/config.toml +0 -0
  52. {cocoindex-0.2.2 → cocoindex-0.2.3}/.env.lib_debug +0 -0
  53. {cocoindex-0.2.2 → cocoindex-0.2.3}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
  54. {cocoindex-0.2.2 → cocoindex-0.2.3}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md" +0 -0
  55. {cocoindex-0.2.2 → cocoindex-0.2.3}/.github/scripts/update_version.sh +0 -0
  56. {cocoindex-0.2.2 → cocoindex-0.2.3}/.github/workflows/CI.yml +0 -0
  57. {cocoindex-0.2.2 → cocoindex-0.2.3}/.github/workflows/_doc_release.yml +0 -0
  58. {cocoindex-0.2.2 → cocoindex-0.2.3}/.github/workflows/docs.yml +0 -0
  59. {cocoindex-0.2.2 → cocoindex-0.2.3}/.github/workflows/format.yml +0 -0
  60. {cocoindex-0.2.2 → cocoindex-0.2.3}/.gitignore +0 -0
  61. {cocoindex-0.2.2 → cocoindex-0.2.3}/.pre-commit-config.yaml +0 -0
  62. {cocoindex-0.2.2 → cocoindex-0.2.3}/CODE_OF_CONDUCT.md +0 -0
  63. {cocoindex-0.2.2 → cocoindex-0.2.3}/CONTRIBUTING.md +0 -0
  64. {cocoindex-0.2.2 → cocoindex-0.2.3}/LICENSE +0 -0
  65. {cocoindex-0.2.2 → cocoindex-0.2.3}/README.md +0 -0
  66. {cocoindex-0.2.2 → cocoindex-0.2.3}/dev/neo4j.yaml +0 -0
  67. {cocoindex-0.2.2 → cocoindex-0.2.3}/dev/postgres.yaml +0 -0
  68. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/.gitignore +0 -0
  69. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/README.md +0 -0
  70. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/about/community.md +0 -0
  71. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/ai/llm.mdx +0 -0
  72. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/contributing/guide.md +0 -0
  73. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/contributing/new_built_in_target.mdx +0 -0
  74. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/contributing/setup_dev_environment.md +0 -0
  75. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/core/basics.md +0 -0
  76. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/core/cli.mdx +0 -0
  77. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/core/data_example.svg +0 -0
  78. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/core/data_types.mdx +0 -0
  79. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/core/flow_def.mdx +0 -0
  80. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/core/flow_example.svg +0 -0
  81. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/core/flow_methods.mdx +0 -0
  82. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/core/settings.mdx +0 -0
  83. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/custom_ops/custom_functions.mdx +0 -0
  84. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/custom_ops/custom_targets.mdx +0 -0
  85. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/academic_papers_index.md +0 -0
  86. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/codebase_index.md +0 -0
  87. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/custom_targets.md +0 -0
  88. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/docs_to_knowledge_graph.md +0 -0
  89. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/image_search.md +0 -0
  90. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/manual_extraction.md +0 -0
  91. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/multi_format_index.md +0 -0
  92. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/patient_form_extraction.md +0 -0
  93. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/photo_search.md +0 -0
  94. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/examples/product_recommendation.md +0 -0
  95. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/examples/index.md +0 -0
  96. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/getting_started/installation.md +0 -0
  97. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/getting_started/markdown_files.zip +0 -0
  98. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/getting_started/overview.md +0 -0
  99. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/ops/functions.md +0 -0
  100. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/ops/targets.md +0 -0
  101. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/query.mdx +0 -0
  102. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/tutorials/live_updates.md +0 -0
  103. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/docs/tutorials/manage_flow_dynamically.mdx +0 -0
  104. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/package.json +0 -0
  105. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/sidebars.ts +0 -0
  106. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/src/css/custom.css +0 -0
  107. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/src/theme/DocCard/index.tsx +0 -0
  108. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/src/theme/DocCard/styles.module.css +0 -0
  109. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/src/theme/DocCardList/index.tsx +0 -0
  110. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/src/theme/DocCardList/styles.module.css +0 -0
  111. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/src/theme/Root.js +0 -0
  112. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/.nojekyll +0 -0
  113. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/docusaurus.png +0 -0
  114. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/academic_papers_index/abstract_chunks.png +0 -0
  115. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/academic_papers_index/basic_info.png +0 -0
  116. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/academic_papers_index/chunk_embedding.png +0 -0
  117. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/academic_papers_index/cover.png +0 -0
  118. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/academic_papers_index/first_page.png +0 -0
  119. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/academic_papers_index/flow.png +0 -0
  120. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/academic_papers_index/metadata.png +0 -0
  121. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/codebase_index/chunk.png +0 -0
  122. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/codebase_index/cover.png +0 -0
  123. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/codebase_index/flow.png +0 -0
  124. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/custom_targets/convert.png +0 -0
  125. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/custom_targets/cover.png +0 -0
  126. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/docs_to_knowledge_graph/cover.png +0 -0
  127. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/docs_to_knowledge_graph/dedupe.png +0 -0
  128. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/docs_to_knowledge_graph/export_document.png +0 -0
  129. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/docs_to_knowledge_graph/export_relationship.png +0 -0
  130. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/docs_to_knowledge_graph/extract_relationship.png +0 -0
  131. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/docs_to_knowledge_graph/flow.png +0 -0
  132. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/docs_to_knowledge_graph/relationship.png +0 -0
  133. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/docs_to_knowledge_graph/summary.png +0 -0
  134. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/image_search/cover.png +0 -0
  135. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/image_search/embedding.png +0 -0
  136. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/image_search/flow.png +0 -0
  137. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/image_search/multi_modal_architecture.png +0 -0
  138. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/image_search/result.png +0 -0
  139. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/manual_extraction/cover.png +0 -0
  140. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/manual_extraction/extraction.png +0 -0
  141. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/manual_extraction/flow.png +0 -0
  142. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/manual_extraction/summary.png +0 -0
  143. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/multi_format_index/colpali_architecture.png +0 -0
  144. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/multi_format_index/cover.png +0 -0
  145. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/multi_format_index/embed.png +0 -0
  146. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/multi_format_index/flow.png +0 -0
  147. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/multi_format_index/pages.png +0 -0
  148. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/patient_form_extraction/cover.png +0 -0
  149. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/patient_form_extraction/extraction.png +0 -0
  150. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/patient_form_extraction/fields.png +0 -0
  151. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/patient_form_extraction/flow.png +0 -0
  152. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/patient_form_extraction/tomarkdown.png +0 -0
  153. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/photo_search/cover.png +0 -0
  154. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/photo_search/extraction.png +0 -0
  155. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/photo_search/flow.png +0 -0
  156. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/product_recommendation/cover.png +0 -0
  157. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/product_recommendation/dedupe.png +0 -0
  158. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/product_recommendation/export_all.png +0 -0
  159. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/product_recommendation/export_product.png +0 -0
  160. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/product_recommendation/export_taxonomy.png +0 -0
  161. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/product_recommendation/extract_product.png +0 -0
  162. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/product_recommendation/extract_taxonomy.png +0 -0
  163. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/product_recommendation/neo4j.png +0 -0
  164. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/product_recommendation/parse_json.png +0 -0
  165. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/product_recommendation/taxonomy.png +0 -0
  166. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/simple_vector_index/chunk.png +0 -0
  167. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/simple_vector_index/cover.png +0 -0
  168. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/examples/simple_vector_index/flow.png +0 -0
  169. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/favicon.ico +0 -0
  170. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/icon.svg +0 -0
  171. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/img/incremental-etl.gif +0 -0
  172. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/static/robots.txt +0 -0
  173. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/tsconfig.json +0 -0
  174. {cocoindex-0.2.2 → cocoindex-0.2.3}/docs/yarn.lock +0 -0
  175. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/amazon_s3_embedding/.env.example +0 -0
  176. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/amazon_s3_embedding/.gitignore +0 -0
  177. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/amazon_s3_embedding/README.md +0 -0
  178. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/amazon_s3_embedding/main.py +0 -0
  179. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/amazon_s3_embedding/pyproject.toml +0 -0
  180. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/azure_blob_embedding/.env.example +0 -0
  181. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/azure_blob_embedding/.gitignore +0 -0
  182. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/azure_blob_embedding/README.md +0 -0
  183. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/azure_blob_embedding/main.py +0 -0
  184. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/azure_blob_embedding/pyproject.toml +0 -0
  185. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/code_embedding/.env +0 -0
  186. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/code_embedding/README.md +0 -0
  187. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/code_embedding/main.py +0 -0
  188. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/code_embedding/pyproject.toml +0 -0
  189. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/custom_output_files/.env +0 -0
  190. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/custom_output_files/.gitignore +0 -0
  191. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/custom_output_files/README.md +0 -0
  192. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/custom_output_files/data/bizarre_animals.md +0 -0
  193. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/custom_output_files/data/chunk_norris.md +0 -0
  194. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/custom_output_files/main.py +0 -0
  195. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/custom_output_files/pyproject.toml +0 -0
  196. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/docs_to_knowledge_graph/.env +0 -0
  197. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/docs_to_knowledge_graph/README.md +0 -0
  198. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/docs_to_knowledge_graph/main.py +0 -0
  199. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/docs_to_knowledge_graph/pyproject.toml +0 -0
  200. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/face_recognition/.env +0 -0
  201. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/face_recognition/README.md +0 -0
  202. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/face_recognition/images/Carter_welcomes_Reagan.jpg +0 -0
  203. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/face_recognition/images/Solvay_conference_1927.jpg +0 -0
  204. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/face_recognition/images/Steve_Jobs_and_Bill_Gates_(522695099).jpg +0 -0
  205. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/face_recognition/images/einplanck3.jpg +0 -0
  206. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/face_recognition/main.py +0 -0
  207. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/face_recognition/pyproject.toml +0 -0
  208. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/fastapi_server_docker/.dockerignore +0 -0
  209. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/fastapi_server_docker/.env +0 -0
  210. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/fastapi_server_docker/README.md +0 -0
  211. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/fastapi_server_docker/compose.yaml +0 -0
  212. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/fastapi_server_docker/dockerfile +0 -0
  213. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/fastapi_server_docker/files/1810.04805v2.md +0 -0
  214. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/fastapi_server_docker/main.py +0 -0
  215. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/fastapi_server_docker/requirements.txt +0 -0
  216. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/gdrive_text_embedding/.env.example +0 -0
  217. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/gdrive_text_embedding/.gitignore +0 -0
  218. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/gdrive_text_embedding/README.md +0 -0
  219. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/gdrive_text_embedding/main.py +0 -0
  220. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/gdrive_text_embedding/pyproject.toml +0 -0
  221. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/.env +0 -0
  222. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/README.md +0 -0
  223. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/colpali_main.py +0 -0
  224. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/frontend/.gitignore +0 -0
  225. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/frontend/index.html +0 -0
  226. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/frontend/package-lock.json +0 -0
  227. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/frontend/package.json +0 -0
  228. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/frontend/src/App.jsx +0 -0
  229. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/frontend/src/main.jsx +0 -0
  230. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/frontend/src/style.css +0 -0
  231. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/frontend/vite.config.js +0 -0
  232. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/img/cat1.jpeg +0 -0
  233. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/img/dog1.jpeg +0 -0
  234. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/img/elephant1.jpg +0 -0
  235. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/img/giraffe.jpg +0 -0
  236. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/main.py +0 -0
  237. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/image_search/pyproject.toml +0 -0
  238. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/live_updates/.env +0 -0
  239. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/live_updates/README.md +0 -0
  240. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/live_updates/data/bizarre_animals.md +0 -0
  241. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/live_updates/data/chunk_norris.md +0 -0
  242. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/live_updates/main.py +0 -0
  243. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/live_updates/pyproject.toml +0 -0
  244. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/manuals_llm_extraction/.env +0 -0
  245. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/manuals_llm_extraction/README.md +0 -0
  246. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/manuals_llm_extraction/main.py +0 -0
  247. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
  248. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
  249. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
  250. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
  251. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/manuals_llm_extraction/pyproject.toml +0 -0
  252. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/.env +0 -0
  253. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/README.md +0 -0
  254. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/main.py +0 -0
  255. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/pyproject.toml +0 -0
  256. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/source_files/1706.03762v7.pdf +0 -0
  257. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/source_files/1810.04805v2.pdf +0 -0
  258. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/source_files/2502.06786v3.pdf +0 -0
  259. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/source_files/healthcare_industry_test_p101.jpg +0 -0
  260. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/source_files/healthcare_industry_test_p86.jpg +0 -0
  261. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/source_files/healthcare_industry_test_p9.jpg +0 -0
  262. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/source_files/restaurant_brands_international_2023.jpg +0 -0
  263. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/multi_format_indexing/source_files/sweetgreen_2023.jpg +0 -0
  264. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/paper_metadata/.env.example +0 -0
  265. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/paper_metadata/.gitignore +0 -0
  266. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/paper_metadata/README.md +0 -0
  267. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/paper_metadata/main.py +0 -0
  268. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/paper_metadata/papers/1706.03762v7.pdf +0 -0
  269. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/paper_metadata/papers/1810.04805v2.pdf +0 -0
  270. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/paper_metadata/papers/2502.06786v3.pdf +0 -0
  271. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/paper_metadata/papers/2502.20346v1.pdf +0 -0
  272. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/paper_metadata/pyproject.toml +0 -0
  273. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/patient_intake_extraction/.env.example +0 -0
  274. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/patient_intake_extraction/README.md +0 -0
  275. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/patient_intake_extraction/data/README.md +0 -0
  276. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_David_Artificial.docx +0 -0
  277. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Emily_Artificial.pdf +0 -0
  278. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Joe_Artificial.pdf +0 -0
  279. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_From_Jane_Artificial.docx +0 -0
  280. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/patient_intake_extraction/main.py +0 -0
  281. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/patient_intake_extraction/pyproject.toml +0 -0
  282. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/pdf_embedding/.env +0 -0
  283. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/pdf_embedding/README.md +0 -0
  284. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/pdf_embedding/main.py +0 -0
  285. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
  286. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
  287. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
  288. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/pdf_embedding/pyproject.toml +0 -0
  289. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/postgres_source/.env +0 -0
  290. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/postgres_source/README.md +0 -0
  291. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/postgres_source/prepare_source_data.sql +0 -0
  292. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/.env.example +0 -0
  293. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/README.md +0 -0
  294. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/img/cocoinsight.png +0 -0
  295. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/img/neo4j.png +0 -0
  296. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/main.py +0 -0
  297. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/products/p1.json +0 -0
  298. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/products/p2.json +0 -0
  299. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/products/p3.json +0 -0
  300. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/products/p4.json +0 -0
  301. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/products/p5.json +0 -0
  302. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/products/p6.json +0 -0
  303. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/products/p7.json +0 -0
  304. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/products/p8.json +0 -0
  305. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/products/p9.json +0 -0
  306. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/product_recommendation/pyproject.toml +0 -0
  307. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding/.env +0 -0
  308. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding/README.md +0 -0
  309. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding/Text_Embedding.ipynb +0 -0
  310. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding/main.py +0 -0
  311. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
  312. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
  313. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
  314. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding/pyproject.toml +0 -0
  315. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding_qdrant/.env +0 -0
  316. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding_qdrant/README.md +0 -0
  317. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding_qdrant/main.py +0 -0
  318. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
  319. {cocoindex-0.2.2 → cocoindex-0.2.3}/examples/text_embedding_qdrant/pyproject.toml +0 -0
  320. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/__init__.py +0 -0
  321. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/auth_registry.py +0 -0
  322. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/cli.py +0 -0
  323. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/flow.py +0 -0
  324. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/functions.py +0 -0
  325. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/index.py +0 -0
  326. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/lib.py +0 -0
  327. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/llm.py +0 -0
  328. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/py.typed +0 -0
  329. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/runtime.py +0 -0
  330. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/setting.py +0 -0
  331. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/setup.py +0 -0
  332. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/targets.py +0 -0
  333. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/tests/__init__.py +0 -0
  334. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/tests/test_convert.py +0 -0
  335. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/tests/test_optional_database.py +0 -0
  336. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/tests/test_transform_flow.py +0 -0
  337. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/tests/test_typing.py +0 -0
  338. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/tests/test_validation.py +0 -0
  339. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/typing.py +0 -0
  340. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/user_app_loader.py +0 -0
  341. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/utils.py +0 -0
  342. {cocoindex-0.2.2 → cocoindex-0.2.3}/python/cocoindex/validation.py +0 -0
  343. {cocoindex-0.2.2 → cocoindex-0.2.3}/ruff.toml +0 -0
  344. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/base/duration.rs +0 -0
  345. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/base/field_attrs.rs +0 -0
  346. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/base/json_schema.rs +0 -0
  347. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/base/mod.rs +0 -0
  348. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/base/schema.rs +0 -0
  349. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/base/spec.rs +0 -0
  350. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/builder/analyzed_flow.rs +0 -0
  351. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/builder/exec_ctx.rs +0 -0
  352. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/builder/flow_builder.rs +0 -0
  353. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/builder/mod.rs +0 -0
  354. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/db_tracking.rs +0 -0
  355. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/db_tracking_setup.rs +0 -0
  356. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/memoization.rs +0 -0
  357. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/mod.rs +0 -0
  358. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/execution/stats.rs +0 -0
  359. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/lib.rs +0 -0
  360. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/lib_context.rs +0 -0
  361. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/llm/anthropic.rs +0 -0
  362. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/llm/gemini.rs +0 -0
  363. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/llm/litellm.rs +0 -0
  364. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/llm/mod.rs +0 -0
  365. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/llm/ollama.rs +0 -0
  366. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/llm/openai.rs +0 -0
  367. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/llm/openrouter.rs +0 -0
  368. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/llm/vllm.rs +0 -0
  369. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/llm/voyage.rs +0 -0
  370. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/functions/embed_text.rs +0 -0
  371. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/functions/extract_by_llm.rs +0 -0
  372. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/functions/mod.rs +0 -0
  373. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/functions/parse_json.rs +0 -0
  374. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/functions/test_utils.rs +0 -0
  375. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/mod.rs +0 -0
  376. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/registration.rs +0 -0
  377. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/registry.rs +0 -0
  378. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/sdk.rs +0 -0
  379. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/shared/mod.rs +0 -0
  380. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/sources/mod.rs +0 -0
  381. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/sources/shared/mod.rs +0 -0
  382. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/sources/shared/pattern_matcher.rs +0 -0
  383. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/targets/mod.rs +0 -0
  384. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/targets/shared/mod.rs +0 -0
  385. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/ops/targets/shared/table_columns.rs +0 -0
  386. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/prelude.rs +0 -0
  387. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/py/mod.rs +0 -0
  388. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/server.rs +0 -0
  389. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/service/error.rs +0 -0
  390. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/service/mod.rs +0 -0
  391. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/settings.rs +0 -0
  392. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/setup/auth_registry.rs +0 -0
  393. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/setup/components.rs +0 -0
  394. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/setup/db_metadata.rs +0 -0
  395. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/setup/driver.rs +0 -0
  396. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/setup/flow_features.rs +0 -0
  397. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/setup/mod.rs +0 -0
  398. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/setup/states.rs +0 -0
  399. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/utils/concur_control.rs +0 -0
  400. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/utils/db.rs +0 -0
  401. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/utils/fingerprint.rs +0 -0
  402. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/utils/immutable.rs +0 -0
  403. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/utils/mod.rs +0 -0
  404. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/utils/retryable.rs +0 -0
  405. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/utils/str_sanitize.rs +0 -0
  406. {cocoindex-0.2.2 → cocoindex-0.2.3}/src/utils/yaml_ser.rs +0 -0
@@ -0,0 +1,65 @@
1
+ name: Run Tests
2
+
3
+ on:
4
+ workflow_call:
5
+
6
+ env:
7
+ CARGO_TERM_COLOR: always
8
+
9
+ jobs:
10
+ build-test:
11
+ strategy:
12
+ matrix:
13
+ python-version: [3.11]
14
+ platform:
15
+ - { runner: ubuntu-latest, python_exec: ".venv/bin/python" }
16
+ - { runner: ubuntu-24.04-arm, python_exec: ".venv/bin/python" }
17
+ - { runner: macos-latest, python_exec: ".venv/bin/python" }
18
+ - { runner: macos-13, python_exec: ".venv/bin/python" }
19
+ - { runner: windows-latest, python_exec: ".venv\\Scripts\\python" }
20
+ runs-on: ${{ matrix.platform.runner }}
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+
24
+ - uses: actions/setup-python@v5
25
+ id: setup_python
26
+ with:
27
+ python-version: ${{ matrix.python-version }}
28
+ cache: 'pip'
29
+
30
+ - run: rustup toolchain install stable --profile minimal
31
+ - name: Rust Cache
32
+ uses: Swatinem/rust-cache@v2
33
+ with:
34
+ key: rust-${{ matrix.platform.runner }}-${{ matrix.python-version }}
35
+ - name: Rust tests
36
+ run: cargo test --verbose
37
+
38
+ - uses: actions/cache@v4
39
+ with:
40
+ path: .venv
41
+ key: pyenv-${{ matrix.platform.runner }}-${{ steps.setup_python.outputs.python-version }}-${{ hashFiles('pyproject.toml') }}
42
+ restore-keys: |
43
+ pyenv-${{ matrix.platform.runner }}-${{ steps.setup_python.outputs.python-version }}-
44
+
45
+ - name: Setup venv
46
+ run: |
47
+ python -m venv .venv
48
+ - name: Install Python toolchains
49
+ run: |
50
+ ${{ matrix.platform.python_exec }} -m pip install maturin mypy pytest pytest-asyncio
51
+ - name: Python build
52
+ run: |
53
+ ${{ matrix.platform.python_exec }} -m maturin develop -E all
54
+ - name: Python type check (mypy)
55
+ run: |
56
+ ${{ matrix.platform.python_exec }} -m mypy python
57
+ - name: Python tests
58
+ if: ${{ !startsWith(matrix.platform.runner, 'windows') }}
59
+ run: |
60
+ ${{ matrix.platform.python_exec }} -m pytest --capture=no python/cocoindex/tests
61
+ - name: Python tests (Windows cmd)
62
+ if: ${{ startsWith(matrix.platform.runner, 'windows') }}
63
+ shell: cmd # Use `cmd` to run test for Windows, as PowerShell doesn't detect exit code by `os._exit(0)` correctly.
64
+ run: |
65
+ ${{ matrix.platform.python_exec }} -m pytest --capture=no python/cocoindex/tests
@@ -1,8 +1,7 @@
1
- # This file is autogenerated by maturin v1.8.1
2
- # To update, run
3
- #
4
- # maturin generate-ci github
1
+ # This workflow can be triggered on tags push (automatic release) or manually on any branch.
5
2
  #
3
+ # - When triggered on tags push, it will build and publishes a new version including docs.
4
+ # - When triggered manually, it's a dry-run: only build, without publishing anything.
6
5
  name: release
7
6
 
8
7
  on:
@@ -31,11 +30,11 @@ jobs:
31
30
  strategy:
32
31
  matrix:
33
32
  platform:
34
- - { os: linux, runner: ubuntu-24.04, target: x86_64, container: "ghcr.io/rust-cross/manylinux_2_28-cross:x86_64" }
35
- - { os: linux, runner: ubuntu-24.04, target: aarch64, container: "ghcr.io/rust-cross/manylinux_2_28-cross:aarch64" }
36
- - { os: windows, runner: windows-latest, target: x64 }
33
+ - { os: linux, runner: ubuntu-latest, target: x86_64, container: "ghcr.io/rust-cross/manylinux_2_28-cross:x86_64" }
34
+ - { os: linux, runner: ubuntu-24.04-arm, target: aarch64, container: "ghcr.io/rust-cross/manylinux_2_28-cross:aarch64" }
35
+ - { os: macos, runner: macos-latest, target: aarch64 }
37
36
  - { os: macos, runner: macos-13, target: x86_64 }
38
- - { os: macos, runner: macos-14, target: aarch64 }
37
+ - { os: windows, runner: windows-latest, target: x64 }
39
38
  steps:
40
39
  - uses: actions/checkout@v4
41
40
  - uses: actions/download-artifact@v4
@@ -43,12 +42,12 @@ jobs:
43
42
  name: Cargo.toml
44
43
  - uses: actions/setup-python@v5
45
44
  with:
46
- python-version: 3.x
45
+ python-version: 3.13
47
46
  - name: Build wheels
48
47
  uses: PyO3/maturin-action@v1
49
48
  with:
50
49
  target: ${{ matrix.platform.target }}
51
- args: --release --out dist --find-interpreter
50
+ args: --release --out dist
52
51
  sccache: 'true'
53
52
  manylinux: auto
54
53
  container: ${{ matrix.platform.container }}
@@ -58,6 +57,24 @@ jobs:
58
57
  name: wheels-${{ matrix.platform.os }}-${{ matrix.platform.target }}
59
58
  path: dist
60
59
 
60
+ test-abi3:
61
+ runs-on: ubuntu-24.04
62
+ needs: build
63
+ strategy:
64
+ matrix:
65
+ py: ["3.11", "3.12", "3.13"]
66
+ steps:
67
+ - uses: actions/download-artifact@v4
68
+ with:
69
+ name: wheels-linux-x86_64
70
+ - uses: actions/setup-python@v5
71
+ with:
72
+ python-version: ${{ matrix.py }}
73
+ - run: python -V
74
+ - run: pip install --find-links=./ cocoindex
75
+ - run: python -c "import cocoindex, sys; print('import ok on', sys.version)"
76
+
77
+
61
78
  sdist:
62
79
  runs-on: ubuntu-latest
63
80
  needs: [create-versioned-toml]
@@ -80,7 +97,7 @@ jobs:
80
97
  release:
81
98
  name: Release
82
99
  runs-on: ubuntu-latest
83
- needs: [create-versioned-toml, build, sdist]
100
+ needs: [create-versioned-toml, build, test-abi3, sdist]
84
101
  permissions:
85
102
  # Use to sign the release artifacts
86
103
  id-token: write
@@ -111,5 +128,6 @@ jobs:
111
128
  release-docs:
112
129
  name: Release Docs
113
130
  needs: [release]
131
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
114
132
  uses: ./.github/workflows/_doc_release.yml
115
133
  secrets: inherit
@@ -1283,7 +1283,7 @@ dependencies = [
1283
1283
 
1284
1284
  [[package]]
1285
1285
  name = "cocoindex"
1286
- version = "0.2.2"
1286
+ version = "0.2.3"
1287
1287
  dependencies = [
1288
1288
  "anyhow",
1289
1289
  "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.2.2"
5
+ version = "0.2.3"
6
6
  edition = "2024"
7
7
  rust-version = "1.88"
8
8
  readme = "README.md"
@@ -16,7 +16,12 @@ name = "cocoindex_engine"
16
16
  crate-type = ["cdylib"]
17
17
 
18
18
  [dependencies]
19
- pyo3 = { version = "0.25.1", features = ["chrono", "auto-initialize", "uuid"] }
19
+ pyo3 = { version = "0.25.1", features = [
20
+ "abi3-py311",
21
+ "auto-initialize",
22
+ "chrono",
23
+ "uuid",
24
+ ] }
20
25
  pythonize = "0.25.0"
21
26
  pyo3-async-runtimes = { version = "0.25.0", features = ["tokio-runtime"] }
22
27
 
@@ -1,6 +1,21 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cocoindex
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
+ Classifier: Development Status :: 3 - Alpha
5
+ Classifier: License :: OSI Approved :: Apache Software License
6
+ Classifier: Operating System :: OS Independent
7
+ Classifier: Programming Language :: Rust
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3 :: Only
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Programming Language :: Python :: 3.13
13
+ Classifier: Programming Language :: Python :: 3.14
14
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
15
+ Classifier: Topic :: Text Processing :: Indexing
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Natural Language :: English
18
+ Classifier: Typing :: Typed
4
19
  Requires-Dist: click>=8.1.8
5
20
  Requires-Dist: rich>=14.0.0
6
21
  Requires-Dist: python-dotenv>=1.1.0
@@ -21,6 +36,7 @@ Provides-Extra: colpali
21
36
  Provides-Extra: all
22
37
  License-File: LICENSE
23
38
  Summary: With CocoIndex, users declare the transformation, CocoIndex creates & maintains an index, and keeps the derived index up to date based on source update, with minimal computation and changes.
39
+ Keywords: indexing,real-time,incremental,pipeline,search,ai,etl,rag,dataflow,context-engineering
24
40
  Author-email: CocoIndex <cocoindex.io@gmail.com>
25
41
  License-Expression: Apache-2.0
26
42
  Requires-Python: >=3.11
@@ -71,34 +71,21 @@ with data_scope["documents"].row() as doc:
71
71
  ### Embed each chunk
72
72
 
73
73
  ```python
74
- @cocoindex.transform_flow()
75
- def text_to_embedding(text: cocoindex.DataSlice[str]) -> cocoindex.DataSlice[list[float]]:
76
- """
77
- Embed the text using a SentenceTransformer model.
78
- This is a shared logic between indexing and querying, so extract it as a function.
79
- """
80
- return text.transform(
74
+ with doc["chunks"].row() as chunk:
75
+ chunk["embedding"] = chunk["text"].transform(
81
76
  cocoindex.functions.SentenceTransformerEmbed(
82
- model="sentence-transformers/all-MiniLM-L6-v2"))
77
+ model="sentence-transformers/all-MiniLM-L6-v2"
78
+ )
79
+ )
80
+ doc_embeddings.collect(filename=doc["filename"], location=chunk["location"],
81
+ text=chunk["text"], embedding=chunk["embedding"])
83
82
  ```
84
- ![Embedding](/img/examples/simple_vector_index/embed.png)
85
-
86
- This code defines a transformation function that converts text into vector embeddings using the SentenceTransformer model.
87
- `@cocoindex.transform_flow()` is needed to share the transformation across indexing and query.
88
- This decorator marks this as a reusable transformation flow that can be called on specific input data from user code using `eval()`, as shown in the search function below.
89
83
 
90
84
  The `MiniLM-L6-v2` model is a good balance of speed and quality for text embeddings, though you can swap in other SentenceTransformer models as needed.
91
85
 
92
86
  <DocumentationButton url="https://cocoindex.io/docs/ops/functions#sentencetransformerembed" text="SentenceTransformerEmbed" margin="0 0 16px 0" />
93
-
94
- Plug in the `text_to_embedding` function and collect the embeddings.
95
87
 
96
- ```python
97
- with doc["chunks"].row() as chunk:
98
- chunk["embedding"] = text_to_embedding(chunk["text"])
99
- doc_embeddings.collect(filename=doc["filename"], location=chunk["location"],
100
- text=chunk["text"], embedding=chunk["embedding"])
101
- ```
88
+ ![Embedding](/img/examples/simple_vector_index/embed.png)
102
89
 
103
90
  ## Export the embeddings
104
91
 
@@ -119,10 +106,32 @@ CocoIndex supports other vector databases as well, with 1-line switch.
119
106
 
120
107
  ## Query the index
121
108
 
109
+ ### Define a shared flow for both indexing and querying
110
+
111
+ ```python
112
+ @cocoindex.transform_flow()
113
+ def text_to_embedding(text: cocoindex.DataSlice[str]) -> cocoindex.DataSlice[list[float]]:
114
+ """
115
+ Embed the text using a SentenceTransformer model.
116
+ This is a shared logic between indexing and querying, so extract it as a function.
117
+ """
118
+ return text.transform(
119
+ cocoindex.functions.SentenceTransformerEmbed(
120
+ model="sentence-transformers/all-MiniLM-L6-v2"))
121
+ ```
122
+
123
+ This code defines a transformation function that converts text into vector embeddings using the SentenceTransformer model.
124
+ `@cocoindex.transform_flow()` is needed to share the transformation across indexing and query.
125
+
126
+ This decorator marks this as a reusable transformation flow that can be called on specific input data from user code using `eval()`, as shown in the search function below.
127
+
128
+ ### Write query
129
+
122
130
  CocoIndex doesn't provide additional query interface at the moment. We can write SQL or rely on the query engine by the target storage, if any.
123
131
 
124
132
  <DocumentationButton url="https://cocoindex.io/docs/ops/targets#postgres" text="Postgres" margin="0 0 16px 0" />
125
133
 
134
+
126
135
  ```python
127
136
  def search(pool: ConnectionPool, query: str, top_k: int = 5):
128
137
  table_name = cocoindex.utils.get_target_storage_default_name(text_embedding_flow, "doc_embeddings")
@@ -166,6 +175,19 @@ if __name__ == "__main__":
166
175
  _main()
167
176
  ```
168
177
 
178
+ In the function above, most parts are standard query logic - you can use any libraries you like.
179
+ There're two CocoIndex-specific logic:
180
+
181
+ 1. Get the table name from the export target in the `text_embedding_flow` above.
182
+ Since the table name for the `Postgres` target is not explicitly specified in the `export()` call,
183
+ CocoIndex uses a default name.
184
+ `cocoindex.utils.get_target_default_name()` is a utility function to get the default table name for this case.
185
+
186
+ 2. Evaluate the transform flow defined above with the input query, to get the embedding.
187
+ It's done by the `eval()` method of the transform flow `text_to_embedding`.
188
+ The return type of this method is `NDArray[np.float32]` as declared in the `text_to_embedding()` function (`cocoindex.DataSlice[NDArray[np.float32]]`).
189
+
190
+
169
191
 
170
192
  ## Time to have fun!
171
193
  - Run the following command to setup and update the index.
@@ -0,0 +1,177 @@
1
+ ---
2
+ title: Quickstart
3
+ description: Get started with CocoIndex in 10 minutes
4
+ ---
5
+
6
+ import { GitHubButton, YouTubeButton, DocumentationButton } from '../../src/components/GitHubButton';
7
+
8
+ <GitHubButton url="https://github.com/cocoindex-io/cocoindex-quickstart" margin="0 0 24px 0"/>
9
+ <YouTubeButton url="https://www.youtube.com/watch?v=gv5R8nOXsWU" margin="0 0 24px 0"/>
10
+
11
+ In this tutorial, we’ll build an index with text embeddings, keeping it minimal and focused on the core indexing flow.
12
+
13
+
14
+ ## Flow Overview
15
+ ![Flow](/img/examples/simple_vector_index/flow.png)
16
+
17
+ 1. Read text files from the local filesystem
18
+ 2. Chunk each document
19
+ 3. For each chunk, embed it with a text embedding model
20
+ 4. Store the embeddings in a vector database for retrieval
21
+
22
+
23
+ ## Setup
24
+ 1. Install CocoIndex:
25
+
26
+ ```bash
27
+ pip install -U 'cocoindex[embeddings]'
28
+ ```
29
+
30
+ 2. [Install Postgres](https://cocoindex.io/docs/getting_started/installation#-install-postgres).
31
+
32
+ 3. Create a new directory for your project:
33
+
34
+ ```bash
35
+ mkdir cocoindex-quickstart
36
+ cd cocoindex-quickstart
37
+ ```
38
+
39
+ 4. Place input files in a directory `markdown_files`. You may download from [markdown_files.zip](markdown_files.zip).
40
+
41
+
42
+ ## Define a flow
43
+
44
+ Create a new file `main.py` and define a flow.
45
+
46
+ ```python title="main.py"
47
+ import cocoindex
48
+
49
+ @cocoindex.flow_def(name="TextEmbedding")
50
+ def text_embedding_flow(flow_builder: cocoindex.FlowBuilder, data_scope: cocoindex.DataScope):
51
+ # ... See subsections below for function body
52
+ ```
53
+
54
+ ### Add Source and Collector
55
+
56
+ ```python title="main.py"
57
+ # add source
58
+ data_scope["documents"] = flow_builder.add_source(
59
+ cocoindex.sources.LocalFile(path="markdown_files"))
60
+
61
+ # add data collector
62
+ doc_embeddings = data_scope.add_collector()
63
+ ```
64
+
65
+ `flow_builder.add_source` will create a table with sub fields (`filename`, `content`)
66
+
67
+ <DocumentationButton url="https://cocoindex.io/docs/ops/sources" text="Source" />
68
+
69
+ <DocumentationButton url="https://cocoindex.io/docs/core/flow_def#data-collector" text="Data Collector" />
70
+
71
+ ### Process each document
72
+
73
+ With CocoIndex, it is easy to process nested data structures.
74
+
75
+ ```python title="main.py"
76
+ with data_scope["documents"].row() as doc:
77
+ # ... See subsections below for function body
78
+ ```
79
+
80
+
81
+ #### Chunk each document
82
+
83
+ ```python title="main.py"
84
+ doc["chunks"] = doc["content"].transform(
85
+ cocoindex.functions.SplitRecursively(),
86
+ language="markdown", chunk_size=2000, chunk_overlap=500)
87
+ ```
88
+
89
+ We extend a new field `chunks` to each row by *transforming* the `content` field using `SplitRecursively`. The output of the `SplitRecursively` is a KTable representing each chunk of the document.
90
+
91
+ <DocumentationButton url="https://cocoindex.io/docs/ops/functions#splitrecursively" text="SplitRecursively" margin="0 0 16px 0" />
92
+
93
+ ![Chunking](/img/examples/simple_vector_index/chunk.png)
94
+
95
+
96
+
97
+ #### Embed each chunk and collect the embeddings
98
+
99
+ ```python title="main.py"
100
+ with doc["chunks"].row() as chunk:
101
+ # embed
102
+ chunk["embedding"] = chunk["text"].transform(
103
+ cocoindex.functions.SentenceTransformerEmbed(
104
+ model="sentence-transformers/all-MiniLM-L6-v2"
105
+ )
106
+ )
107
+
108
+ # collect
109
+ doc_embeddings.collect(
110
+ filename=doc["filename"],
111
+ location=chunk["location"],
112
+ text=chunk["text"],
113
+ embedding=chunk["embedding"],
114
+ )
115
+ ```
116
+
117
+ This code embeds each chunk using the SentenceTransformer library and collects the results.
118
+
119
+ ![Embedding](/img/examples/simple_vector_index/embed.png)
120
+
121
+ <DocumentationButton url="https://cocoindex.io/docs/ops/functions#sentencetransformerembed" text="SentenceTransformerEmbed" margin="0 0 16px 0" />
122
+
123
+ ### Export the embeddings to Postgres
124
+
125
+ ```python title="main.py"
126
+ doc_embeddings.export(
127
+ "doc_embeddings",
128
+ cocoindex.storages.Postgres(),
129
+ primary_key_fields=["filename", "location"],
130
+ vector_indexes=[
131
+ cocoindex.VectorIndexDef(
132
+ field_name="embedding",
133
+ metric=cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY,
134
+ )
135
+ ],
136
+ )
137
+ ```
138
+
139
+ CocoIndex supports other vector databases as well, with 1-line switch.
140
+
141
+ <DocumentationButton url="https://cocoindex.io/docs/ops/targets" text="Targets" />
142
+
143
+
144
+ ## Run the indexing pipeline
145
+
146
+ - Specify the database URL by environment variable:
147
+
148
+ ```bash
149
+ export COCOINDEX_DATABASE_URL="postgresql://cocoindex:cocoindex@localhost:5432/cocoindex"
150
+ ```
151
+
152
+ - Build the index:
153
+
154
+ ```bash
155
+ cocoindex update --setup main.py
156
+ ```
157
+
158
+ CocoIndex will run for a few seconds and populate the target table with data as declared by the flow. It will output the following statistics:
159
+
160
+ ```
161
+ documents: 3 added, 0 removed, 0 updated
162
+ ```
163
+
164
+ That's it for the main indexing flow.
165
+
166
+
167
+ ## End to end: Query the index (Optional)
168
+
169
+ If you want to build a end to end query flow that also searches the index, you can follow the [simple_vector_index](https://cocoindex.io/docs/examples/simple_vector_index#query-the-index) example.
170
+
171
+
172
+ ## Next Steps
173
+
174
+ Next, you may want to:
175
+
176
+ * Learn about [CocoIndex Basics](../core/basics.md).
177
+ * Explore more of what you can build with CocoIndex in the [examples](https://cocoindex.io/docs/examples) directory.
@@ -313,6 +313,27 @@ The spec takes the following fields:
313
313
  * `included_columns` (`list[str]`, optional): non-primary-key columns to include. If not specified, all non-PK columns are included.
314
314
  * `ordinal_column` (`str`, optional): to specify a non-primary-key column used for change tracking and ordering, e.g. can be a modified timestamp or a monotonic version number. Supported types are integer-like (`bigint`/`integer`) and timestamps (`timestamp`, `timestamptz`).
315
315
  `ordinal_column` must not be a primary key column.
316
+ * `notification` (`cocoindex.sources.PostgresNotification`, optional): when present, enable change capture based on Postgres LISTEN/NOTIFY. It has the following fields:
317
+ * `channel_name` (`str`, optional): the Postgres notification channel to listen on. CocoIndex will automatically create the channel with the given name. If omitted, CocoIndex uses `{flow_name}__{source_name}__cocoindex`.
318
+
319
+ :::info
320
+
321
+ If `notification` is provided, CocoIndex listens for row changes using Postgres LISTEN/NOTIFY and creates the required database objects on demand when the flow starts listening:
322
+
323
+ - Function to create notification message: `{channel_name}_n`.
324
+ - Trigger to react to table changes: `{channel_name}_t` on the specified `table_name`.
325
+
326
+ Creation is automatic when listening begins.
327
+
328
+ Currently CocoIndex doesn't automatically clean up these objects when the flow is dropped (unlike targets)
329
+ It's usually OK to leave them as they are, but if you want to clean them up, you can run the following SQL statements to manually drop them:
330
+
331
+ ```sql
332
+ DROP TRIGGER IF EXISTS {channel_name}_t ON "{table_name}";
333
+ DROP FUNCTION IF EXISTS {channel_name}_n();
334
+ ```
335
+
336
+ :::
316
337
 
317
338
  ### Schema
318
339
 
@@ -115,7 +115,7 @@ const config: Config = {
115
115
  {
116
116
  label: 'Documentation',
117
117
  type: 'doc',
118
- docId: 'getting_started/overview',
118
+ docId: 'getting_started/quickstart',
119
119
  position: 'left',
120
120
  },
121
121
  {
@@ -35,7 +35,7 @@ type GitHubButtonProps = {
35
35
  margin?: string;
36
36
  };
37
37
 
38
- function GitHubButton({ url, margin }: GitHubButtonProps): ReactNode {
38
+ function GitHubButton({ url, margin = '0' }: GitHubButtonProps): ReactNode {
39
39
  return (
40
40
  <Button href={url} margin={margin}>
41
41
  <FaGithub style={{ marginRight: '8px', verticalAlign: 'middle', fontSize: '1rem' }} />
@@ -49,7 +49,7 @@ type YouTubeButtonProps = {
49
49
  margin?: string;
50
50
  };
51
51
 
52
- function YouTubeButton({ url, margin }: YouTubeButtonProps): ReactNode {
52
+ function YouTubeButton({ url, margin = '0' }: YouTubeButtonProps): ReactNode {
53
53
  return (
54
54
  <Button href={url} margin={margin}>
55
55
  <FaYoutube style={{ marginRight: '8px', verticalAlign: 'middle', fontSize: '1rem' }} />