cocoindex 0.1.30__tar.gz → 0.1.32__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cocoindex-0.1.30 → cocoindex-0.1.32}/Cargo.lock +7 -140
- {cocoindex-0.1.30 → cocoindex-0.1.32}/Cargo.toml +1 -2
- {cocoindex-0.1.30 → cocoindex-0.1.32}/PKG-INFO +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/code_embedding/README.md +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/code_embedding/pyproject.toml +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/docs_to_knowledge_graph/README.md +1 -5
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/docs_to_knowledge_graph/pyproject.toml +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/gdrive_text_embedding/README.md +2 -2
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/gdrive_text_embedding/pyproject.toml +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/manuals_llm_extraction/README.md +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/manuals_llm_extraction/pyproject.toml +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/pdf_embedding/README.md +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/pdf_embedding/pyproject.toml +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding/README.md +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding/pyproject.toml +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding_qdrant/README.md +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding_qdrant/pyproject.toml +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/cli.py +20 -3
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/flow.py +3 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/setting.py +1 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/base/schema.rs +39 -51
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/builder/analyzed_flow.rs +2 -2
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/builder/analyzer.rs +259 -198
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/builder/flow_builder.rs +172 -330
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/builder/plan.rs +2 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/dumper.rs +6 -8
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/evaluator.rs +74 -50
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/row_indexer.rs +22 -16
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/stats.rs +17 -11
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/lib_context.rs +0 -1
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/py/mod.rs +55 -1
- cocoindex-0.1.32/src/server.rs +90 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/service/flows.rs +5 -5
- cocoindex-0.1.30/src/server.rs +0 -81
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.cargo/config.toml +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.env.lib_debug +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md" +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.github/scripts/update_version.sh +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.github/workflows/CI.yml +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.github/workflows/_test.yml +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.github/workflows/docs.yml +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.github/workflows/release.yml +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.gitignore +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/.vscode/settings.json +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/CODE_OF_CONDUCT.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/CONTRIBUTING.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/LICENSE +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/README.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/dev/neo4j.yaml +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/dev/postgres.yaml +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/.gitignore +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/README.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/about/community.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/about/contributing.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/ai/llm.mdx +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/core/basics.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/core/cli.mdx +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/core/custom_function.mdx +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/core/data_example.svg +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/core/data_types.mdx +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/core/flow_def.mdx +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/core/flow_example.svg +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/core/flow_methods.mdx +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/core/initialization.mdx +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/getting_started/installation.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/getting_started/markdown_files.zip +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/getting_started/overview.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/getting_started/quickstart.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/ops/functions.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/ops/sources.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docs/ops/storages.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/docusaurus.config.ts +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/package.json +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/sidebars.ts +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/src/components/HomepageFeatures/index.tsx +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/src/components/HomepageFeatures/styles.module.css +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/src/css/custom.css +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/src/theme/Root.js +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/static/.nojekyll +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/static/img/docusaurus.png +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/static/img/favicon.ico +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/static/img/icon.svg +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/static/robots.txt +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/tsconfig.json +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/docs/yarn.lock +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/code_embedding/.env +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/code_embedding/main.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/docs_to_knowledge_graph/.env +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/docs_to_knowledge_graph/main.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/docs_to_knowledge_graph/markdown_files/1706.03762v7.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/docs_to_knowledge_graph/markdown_files/1810.04805v2.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/docs_to_knowledge_graph/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/gdrive_text_embedding/.env.example +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/gdrive_text_embedding/.gitignore +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/gdrive_text_embedding/data/1706.03762v7.docx +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/gdrive_text_embedding/data/1810.04805v2.docx +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/gdrive_text_embedding/main.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/manuals_llm_extraction/.env +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/manuals_llm_extraction/main.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/pdf_embedding/.env +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/pdf_embedding/main.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding/.env +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding/Text_Embedding.ipynb +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding/main.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding_qdrant/.env +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding_qdrant/main.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/pyproject.toml +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/__init__.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/auth_registry.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/convert.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/functions.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/index.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/lib.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/llm.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/op.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/py.typed +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/query.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/runtime.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/setup.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/sources.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/storages.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/tests/__init__.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/tests/test_convert.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/python/cocoindex/typing.py +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/base/field_attrs.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/base/json_schema.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/base/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/base/spec.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/base/value.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/builder/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/db_tracking.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/db_tracking_setup.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/live_updater.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/memoization.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/query.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/execution/source_indexer.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/lib.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/llm/anthropic.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/llm/gemini.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/llm/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/llm/ollama.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/llm/openai.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/factory_bases.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/functions/extract_by_llm.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/functions/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/functions/parse_json.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/functions/split_recursively.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/interface.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/py_factory.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/registration.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/registry.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/sdk.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/sources/google_drive.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/sources/local_file.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/sources/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/storages/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/storages/neo4j.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/storages/postgres.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/storages/qdrant.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/ops/storages/spec.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/prelude.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/py/convert.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/service/error.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/service/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/service/search.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/settings.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/setup/auth_registry.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/setup/components.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/setup/db_metadata.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/setup/driver.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/setup/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/setup/states.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/utils/db.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/utils/fingerprint.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/utils/immutable.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/utils/mod.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/src/utils/retriable.rs +0 -0
- {cocoindex-0.1.30 → cocoindex-0.1.32}/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.
|
536
|
+
version = "0.1.32"
|
537
537
|
dependencies = [
|
538
538
|
"anyhow",
|
539
539
|
"async-openai",
|
@@ -546,7 +546,6 @@ dependencies = [
|
|
546
546
|
"bytes",
|
547
547
|
"chrono",
|
548
548
|
"config",
|
549
|
-
"console-subscriber",
|
550
549
|
"const_format",
|
551
550
|
"derivative",
|
552
551
|
"env_logger",
|
@@ -649,45 +648,6 @@ dependencies = [
|
|
649
648
|
"yaml-rust2 0.8.1",
|
650
649
|
]
|
651
650
|
|
652
|
-
[[package]]
|
653
|
-
name = "console-api"
|
654
|
-
version = "0.8.1"
|
655
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
656
|
-
checksum = "8030735ecb0d128428b64cd379809817e620a40e5001c54465b99ec5feec2857"
|
657
|
-
dependencies = [
|
658
|
-
"futures-core",
|
659
|
-
"prost",
|
660
|
-
"prost-types",
|
661
|
-
"tonic",
|
662
|
-
"tracing-core",
|
663
|
-
]
|
664
|
-
|
665
|
-
[[package]]
|
666
|
-
name = "console-subscriber"
|
667
|
-
version = "0.4.1"
|
668
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
669
|
-
checksum = "6539aa9c6a4cd31f4b1c040f860a1eac9aa80e7df6b05d506a6e7179936d6a01"
|
670
|
-
dependencies = [
|
671
|
-
"console-api",
|
672
|
-
"crossbeam-channel",
|
673
|
-
"crossbeam-utils",
|
674
|
-
"futures-task",
|
675
|
-
"hdrhistogram",
|
676
|
-
"humantime",
|
677
|
-
"hyper-util",
|
678
|
-
"prost",
|
679
|
-
"prost-types",
|
680
|
-
"serde",
|
681
|
-
"serde_json",
|
682
|
-
"thread_local",
|
683
|
-
"tokio",
|
684
|
-
"tokio-stream",
|
685
|
-
"tonic",
|
686
|
-
"tracing",
|
687
|
-
"tracing-core",
|
688
|
-
"tracing-subscriber",
|
689
|
-
]
|
690
|
-
|
691
651
|
[[package]]
|
692
652
|
name = "const-oid"
|
693
653
|
version = "0.9.6"
|
@@ -802,15 +762,6 @@ dependencies = [
|
|
802
762
|
"cfg-if",
|
803
763
|
]
|
804
764
|
|
805
|
-
[[package]]
|
806
|
-
name = "crossbeam-channel"
|
807
|
-
version = "0.5.15"
|
808
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
809
|
-
checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
|
810
|
-
dependencies = [
|
811
|
-
"crossbeam-utils",
|
812
|
-
]
|
813
|
-
|
814
765
|
[[package]]
|
815
766
|
name = "crossbeam-queue"
|
816
767
|
version = "0.3.12"
|
@@ -1328,8 +1279,8 @@ dependencies = [
|
|
1328
1279
|
"aho-corasick",
|
1329
1280
|
"bstr",
|
1330
1281
|
"log",
|
1331
|
-
"regex-automata
|
1332
|
-
"regex-syntax
|
1282
|
+
"regex-automata",
|
1283
|
+
"regex-syntax",
|
1333
1284
|
]
|
1334
1285
|
|
1335
1286
|
[[package]]
|
@@ -1439,19 +1390,6 @@ dependencies = [
|
|
1439
1390
|
"hashbrown 0.15.2",
|
1440
1391
|
]
|
1441
1392
|
|
1442
|
-
[[package]]
|
1443
|
-
name = "hdrhistogram"
|
1444
|
-
version = "7.5.4"
|
1445
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1446
|
-
checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d"
|
1447
|
-
dependencies = [
|
1448
|
-
"base64 0.21.7",
|
1449
|
-
"byteorder",
|
1450
|
-
"flate2",
|
1451
|
-
"nom",
|
1452
|
-
"num-traits",
|
1453
|
-
]
|
1454
|
-
|
1455
1393
|
[[package]]
|
1456
1394
|
name = "heck"
|
1457
1395
|
version = "0.5.0"
|
@@ -1543,12 +1481,6 @@ version = "1.0.3"
|
|
1543
1481
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1544
1482
|
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
|
1545
1483
|
|
1546
|
-
[[package]]
|
1547
|
-
name = "humantime"
|
1548
|
-
version = "2.2.0"
|
1549
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1550
|
-
checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f"
|
1551
|
-
|
1552
1484
|
[[package]]
|
1553
1485
|
name = "hyper"
|
1554
1486
|
version = "1.6.0"
|
@@ -2016,15 +1948,6 @@ version = "0.4.27"
|
|
2016
1948
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2017
1949
|
checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
|
2018
1950
|
|
2019
|
-
[[package]]
|
2020
|
-
name = "matchers"
|
2021
|
-
version = "0.1.0"
|
2022
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023
|
-
checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
|
2024
|
-
dependencies = [
|
2025
|
-
"regex-automata 0.1.10",
|
2026
|
-
]
|
2027
|
-
|
2028
1951
|
[[package]]
|
2029
1952
|
name = "matchit"
|
2030
1953
|
version = "0.7.3"
|
@@ -2822,17 +2745,8 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
|
|
2822
2745
|
dependencies = [
|
2823
2746
|
"aho-corasick",
|
2824
2747
|
"memchr",
|
2825
|
-
"regex-automata
|
2826
|
-
"regex-syntax
|
2827
|
-
]
|
2828
|
-
|
2829
|
-
[[package]]
|
2830
|
-
name = "regex-automata"
|
2831
|
-
version = "0.1.10"
|
2832
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2833
|
-
checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
|
2834
|
-
dependencies = [
|
2835
|
-
"regex-syntax 0.6.29",
|
2748
|
+
"regex-automata",
|
2749
|
+
"regex-syntax",
|
2836
2750
|
]
|
2837
2751
|
|
2838
2752
|
[[package]]
|
@@ -2843,15 +2757,9 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
|
|
2843
2757
|
dependencies = [
|
2844
2758
|
"aho-corasick",
|
2845
2759
|
"memchr",
|
2846
|
-
"regex-syntax
|
2760
|
+
"regex-syntax",
|
2847
2761
|
]
|
2848
2762
|
|
2849
|
-
[[package]]
|
2850
|
-
name = "regex-syntax"
|
2851
|
-
version = "0.6.29"
|
2852
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2853
|
-
checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
|
2854
|
-
|
2855
2763
|
[[package]]
|
2856
2764
|
name = "regex-syntax"
|
2857
2765
|
version = "0.8.5"
|
@@ -3348,15 +3256,6 @@ dependencies = [
|
|
3348
3256
|
"digest",
|
3349
3257
|
]
|
3350
3258
|
|
3351
|
-
[[package]]
|
3352
|
-
name = "sharded-slab"
|
3353
|
-
version = "0.1.7"
|
3354
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3355
|
-
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
|
3356
|
-
dependencies = [
|
3357
|
-
"lazy_static",
|
3358
|
-
]
|
3359
|
-
|
3360
3259
|
[[package]]
|
3361
3260
|
name = "shlex"
|
3362
3261
|
version = "1.3.0"
|
@@ -3768,16 +3667,6 @@ dependencies = [
|
|
3768
3667
|
"syn 2.0.101",
|
3769
3668
|
]
|
3770
3669
|
|
3771
|
-
[[package]]
|
3772
|
-
name = "thread_local"
|
3773
|
-
version = "1.1.8"
|
3774
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3775
|
-
checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
|
3776
|
-
dependencies = [
|
3777
|
-
"cfg-if",
|
3778
|
-
"once_cell",
|
3779
|
-
]
|
3780
|
-
|
3781
3670
|
[[package]]
|
3782
3671
|
name = "time"
|
3783
3672
|
version = "0.3.41"
|
@@ -4078,22 +3967,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4078
3967
|
checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
|
4079
3968
|
dependencies = [
|
4080
3969
|
"once_cell",
|
4081
|
-
"valuable",
|
4082
|
-
]
|
4083
|
-
|
4084
|
-
[[package]]
|
4085
|
-
name = "tracing-subscriber"
|
4086
|
-
version = "0.3.19"
|
4087
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
4088
|
-
checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
|
4089
|
-
dependencies = [
|
4090
|
-
"matchers",
|
4091
|
-
"once_cell",
|
4092
|
-
"regex",
|
4093
|
-
"sharded-slab",
|
4094
|
-
"thread_local",
|
4095
|
-
"tracing",
|
4096
|
-
"tracing-core",
|
4097
3970
|
]
|
4098
3971
|
|
4099
3972
|
[[package]]
|
@@ -4104,7 +3977,7 @@ checksum = "b9ac5ea5e7f2f1700842ec071401010b9c59bf735295f6e9fa079c3dc035b167"
|
|
4104
3977
|
dependencies = [
|
4105
3978
|
"cc",
|
4106
3979
|
"regex",
|
4107
|
-
"regex-syntax
|
3980
|
+
"regex-syntax",
|
4108
3981
|
"serde_json",
|
4109
3982
|
"streaming-iterator",
|
4110
3983
|
"tree-sitter-language",
|
@@ -4476,12 +4349,6 @@ dependencies = [
|
|
4476
4349
|
"serde",
|
4477
4350
|
]
|
4478
4351
|
|
4479
|
-
[[package]]
|
4480
|
-
name = "valuable"
|
4481
|
-
version = "0.1.1"
|
4482
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
4483
|
-
checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
|
4484
|
-
|
4485
4352
|
[[package]]
|
4486
4353
|
name = "vcpkg"
|
4487
4354
|
version = "0.2.15"
|
@@ -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.
|
5
|
+
version = "0.1.32"
|
6
6
|
edition = "2021"
|
7
7
|
|
8
8
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
@@ -52,7 +52,6 @@ itertools = "0.14.0"
|
|
52
52
|
derivative = "2.2.0"
|
53
53
|
hex = "0.4.3"
|
54
54
|
schemars = "0.8.22"
|
55
|
-
console-subscriber = "0.4.1"
|
56
55
|
env_logger = "0.11.7"
|
57
56
|
reqwest = { version = "0.12.15", default-features = false, features = [
|
58
57
|
"json",
|
@@ -46,7 +46,7 @@ CocoInsight is in Early Access now (Free) 😊 You found us! A quick 3 minute vi
|
|
46
46
|
Run CocoInsight to understand your RAG data pipeline:
|
47
47
|
|
48
48
|
```
|
49
|
-
python main.py cocoindex server -
|
49
|
+
python main.py cocoindex server -ci
|
50
50
|
```
|
51
51
|
|
52
52
|
Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
|
@@ -3,4 +3,4 @@ name = "code-embedding"
|
|
3
3
|
version = "0.1.0"
|
4
4
|
description = "Simple example for cocoindex: build embedding index based on source code."
|
5
5
|
requires-python = ">=3.10"
|
6
|
-
dependencies = ["cocoindex>=0.1.
|
6
|
+
dependencies = ["cocoindex>=0.1.30", "python-dotenv>=1.0.1"]
|
@@ -66,15 +66,11 @@ I used CocoInsight (Free beta now) to troubleshoot the index generation and unde
|
|
66
66
|
It just connects to your local CocoIndex server, with Zero pipeline data retention. Run following command to start CocoInsight:
|
67
67
|
|
68
68
|
```bash
|
69
|
-
|
69
|
+
python main.py cocoindex server -ci
|
70
70
|
```
|
71
71
|
|
72
72
|
And then open the url https://cocoindex.io/cocoinsight.
|
73
73
|
|
74
|
-
```
|
75
|
-
python main.py cocoindex server -c https://cocoindex.io
|
76
|
-
```
|
77
|
-
|
78
74
|
<img width="1430" alt="cocoinsight" src="https://github.com/user-attachments/assets/d5ada581-cceb-42bf-a949-132df674f3dd" />
|
79
75
|
|
80
76
|
|
@@ -3,4 +3,4 @@ name = "manuals-to-kg"
|
|
3
3
|
version = "0.1.0"
|
4
4
|
description = "Simple example for cocoindex: extract triples from files and build knowledge graph."
|
5
5
|
requires-python = ">=3.10"
|
6
|
-
dependencies = ["cocoindex>=0.1.
|
6
|
+
dependencies = ["cocoindex>=0.1.30", "python-dotenv>=1.0.1"]
|
@@ -53,13 +53,13 @@ CocoInsight is in Early Access now (Free) 😊 You found us! A quick 3 minute vi
|
|
53
53
|
Run CocoInsight to understand your RAG data pipeline:
|
54
54
|
|
55
55
|
```sh
|
56
|
-
python main.py cocoindex server -
|
56
|
+
python main.py cocoindex server -ci
|
57
57
|
```
|
58
58
|
|
59
59
|
You can also add a `-L` flag to make the server keep updating the index to reflect source changes at the same time:
|
60
60
|
|
61
61
|
```sh
|
62
|
-
python main.py cocoindex server -
|
62
|
+
python main.py cocoindex server -ci -L
|
63
63
|
```
|
64
64
|
|
65
65
|
Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
|
@@ -3,4 +3,4 @@ name = "gdrive-text-embedding"
|
|
3
3
|
version = "0.1.0"
|
4
4
|
description = "Simple example for cocoindex: build embedding index based on Google Drive files."
|
5
5
|
requires-python = ">=3.11"
|
6
|
-
dependencies = ["cocoindex>=0.1.
|
6
|
+
dependencies = ["cocoindex>=0.1.30", "python-dotenv>=1.0.1"]
|
@@ -65,7 +65,7 @@ CocoInsight is a tool to help you understand your data pipeline and data index.
|
|
65
65
|
Run CocoInsight to understand your RAG data pipeline:
|
66
66
|
|
67
67
|
```
|
68
|
-
python main.py cocoindex server -
|
68
|
+
python main.py cocoindex server -ci
|
69
69
|
```
|
70
70
|
|
71
71
|
Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight). It connects to your local CocoIndex server with zero data retention.
|
@@ -4,7 +4,7 @@ version = "0.1.0"
|
|
4
4
|
description = "Simple example for cocoindex: extract structured information from a Markdown file using LLM."
|
5
5
|
requires-python = ">=3.10"
|
6
6
|
dependencies = [
|
7
|
-
"cocoindex>=0.1.
|
7
|
+
"cocoindex>=0.1.30",
|
8
8
|
"python-dotenv>=1.0.1",
|
9
9
|
"marker-pdf>=1.5.2",
|
10
10
|
]
|
@@ -35,7 +35,7 @@ CocoInsight is in Early Access now (Free) 😊 You found us! A quick 3 minute vi
|
|
35
35
|
Run CocoInsight to understand your RAG data pipeline:
|
36
36
|
|
37
37
|
```
|
38
|
-
python main.py cocoindex server -
|
38
|
+
python main.py cocoindex server -ci
|
39
39
|
```
|
40
40
|
|
41
41
|
Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
|
@@ -39,7 +39,7 @@ CocoInsight is in Early Access now (Free) 😊 You found us! A quick 3 minute vi
|
|
39
39
|
Run CocoInsight to understand your RAG data pipeline:
|
40
40
|
|
41
41
|
```
|
42
|
-
python main.py cocoindex server -
|
42
|
+
python main.py cocoindex server -ci
|
43
43
|
```
|
44
44
|
|
45
45
|
Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
|
@@ -3,4 +3,4 @@ name = "text-embedding"
|
|
3
3
|
version = "0.1.0"
|
4
4
|
description = "Simple example for cocoindex: build embedding index based on local text files."
|
5
5
|
requires-python = ">=3.10"
|
6
|
-
dependencies = ["cocoindex>=0.1.
|
6
|
+
dependencies = ["cocoindex>=0.1.30", "python-dotenv>=1.0.1"]
|
@@ -63,7 +63,7 @@ CocoInsight is in Early Access now (Free) 😊 You found us! A quick 3 minute vi
|
|
63
63
|
Run CocoInsight to understand your RAG data pipeline:
|
64
64
|
|
65
65
|
```bash
|
66
|
-
python main.py cocoindex server -
|
66
|
+
python main.py cocoindex server -ci
|
67
67
|
```
|
68
68
|
|
69
69
|
Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
|
@@ -3,4 +3,4 @@ name = "text-embedding-qdrant"
|
|
3
3
|
version = "0.1.0"
|
4
4
|
description = "Simple example for cocoindex: build embedding index based on local text files."
|
5
5
|
requires-python = ">=3.10"
|
6
|
-
dependencies = ["cocoindex>=0.1.
|
6
|
+
dependencies = ["cocoindex>=0.1.30", "python-dotenv>=1.0.1"]
|
@@ -1,7 +1,9 @@
|
|
1
|
+
import asyncio
|
1
2
|
import click
|
2
3
|
import datetime
|
3
4
|
|
4
5
|
from rich.console import Console
|
6
|
+
from rich.table import Table
|
5
7
|
|
6
8
|
from . import flow, lib, setting
|
7
9
|
from .setup import sync_setup, drop_setup, flow_names_with_setup, apply_setup_changes
|
@@ -56,11 +58,26 @@ def ls(show_all: bool):
|
|
56
58
|
@click.option("--color/--no-color", default=True)
|
57
59
|
def show(flow_name: str | None, color: bool):
|
58
60
|
"""
|
59
|
-
Show the flow spec in a readable format with colored output
|
61
|
+
Show the flow spec in a readable format with colored output,
|
62
|
+
including the schema.
|
60
63
|
"""
|
61
|
-
|
64
|
+
flow = _flow_by_name(flow_name)
|
62
65
|
console = Console(no_color=not color)
|
63
|
-
console.print(
|
66
|
+
console.print(flow._render_text())
|
67
|
+
|
68
|
+
table = Table(
|
69
|
+
title=f"Schema for Flow: {flow.name}",
|
70
|
+
show_header=True,
|
71
|
+
header_style="bold magenta"
|
72
|
+
)
|
73
|
+
table.add_column("Field", style="cyan")
|
74
|
+
table.add_column("Type", style="green")
|
75
|
+
table.add_column("Attributes", style="yellow")
|
76
|
+
|
77
|
+
for field_name, field_type, attr_str in flow._render_schema():
|
78
|
+
table.add_row(field_name, field_type, attr_str)
|
79
|
+
|
80
|
+
console.print(table)
|
64
81
|
|
65
82
|
@cli.command()
|
66
83
|
def setup():
|
@@ -503,6 +503,9 @@ class Flow:
|
|
503
503
|
return self._format_flow(flow_dict)
|
504
504
|
except json.JSONDecodeError:
|
505
505
|
return Text(flow_spec_str)
|
506
|
+
|
507
|
+
def _render_schema(self) -> list[tuple[str, str, str]]:
|
508
|
+
return self._lazy_engine_flow().get_schema()
|
506
509
|
|
507
510
|
def __str__(self):
|
508
511
|
return str(self._render_text())
|
@@ -47,7 +47,7 @@ class ServerSettings:
|
|
47
47
|
"""Settings for the cocoindex server."""
|
48
48
|
|
49
49
|
# The address to bind the server to.
|
50
|
-
address: str = "127.0.0.1:
|
50
|
+
address: str = "127.0.0.1:49344"
|
51
51
|
|
52
52
|
# The origins of the clients (e.g. CocoInsight UI) to allow CORS from.
|
53
53
|
cors_origins: list[str] | None = None
|
@@ -1,9 +1,7 @@
|
|
1
|
-
use crate::
|
1
|
+
use crate::prelude::*;
|
2
2
|
|
3
3
|
use super::spec::*;
|
4
|
-
use
|
5
|
-
use serde::{Deserialize, Serialize};
|
6
|
-
use std::{collections::BTreeMap, ops::Deref, sync::Arc};
|
4
|
+
use crate::builder::plan::AnalyzedValueMapping;
|
7
5
|
|
8
6
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
9
7
|
pub struct VectorTypeSchema {
|
@@ -60,27 +58,26 @@ pub enum BasicValueType {
|
|
60
58
|
impl std::fmt::Display for BasicValueType {
|
61
59
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
62
60
|
match self {
|
63
|
-
BasicValueType::Bytes => write!(f, "
|
64
|
-
BasicValueType::Str => write!(f, "
|
65
|
-
BasicValueType::Bool => write!(f, "
|
66
|
-
BasicValueType::Int64 => write!(f, "
|
67
|
-
BasicValueType::Float32 => write!(f, "
|
68
|
-
BasicValueType::Float64 => write!(f, "
|
69
|
-
BasicValueType::Range => write!(f, "
|
70
|
-
BasicValueType::Uuid => write!(f, "
|
71
|
-
BasicValueType::Date => write!(f, "
|
72
|
-
BasicValueType::Time => write!(f, "
|
73
|
-
BasicValueType::LocalDateTime => write!(f, "
|
74
|
-
BasicValueType::OffsetDateTime => write!(f, "
|
75
|
-
BasicValueType::Json => write!(f, "
|
76
|
-
BasicValueType::Vector(s) =>
|
77
|
-
f,
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
),
|
61
|
+
BasicValueType::Bytes => write!(f, "Bytes"),
|
62
|
+
BasicValueType::Str => write!(f, "Str"),
|
63
|
+
BasicValueType::Bool => write!(f, "Bool"),
|
64
|
+
BasicValueType::Int64 => write!(f, "Int64"),
|
65
|
+
BasicValueType::Float32 => write!(f, "Float32"),
|
66
|
+
BasicValueType::Float64 => write!(f, "Float64"),
|
67
|
+
BasicValueType::Range => write!(f, "Range"),
|
68
|
+
BasicValueType::Uuid => write!(f, "Uuid"),
|
69
|
+
BasicValueType::Date => write!(f, "Date"),
|
70
|
+
BasicValueType::Time => write!(f, "Time"),
|
71
|
+
BasicValueType::LocalDateTime => write!(f, "LocalDateTime"),
|
72
|
+
BasicValueType::OffsetDateTime => write!(f, "OffsetDateTime"),
|
73
|
+
BasicValueType::Json => write!(f, "Json"),
|
74
|
+
BasicValueType::Vector(s) => {
|
75
|
+
write!(f, "Vector[{}", s.element_type)?;
|
76
|
+
if let Some(dimension) = s.dimension {
|
77
|
+
write!(f, ", {}", dimension)?;
|
78
|
+
}
|
79
|
+
write!(f, "]")
|
80
|
+
}
|
84
81
|
}
|
85
82
|
}
|
86
83
|
}
|
@@ -141,9 +138,6 @@ impl std::fmt::Display for TableKind {
|
|
141
138
|
pub struct TableSchema {
|
142
139
|
pub kind: TableKind,
|
143
140
|
pub row: StructSchema,
|
144
|
-
|
145
|
-
#[serde(default = "Vec::new", skip_serializing_if = "Vec::is_empty")]
|
146
|
-
pub collectors: Vec<NamedSpec<Arc<CollectorSchema>>>,
|
147
141
|
}
|
148
142
|
|
149
143
|
impl TableSchema {
|
@@ -170,36 +164,19 @@ impl TableSchema {
|
|
170
164
|
Self {
|
171
165
|
kind: self.kind,
|
172
166
|
row: self.row.without_attrs(),
|
173
|
-
collectors: self
|
174
|
-
.collectors
|
175
|
-
.iter()
|
176
|
-
.map(|c| NamedSpec {
|
177
|
-
name: c.name.clone(),
|
178
|
-
spec: Arc::from(c.spec.without_attrs()),
|
179
|
-
})
|
180
|
-
.collect(),
|
181
167
|
}
|
182
168
|
}
|
183
169
|
}
|
184
170
|
|
185
171
|
impl std::fmt::Display for TableSchema {
|
186
172
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
187
|
-
write!(f, "{}({}", self.kind, self.row)
|
188
|
-
for collector in self.collectors.iter() {
|
189
|
-
write!(f, "; COLLECTOR {} ({})", collector.name, collector.spec)?;
|
190
|
-
}
|
191
|
-
write!(f, ")")?;
|
192
|
-
Ok(())
|
173
|
+
write!(f, "{}({})", self.kind, self.row)
|
193
174
|
}
|
194
175
|
}
|
195
176
|
|
196
177
|
impl TableSchema {
|
197
178
|
pub fn new(kind: TableKind, row: StructSchema) -> Self {
|
198
|
-
Self {
|
199
|
-
kind,
|
200
|
-
row,
|
201
|
-
collectors: Default::default(),
|
202
|
-
}
|
179
|
+
Self { kind, row }
|
203
180
|
}
|
204
181
|
|
205
182
|
pub fn key_field(&self) -> Option<&FieldSchema> {
|
@@ -409,16 +386,27 @@ impl CollectorSchema {
|
|
409
386
|
}
|
410
387
|
}
|
411
388
|
|
389
|
+
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
|
390
|
+
pub struct OpScopeSchema {
|
391
|
+
/// Output schema for transform ops.
|
392
|
+
pub op_output_types: HashMap<FieldName, EnrichedValueType>,
|
393
|
+
|
394
|
+
/// Child op scope for foreach ops.
|
395
|
+
pub op_scopes: HashMap<String, Arc<OpScopeSchema>>,
|
396
|
+
|
397
|
+
/// Collectors for the current scope.
|
398
|
+
pub collectors: Vec<NamedSpec<Arc<CollectorSchema>>>,
|
399
|
+
}
|
400
|
+
|
412
401
|
/// Top-level schema for a flow instance.
|
413
402
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
414
|
-
pub struct
|
403
|
+
pub struct FlowSchema {
|
415
404
|
pub schema: StructSchema,
|
416
405
|
|
417
|
-
|
418
|
-
pub collectors: Vec<NamedSpec<Arc<CollectorSchema>>>,
|
406
|
+
pub root_op_scope: OpScopeSchema,
|
419
407
|
}
|
420
408
|
|
421
|
-
impl Deref for
|
409
|
+
impl std::ops::Deref for FlowSchema {
|
422
410
|
type Target = StructSchema;
|
423
411
|
|
424
412
|
fn deref(&self) -> &Self::Target {
|
@@ -9,7 +9,7 @@ use crate::{
|
|
9
9
|
|
10
10
|
pub struct AnalyzedFlow {
|
11
11
|
pub flow_instance: spec::FlowInstanceSpec,
|
12
|
-
pub data_schema: schema::
|
12
|
+
pub data_schema: schema::FlowSchema,
|
13
13
|
pub desired_state: setup::FlowSetupState<setup::DesiredMode>,
|
14
14
|
/// It's None if the flow is not up to date
|
15
15
|
pub execution_plan:
|
@@ -67,7 +67,7 @@ impl AnalyzedFlow {
|
|
67
67
|
|
68
68
|
pub struct AnalyzedTransientFlow {
|
69
69
|
pub transient_flow_instance: spec::TransientFlowSpec,
|
70
|
-
pub data_schema: schema::
|
70
|
+
pub data_schema: schema::FlowSchema,
|
71
71
|
pub execution_plan: plan::TransientExecutionPlan,
|
72
72
|
pub output_type: schema::EnrichedValueType,
|
73
73
|
}
|