datachain 0.7.3__tar.gz → 0.7.4__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.
Potentially problematic release.
This version of datachain might be problematic. Click here for more details.
- {datachain-0.7.3/src/datachain.egg-info → datachain-0.7.4}/PKG-INFO +1 -1
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/data_storage/metastore.py +0 -7
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/dataset.py +14 -3
- {datachain-0.7.3 → datachain-0.7.4/src/datachain.egg-info}/PKG-INFO +1 -1
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_dataset.py +33 -1
- {datachain-0.7.3 → datachain-0.7.4}/.cruft.json +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.gitattributes +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.github/ISSUE_TEMPLATE/empty_issue.md +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.github/codecov.yaml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.github/dependabot.yml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.github/workflows/benchmarks.yml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.github/workflows/release.yml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.github/workflows/tests-studio.yml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.github/workflows/tests.yml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.github/workflows/update-template.yaml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.gitignore +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/.pre-commit-config.yaml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/CODE_OF_CONDUCT.rst +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/CONTRIBUTING.rst +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/LICENSE +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/README.rst +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/assets/captioned_cartoons.png +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/assets/datachain-white.svg +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/assets/datachain.svg +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/index.md +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/overrides/main.html +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/references/datachain.md +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/references/datatype.md +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/references/file.md +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/references/index.md +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/references/sql.md +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/references/torch.md +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/docs/references/udf.md +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/computer_vision/iptc_exif_xmp_lib.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/computer_vision/llava2_image_desc_lib.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/computer_vision/openimage-detect.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/computer_vision/ultralytics-bbox.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/computer_vision/ultralytics-pose.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/computer_vision/ultralytics-segment.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/get_started/common_sql_functions.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/get_started/json-csv-reader.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/get_started/torch-loader.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/get_started/udfs/parallel.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/get_started/udfs/simple.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/get_started/udfs/stateful.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/llm_and_nlp/claude-query.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/llm_and_nlp/hf-dataset-llm-eval.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/llm_and_nlp/unstructured-embeddings-gen.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/llm_and_nlp/unstructured-summary-map.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/multimodal/clip_inference.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/multimodal/hf_pipeline.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/multimodal/openai_image_desc_lib.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/multimodal/wds.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/examples/multimodal/wds_filtered.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/mkdocs.yml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/noxfile.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/pyproject.toml +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/setup.cfg +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/__main__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/asyn.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/cache.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/catalog/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/catalog/catalog.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/catalog/datasource.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/catalog/loader.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/cli.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/cli_utils.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/client/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/client/azure.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/client/fileslice.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/client/fsspec.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/client/gcs.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/client/hf.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/client/local.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/client/s3.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/config.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/data_storage/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/data_storage/db_engine.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/data_storage/id_generator.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/data_storage/job.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/data_storage/schema.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/data_storage/serializer.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/data_storage/sqlite.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/data_storage/warehouse.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/error.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/func/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/func/aggregate.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/func/array.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/func/base.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/func/conditional.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/func/func.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/func/path.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/func/random.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/func/string.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/func/window.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/job.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/arrow.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/clip.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/convert/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/convert/flatten.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/convert/python_to_sql.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/convert/sql_to_python.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/convert/unflatten.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/convert/values_to_tuples.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/data_model.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/dataset_info.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/dc.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/file.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/hf.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/image.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/listing.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/listing_info.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/meta_formats.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/model_store.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/pytorch.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/settings.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/signal_schema.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/tar.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/text.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/udf.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/udf_signature.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/utils.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/vfile.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/webdataset.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/lib/webdataset_laion.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/listing.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/model/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/model/bbox.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/model/pose.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/model/segment.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/model/ultralytics/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/model/ultralytics/bbox.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/model/ultralytics/pose.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/model/ultralytics/segment.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/node.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/nodes_fetcher.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/nodes_thread_pool.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/progress.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/py.typed +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/query/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/query/batch.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/query/dataset.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/query/dispatch.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/query/metrics.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/query/params.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/query/queue.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/query/schema.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/query/session.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/remote/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/remote/studio.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/default/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/default/base.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/functions/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/functions/aggregate.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/functions/array.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/functions/conditional.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/functions/path.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/functions/random.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/functions/string.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/selectable.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/sqlite/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/sqlite/base.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/sqlite/types.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/sqlite/vector.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/types.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/sql/utils.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/studio.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/telemetry.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/toolkit/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/toolkit/split.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/torch/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain/utils.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain.egg-info/SOURCES.txt +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain.egg-info/dependency_links.txt +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain.egg-info/entry_points.txt +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain.egg-info/requires.txt +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/src/datachain.egg-info/top_level.txt +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/benchmarks/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/benchmarks/conftest.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/benchmarks/datasets/.dvc/.gitignore +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/benchmarks/datasets/.dvc/config +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/benchmarks/datasets/.gitignore +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/benchmarks/datasets/laion-tiny.npz.dvc +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/benchmarks/test_datachain.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/benchmarks/test_ls.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/benchmarks/test_version.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/conftest.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/data.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/examples/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/examples/test_examples.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/examples/test_wds_e2e.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/examples/wds_data.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_catalog.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_client.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_datachain.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_dataset_query.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_datasets.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_feature_pickling.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_listing.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_ls.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_meta_formats.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_metrics.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_pull.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_pytorch.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_query.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/func/test_toolkit.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/scripts/feature_class.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/scripts/feature_class_exception.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/scripts/feature_class_parallel.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/scripts/feature_class_parallel_data_model.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/scripts/name_len_slow.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/test_atomicity.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/test_cli_e2e.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/test_cli_studio.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/test_query_e2e.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/test_telemetry.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/conftest.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_arrow.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_clip.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_datachain.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_datachain_bootstrap.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_datachain_merge.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_feature.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_feature_utils.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_file.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_hf.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_image.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_listing_info.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_models.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_schema.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_signal_schema.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_sql_to_python.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_text.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_udf_signature.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_utils.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/lib/test_webdataset.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/sql/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/sql/sqlite/__init__.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/sql/sqlite/test_types.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/sql/sqlite/test_utils.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/sql/test_array.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/sql/test_conditional.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/sql/test_path.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/sql/test_random.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/sql/test_selectable.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/sql/test_string.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_asyn.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_cache.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_catalog.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_catalog_loader.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_cli_parsing.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_client.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_client_s3.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_config.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_data_storage.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_database_engine.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_dispatch.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_fileslice.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_func.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_id_generator.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_listing.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_metastore.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_module_exports.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_query.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_query_metrics.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_query_params.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_serializer.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_session.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_utils.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/unit/test_warehouse.py +0 -0
- {datachain-0.7.3 → datachain-0.7.4}/tests/utils.py +0 -0
|
@@ -685,13 +685,6 @@ class AbstractDBMetastore(AbstractMetastore):
|
|
|
685
685
|
return None
|
|
686
686
|
return reduce(lambda ds, version: ds.merge_versions(version), versions)
|
|
687
687
|
|
|
688
|
-
def _parse_datasets(self, rows) -> Iterator["DatasetRecord"]:
|
|
689
|
-
# grouping rows by dataset id
|
|
690
|
-
for _, g in groupby(rows, lambda r: r[0]):
|
|
691
|
-
dataset = self._parse_dataset(list(g))
|
|
692
|
-
if dataset:
|
|
693
|
-
yield dataset
|
|
694
|
-
|
|
695
688
|
def _parse_list_dataset(self, rows) -> Optional[DatasetListRecord]:
|
|
696
689
|
versions = [self.dataset_list_class.parse(*r) for r in rows]
|
|
697
690
|
if not versions:
|
|
@@ -2,6 +2,7 @@ import builtins
|
|
|
2
2
|
import json
|
|
3
3
|
from dataclasses import dataclass, fields
|
|
4
4
|
from datetime import datetime
|
|
5
|
+
from functools import cached_property
|
|
5
6
|
from typing import (
|
|
6
7
|
Any,
|
|
7
8
|
NewType,
|
|
@@ -11,6 +12,8 @@ from typing import (
|
|
|
11
12
|
)
|
|
12
13
|
from urllib.parse import urlparse
|
|
13
14
|
|
|
15
|
+
import orjson
|
|
16
|
+
|
|
14
17
|
from datachain.error import DatasetVersionNotFoundError
|
|
15
18
|
from datachain.sql.types import NAME_TYPES_MAPPING, SQLType
|
|
16
19
|
|
|
@@ -178,7 +181,7 @@ class DatasetVersion:
|
|
|
178
181
|
schema: dict[str, Union[SQLType, type[SQLType]]]
|
|
179
182
|
num_objects: Optional[int]
|
|
180
183
|
size: Optional[int]
|
|
181
|
-
|
|
184
|
+
_preview_data: Optional[Union[str, list[dict]]]
|
|
182
185
|
sources: str = ""
|
|
183
186
|
query_script: str = ""
|
|
184
187
|
job_id: Optional[str] = None
|
|
@@ -199,7 +202,7 @@ class DatasetVersion:
|
|
|
199
202
|
script_output: str,
|
|
200
203
|
num_objects: Optional[int],
|
|
201
204
|
size: Optional[int],
|
|
202
|
-
preview: Optional[str],
|
|
205
|
+
preview: Optional[Union[str, list[dict]]],
|
|
203
206
|
schema: dict[str, Union[SQLType, type[SQLType]]],
|
|
204
207
|
sources: str = "",
|
|
205
208
|
query_script: str = "",
|
|
@@ -220,7 +223,7 @@ class DatasetVersion:
|
|
|
220
223
|
schema,
|
|
221
224
|
num_objects,
|
|
222
225
|
size,
|
|
223
|
-
|
|
226
|
+
preview,
|
|
224
227
|
sources,
|
|
225
228
|
query_script,
|
|
226
229
|
job_id,
|
|
@@ -260,9 +263,17 @@ class DatasetVersion:
|
|
|
260
263
|
for c_name, c_type in self.schema.items()
|
|
261
264
|
}
|
|
262
265
|
|
|
266
|
+
@cached_property
|
|
267
|
+
def preview(self) -> Optional[list[dict]]:
|
|
268
|
+
if isinstance(self._preview_data, str):
|
|
269
|
+
return orjson.loads(self._preview_data)
|
|
270
|
+
return self._preview_data if self._preview_data else None
|
|
271
|
+
|
|
263
272
|
@classmethod
|
|
264
273
|
def from_dict(cls, d: dict[str, Any]) -> "DatasetVersion":
|
|
265
274
|
kwargs = {f.name: d[f.name] for f in fields(cls) if f.name in d}
|
|
275
|
+
if not hasattr(kwargs, "_preview_data"):
|
|
276
|
+
kwargs["_preview_data"] = d.get("preview")
|
|
266
277
|
return cls(**kwargs)
|
|
267
278
|
|
|
268
279
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import json
|
|
1
2
|
from datetime import datetime, timezone
|
|
2
3
|
|
|
3
4
|
import pytest
|
|
@@ -6,7 +7,7 @@ from sqlalchemy.dialects.sqlite import dialect as sqlite_dialect
|
|
|
6
7
|
from sqlalchemy.schema import CreateTable
|
|
7
8
|
|
|
8
9
|
from datachain.data_storage.schema import DataTable
|
|
9
|
-
from datachain.dataset import DatasetDependency, DatasetDependencyType
|
|
10
|
+
from datachain.dataset import DatasetDependency, DatasetDependencyType, DatasetVersion
|
|
10
11
|
from datachain.sql.types import (
|
|
11
12
|
JSON,
|
|
12
13
|
Array,
|
|
@@ -106,3 +107,34 @@ def test_dataset_dependency_dataset_name(dep_name, dep_type, expected):
|
|
|
106
107
|
)
|
|
107
108
|
|
|
108
109
|
assert dep.dataset_name == expected
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
@pytest.mark.parametrize(
|
|
113
|
+
"use_string",
|
|
114
|
+
[True, False],
|
|
115
|
+
)
|
|
116
|
+
def test_dataset_version_from_dict(use_string):
|
|
117
|
+
preview = [{"id": 1, "thing": "a"}, {"id": 2, "thing": "b"}]
|
|
118
|
+
|
|
119
|
+
preview_data = json.dumps(preview) if use_string else preview
|
|
120
|
+
|
|
121
|
+
data = {
|
|
122
|
+
"id": 1,
|
|
123
|
+
"uuid": "98928be4-b6e8-4b7b-a7c5-2ce3b33130d8",
|
|
124
|
+
"dataset_id": 40,
|
|
125
|
+
"version": 2,
|
|
126
|
+
"status": 1,
|
|
127
|
+
"feature_schema": {},
|
|
128
|
+
"created_at": datetime.fromisoformat("2023-10-01T12:00:00"),
|
|
129
|
+
"finished_at": None,
|
|
130
|
+
"error_message": "",
|
|
131
|
+
"error_stack": "",
|
|
132
|
+
"script_output": "",
|
|
133
|
+
"schema": {},
|
|
134
|
+
"num_objects": 100,
|
|
135
|
+
"size": 1000000,
|
|
136
|
+
"preview": preview_data,
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
dataset_version = DatasetVersion.from_dict(data)
|
|
140
|
+
assert dataset_version.preview == preview
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|