cocoindex 0.1.25__tar.gz → 0.1.27__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 (197) hide show
  1. cocoindex-0.1.27/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md +20 -0
  2. {cocoindex-0.1.25 → cocoindex-0.1.27}/.github/workflows/CI.yml +5 -2
  3. cocoindex-0.1.27/.github/workflows/_test.yml +45 -0
  4. {cocoindex-0.1.25 → cocoindex-0.1.27}/.gitignore +0 -3
  5. cocoindex-0.1.27/.vscode/settings.json +7 -0
  6. {cocoindex-0.1.25 → cocoindex-0.1.27}/Cargo.lock +100 -92
  7. {cocoindex-0.1.25 → cocoindex-0.1.27}/Cargo.toml +2 -1
  8. {cocoindex-0.1.25 → cocoindex-0.1.27}/PKG-INFO +2 -2
  9. {cocoindex-0.1.25 → cocoindex-0.1.27}/README.md +1 -1
  10. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/about/community.md +2 -2
  11. cocoindex-0.1.27/docs/docs/about/contributing.md +80 -0
  12. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/ai/llm.mdx +45 -1
  13. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/core/basics.md +3 -3
  14. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/core/custom_function.mdx +1 -1
  15. cocoindex-0.1.27/docs/docs/core/data_types.mdx +121 -0
  16. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/core/flow_def.mdx +92 -59
  17. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/core/flow_methods.mdx +1 -1
  18. cocoindex-0.1.27/docs/docs/core/initialization.mdx +121 -0
  19. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/getting_started/quickstart.md +4 -3
  20. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/ops/functions.md +1 -1
  21. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/ops/sources.md +2 -2
  22. cocoindex-0.1.27/docs/docs/ops/storages.md +393 -0
  23. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docusaurus.config.ts +5 -0
  24. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/package.json +1 -0
  25. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/yarn.lock +934 -7
  26. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/code_embedding/pyproject.toml +1 -1
  27. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.27/examples/docs_to_knowledge_graph}/main.py +45 -54
  28. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.27/examples/docs_to_knowledge_graph}/pyproject.toml +1 -1
  29. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/gdrive_text_embedding/main.py +1 -1
  30. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/gdrive_text_embedding/pyproject.toml +1 -1
  31. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/manuals_llm_extraction/main.py +13 -4
  32. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/manuals_llm_extraction/pyproject.toml +1 -1
  33. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/pdf_embedding/pyproject.toml +1 -1
  34. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding/README.md +7 -2
  35. cocoindex-0.1.27/examples/text_embedding/Text_Embedding.ipynb +392 -0
  36. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding/pyproject.toml +1 -1
  37. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding_qdrant/pyproject.toml +1 -1
  38. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/__init__.py +2 -1
  39. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/cli.py +9 -6
  40. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/convert.py +42 -21
  41. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/flow.py +46 -15
  42. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/functions.py +1 -1
  43. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/lib.py +17 -8
  44. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/llm.py +2 -0
  45. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/op.py +7 -6
  46. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/query.py +5 -4
  47. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/runtime.py +12 -4
  48. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/storages.py +10 -3
  49. cocoindex-0.1.27/python/cocoindex/tests/test_convert.py +280 -0
  50. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/typing.py +75 -47
  51. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/base/json_schema.rs +1 -1
  52. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/base/schema.rs +26 -26
  53. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/base/spec.rs +68 -3
  54. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/base/value.rs +32 -37
  55. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/builder/analyzed_flow.rs +1 -1
  56. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/builder/analyzer.rs +280 -230
  57. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/builder/flow_builder.rs +14 -4
  58. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/db_tracking_setup.rs +21 -14
  59. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/evaluator.rs +25 -27
  60. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/query.rs +2 -2
  61. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/lib_context.rs +40 -4
  62. cocoindex-0.1.27/src/llm/anthropic.rs +137 -0
  63. cocoindex-0.1.27/src/llm/gemini.rs +110 -0
  64. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/llm/mod.rs +10 -0
  65. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/factory_bases.rs +70 -34
  66. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/functions/split_recursively.rs +181 -7
  67. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/interface.rs +49 -13
  68. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/py_factory.rs +29 -18
  69. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/registration.rs +1 -1
  70. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/sdk.rs +3 -3
  71. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/sources/google_drive.rs +2 -2
  72. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/sources/local_file.rs +2 -2
  73. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/storages/neo4j.rs +239 -201
  74. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/storages/postgres.rs +117 -123
  75. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/storages/qdrant.rs +40 -34
  76. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/storages/spec.rs +13 -7
  77. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/prelude.rs +1 -1
  78. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/py/convert.rs +10 -10
  79. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/py/mod.rs +69 -41
  80. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/service/flows.rs +5 -5
  81. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/service/search.rs +4 -9
  82. cocoindex-0.1.27/src/settings.rs +13 -0
  83. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/setup/auth_registry.rs +1 -1
  84. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/setup/components.rs +1 -0
  85. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/setup/db_metadata.rs +53 -28
  86. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/setup/driver.rs +97 -57
  87. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/setup/states.rs +20 -11
  88. cocoindex-0.1.25/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md +0 -20
  89. cocoindex-0.1.25/docs/docs/about/contributing.md +0 -57
  90. cocoindex-0.1.25/docs/docs/core/data_types.mdx +0 -99
  91. cocoindex-0.1.25/docs/docs/core/initialization.mdx +0 -75
  92. cocoindex-0.1.25/docs/docs/ops/storages.md +0 -93
  93. cocoindex-0.1.25/python/cocoindex/tests/test_convert.py +0 -69
  94. cocoindex-0.1.25/src/settings.rs +0 -6
  95. {cocoindex-0.1.25 → cocoindex-0.1.27}/.cargo/config.toml +0 -0
  96. {cocoindex-0.1.25 → cocoindex-0.1.27}/.env.lib_debug +0 -0
  97. {cocoindex-0.1.25 → cocoindex-0.1.27}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
  98. {cocoindex-0.1.25 → cocoindex-0.1.27}/.github/scripts/update_version.sh +0 -0
  99. {cocoindex-0.1.25 → cocoindex-0.1.27}/.github/workflows/docs.yml +0 -0
  100. {cocoindex-0.1.25 → cocoindex-0.1.27}/.github/workflows/release.yml +0 -0
  101. {cocoindex-0.1.25 → cocoindex-0.1.27}/CODE_OF_CONDUCT.md +0 -0
  102. {cocoindex-0.1.25 → cocoindex-0.1.27}/CONTRIBUTING.md +0 -0
  103. {cocoindex-0.1.25 → cocoindex-0.1.27}/LICENSE +0 -0
  104. {cocoindex-0.1.25 → cocoindex-0.1.27}/dev/neo4j.yaml +0 -0
  105. {cocoindex-0.1.25 → cocoindex-0.1.27}/dev/postgres.yaml +0 -0
  106. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/.gitignore +0 -0
  107. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/README.md +0 -0
  108. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/core/cli.mdx +0 -0
  109. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/core/data_example.svg +0 -0
  110. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/core/flow_example.svg +0 -0
  111. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/getting_started/installation.md +0 -0
  112. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/getting_started/markdown_files.zip +0 -0
  113. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/docs/getting_started/overview.md +0 -0
  114. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/sidebars.ts +0 -0
  115. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/src/components/HomepageFeatures/index.tsx +0 -0
  116. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/src/components/HomepageFeatures/styles.module.css +0 -0
  117. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/src/css/custom.css +0 -0
  118. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/src/theme/Root.js +0 -0
  119. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/static/.nojekyll +0 -0
  120. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/static/img/docusaurus.png +0 -0
  121. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/static/img/favicon.ico +0 -0
  122. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/static/img/icon.svg +0 -0
  123. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/static/robots.txt +0 -0
  124. {cocoindex-0.1.25 → cocoindex-0.1.27}/docs/tsconfig.json +0 -0
  125. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/code_embedding/.env +0 -0
  126. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/code_embedding/README.md +0 -0
  127. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/code_embedding/main.py +0 -0
  128. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.27/examples/docs_to_knowledge_graph}/.env +0 -0
  129. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.27/examples/docs_to_knowledge_graph}/README.md +0 -0
  130. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.27/examples/docs_to_knowledge_graph}/markdown_files/1706.03762v7.md +0 -0
  131. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.27/examples/docs_to_knowledge_graph}/markdown_files/1810.04805v2.md +0 -0
  132. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.27/examples/docs_to_knowledge_graph}/markdown_files/rfc8259.md +0 -0
  133. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/gdrive_text_embedding/.env.example +0 -0
  134. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/gdrive_text_embedding/.gitignore +0 -0
  135. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/gdrive_text_embedding/README.md +0 -0
  136. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/gdrive_text_embedding/data/1706.03762v7.docx +0 -0
  137. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/gdrive_text_embedding/data/1810.04805v2.docx +0 -0
  138. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/manuals_llm_extraction/.env +0 -0
  139. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/manuals_llm_extraction/README.md +0 -0
  140. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
  141. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
  142. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
  143. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
  144. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/pdf_embedding/.env +0 -0
  145. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/pdf_embedding/README.md +0 -0
  146. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/pdf_embedding/main.py +0 -0
  147. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
  148. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
  149. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
  150. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding/.env +0 -0
  151. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding/main.py +0 -0
  152. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
  153. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
  154. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
  155. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding_qdrant/.env +0 -0
  156. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding_qdrant/README.md +0 -0
  157. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding_qdrant/main.py +0 -0
  158. {cocoindex-0.1.25 → cocoindex-0.1.27}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
  159. {cocoindex-0.1.25 → cocoindex-0.1.27}/pyproject.toml +0 -0
  160. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/auth_registry.py +0 -0
  161. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/index.py +0 -0
  162. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/py.typed +0 -0
  163. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/setup.py +0 -0
  164. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/sources.py +0 -0
  165. {cocoindex-0.1.25 → cocoindex-0.1.27}/python/cocoindex/tests/__init__.py +0 -0
  166. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/base/field_attrs.rs +0 -0
  167. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/base/mod.rs +0 -0
  168. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/builder/mod.rs +0 -0
  169. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/builder/plan.rs +0 -0
  170. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/db_tracking.rs +0 -0
  171. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/dumper.rs +0 -0
  172. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/live_updater.rs +0 -0
  173. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/memoization.rs +0 -0
  174. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/mod.rs +0 -0
  175. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/row_indexer.rs +0 -0
  176. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/source_indexer.rs +0 -0
  177. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/execution/stats.rs +0 -0
  178. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/lib.rs +0 -0
  179. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/llm/ollama.rs +0 -0
  180. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/llm/openai.rs +0 -0
  181. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/functions/extract_by_llm.rs +0 -0
  182. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/functions/mod.rs +0 -0
  183. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/functions/parse_json.rs +0 -0
  184. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/mod.rs +0 -0
  185. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/registry.rs +0 -0
  186. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/sources/mod.rs +0 -0
  187. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/ops/storages/mod.rs +0 -0
  188. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/server.rs +0 -0
  189. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/service/error.rs +0 -0
  190. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/service/mod.rs +0 -0
  191. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/setup/mod.rs +0 -0
  192. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/utils/db.rs +0 -0
  193. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/utils/fingerprint.rs +0 -0
  194. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/utils/immutable.rs +0 -0
  195. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/utils/mod.rs +0 -0
  196. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/utils/retriable.rs +0 -0
  197. {cocoindex-0.1.25 → cocoindex-0.1.27}/src/utils/yaml_ser.rs +0 -0
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: "\U0001F4A1 Feature request"
3
+ about: Suggest an idea for this project
4
+ title: "[FEATURE]"
5
+ labels: ''
6
+ type: 'feature'
7
+ assignees: ''
8
+
9
+ ---
10
+
11
+ **What is the use case?**
12
+
13
+ **Describe the solution you'd like**
14
+
15
+ **Additional context**
16
+
17
+
18
+ ---
19
+ ❤️ Contributors, please refer to 📙[Contributing Guide](https://cocoindex.io/docs/about/contributing).
20
+ Unless the PR can be sent immediately (e.g. just a few lines of code), we recommend you to leave a comment on the issue like **`I'm working on it`** or **`Can I work on this issue?`** to avoid duplicating work. Our [Discord server](https://discord.com/invite/zpA9S2DR7s) is always open and friendly.
@@ -12,14 +12,14 @@ on:
12
12
  - src/**
13
13
  - python/**
14
14
  - "*.toml"
15
- - ".github/workflows/CI.yml"
15
+ - ".github/workflows/*.yml"
16
16
  push:
17
17
  branches: [main]
18
18
  paths:
19
19
  - src/**
20
20
  - python/**
21
21
  - "*.toml"
22
- - ".github/workflows/CI.yml"
22
+ - ".github/workflows/*.yml"
23
23
  workflow_dispatch:
24
24
 
25
25
  permissions:
@@ -46,3 +46,6 @@ jobs:
46
46
  sccache: 'true'
47
47
  manylinux: auto
48
48
  container: ${{ matrix.platform.container }}
49
+ test:
50
+ name: Run test
51
+ uses: ./.github/workflows/_test.yml
@@ -0,0 +1,45 @@
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, 3.13]
14
+ platform: [ubuntu-latest, macos-latest]
15
+ runs-on: ${{ matrix.platform }}
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - run: rustup toolchain install stable --profile minimal
20
+ - name: Rust Cache
21
+ uses: Swatinem/rust-cache@v2
22
+ with:
23
+ key: ${{ runner.os }}-rust-${{ matrix.python-version }}
24
+ - name: Rust build
25
+ run: cargo build --verbose
26
+ - name: Rust tests
27
+ run: cargo test --verbose
28
+
29
+ - uses: actions/setup-python@v5
30
+ with:
31
+ python-version: ${{ matrix.python-version }}
32
+ cache: 'pip'
33
+ - uses: actions/cache@v4
34
+ with:
35
+ path: .venv
36
+ key: ${{ runner.os }}-pythonenv-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
37
+ restore-keys: |
38
+ ${{ runner.os }}-pythonenv-${{ matrix.python-version }}-
39
+ - name: Python build & test
40
+ run: |
41
+ python -m venv .venv
42
+ source .venv/bin/activate
43
+ pip install maturin pytest
44
+ maturin develop
45
+ pytest python/cocoindex/tests
@@ -14,9 +14,6 @@ dist/
14
14
 
15
15
  .DS_Store
16
16
 
17
- # Lock files for dependencies should be ignored for library
18
- /Cargo.lock
19
-
20
17
  *.egg-info/
21
18
 
22
19
  # Output of `cocoindex eval`
@@ -0,0 +1,7 @@
1
+ {
2
+ "cSpell.words": [
3
+ "cocoindex",
4
+ "reindexing",
5
+ "timedelta"
6
+ ]
7
+ }