datachain 0.18.5__tar.gz → 0.18.7__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.18.5/src/datachain.egg-info → datachain-0.18.7}/PKG-INFO +1 -1
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/remotes.md +1 -1
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/client/azure.py +1 -1
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/client/fsspec.py +5 -2
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/client/gcs.py +2 -2
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/client/s3.py +9 -3
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/dispatch.py +4 -3
- {datachain-0.18.5 → datachain-0.18.7/src/datachain.egg-info}/PKG-INFO +1 -1
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_datachain.py +42 -1
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_listing.py +6 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_datachain.py +1 -1
- {datachain-0.18.5 → datachain-0.18.7}/.cruft.json +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.gitattributes +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.github/ISSUE_TEMPLATE/empty_issue.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.github/codecov.yaml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.github/dependabot.yml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.github/workflows/benchmarks.yml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.github/workflows/release.yml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.github/workflows/tests-studio.yml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.github/workflows/tests.yml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.github/workflows/update-template.yaml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.gitignore +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/.pre-commit-config.yaml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/CODE_OF_CONDUCT.rst +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/LICENSE +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/README.rst +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/assets/captioned_cartoons.png +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/assets/datachain-white.svg +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/assets/datachain.svg +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/commands/auth/login.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/commands/auth/logout.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/commands/auth/team.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/commands/auth/token.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/commands/index.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/commands/job/cancel.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/commands/job/logs.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/commands/job/ls.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/commands/job/run.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/contributing.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/css/github-permalink-style.css +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/examples.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/index.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/overrides/main.html +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/quick-start.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/data-types/arrowrow.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/data-types/bbox.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/data-types/file.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/data-types/imagefile.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/data-types/index.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/data-types/pose.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/data-types/segment.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/data-types/tarvfile.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/data-types/textfile.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/data-types/videofile.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/datachain.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/func.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/index.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/toolkit.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/torch.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/references/udf.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/docs/tutorials.md +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/computer_vision/iptc_exif_xmp_lib.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/computer_vision/llava2_image_desc_lib.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/computer_vision/openimage-detect.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/computer_vision/ultralytics-bbox.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/computer_vision/ultralytics-pose.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/computer_vision/ultralytics-segment.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/get_started/common_sql_functions.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/get_started/json-csv-reader.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/get_started/torch-loader.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/get_started/udfs/parallel.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/get_started/udfs/simple.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/get_started/udfs/stateful.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/incremental_processing/delta.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/incremental_processing/utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/llm_and_nlp/claude-query.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/llm_and_nlp/hf-dataset-llm-eval.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/multimodal/clip_inference.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/multimodal/hf_pipeline.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/multimodal/openai_image_desc_lib.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/multimodal/wds.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/examples/multimodal/wds_filtered.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/mkdocs.yml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/noxfile.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/pyproject.toml +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/setup.cfg +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/__main__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/asyn.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cache.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/catalog/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/catalog/catalog.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/catalog/datasource.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/catalog/loader.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/commands/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/commands/datasets.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/commands/du.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/commands/index.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/commands/ls.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/commands/misc.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/commands/query.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/commands/show.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/parser/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/parser/job.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/parser/studio.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/parser/utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/cli/utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/client/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/client/fileslice.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/client/hf.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/client/local.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/config.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/data_storage/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/data_storage/db_engine.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/data_storage/job.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/data_storage/metastore.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/data_storage/schema.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/data_storage/serializer.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/data_storage/sqlite.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/data_storage/warehouse.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/dataset.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/delta.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/diff/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/error.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/fs/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/fs/reference.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/fs/utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/aggregate.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/array.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/base.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/conditional.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/func.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/numeric.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/path.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/random.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/string.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/func/window.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/job.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/arrow.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/clip.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/convert/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/convert/flatten.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/convert/python_to_sql.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/convert/sql_to_python.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/convert/unflatten.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/convert/values_to_tuples.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/data_model.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dataset_info.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/csv.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/database.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/datachain.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/datasets.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/hf.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/json.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/listings.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/pandas.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/parquet.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/records.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/storage.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/dc/values.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/file.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/hf.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/image.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/listing.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/listing_info.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/meta_formats.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/model_store.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/pytorch.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/settings.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/signal_schema.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/tar.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/text.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/udf.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/udf_signature.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/video.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/webdataset.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/lib/webdataset_laion.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/listing.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/model/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/model/bbox.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/model/pose.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/model/segment.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/model/ultralytics/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/model/ultralytics/bbox.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/model/ultralytics/pose.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/model/ultralytics/segment.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/model/utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/node.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/nodes_fetcher.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/nodes_thread_pool.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/progress.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/py.typed +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/batch.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/dataset.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/metrics.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/params.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/queue.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/schema.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/session.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/udf.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/query/utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/remote/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/remote/studio.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/script_meta.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/semver.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/default/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/default/base.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/functions/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/functions/aggregate.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/functions/array.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/functions/conditional.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/functions/numeric.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/functions/path.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/functions/random.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/functions/string.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/selectable.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/sqlite/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/sqlite/base.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/sqlite/types.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/sqlite/vector.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/types.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/sql/utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/studio.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/telemetry.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/toolkit/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/toolkit/split.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/torch/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain/utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain.egg-info/SOURCES.txt +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain.egg-info/dependency_links.txt +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain.egg-info/entry_points.txt +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain.egg-info/requires.txt +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/src/datachain.egg-info/top_level.txt +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/benchmarks/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/benchmarks/conftest.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/benchmarks/datasets/.dvc/.gitignore +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/benchmarks/datasets/.dvc/config +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/benchmarks/datasets/.gitignore +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/benchmarks/datasets/laion-tiny.npz.dvc +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/benchmarks/test_datachain.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/benchmarks/test_ls.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/benchmarks/test_version.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/conftest.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/data.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/examples/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/examples/test_examples.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/examples/test_wds_e2e.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/examples/wds_data.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/data/Big_Buck_Bunny_360_10s_1MB.mp4 +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/data/lena.jpg +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/fake-service-account-credentials.json +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/functions/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/functions/test_aggregate.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/functions/test_array.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/functions/test_conditional.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/functions/test_numeric.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/functions/test_path.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/functions/test_random.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/functions/test_string.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/model/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/model/data/running-mask0.png +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/model/data/running-mask1.png +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/model/data/running.jpg +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/model/data/ships.jpg +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/model/test_yolo.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_batching.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_catalog.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_client.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_cloud_transfer.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_data_storage.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_datachain_merge.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_dataset_query.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_datasets.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_delta.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_feature_pickling.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_file.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_hf.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_hidden_field.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_image.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_ls.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_meta_formats.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_metastore.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_metrics.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_pull.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_pytorch.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_query.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_read_database.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_session.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_toolkit.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_video.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/func/test_warehouse.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/scripts/feature_class.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/scripts/feature_class_exception.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/scripts/feature_class_parallel.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/scripts/feature_class_parallel_data_model.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/scripts/name_len_slow.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/test_atomicity.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/test_cli_e2e.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/test_cli_studio.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/test_import_time.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/test_query_e2e.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/test_telemetry.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/conftest.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_arrow.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_clip.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_datachain_bootstrap.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_datachain_merge.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_diff.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_feature.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_feature_utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_file.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_hf.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_image.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_listing_info.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_python_to_sql.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_schema.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_signal_schema.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_sql_to_python.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_text.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_udf.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_udf_signature.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/lib/test_webdataset.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/model/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/model/test_bbox.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/model/test_pose.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/model/test_segment.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/model/test_utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/sql/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/sql/sqlite/__init__.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/sql/sqlite/test_types.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/sql/sqlite/test_utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/sql/test_array.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/sql/test_conditional.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/sql/test_path.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/sql/test_random.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/sql/test_selectable.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/sql/test_string.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_asyn.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_cache.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_catalog.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_catalog_loader.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_cli_parsing.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_client.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_client_gcs.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_client_s3.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_config.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_data_storage.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_database_engine.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_dataset.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_dispatch.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_fileslice.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_func.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_listing.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_metastore.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_module_exports.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_pytorch.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_query.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_query_metrics.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_query_params.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_script_meta.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_semver.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_serializer.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_session.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_utils.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/unit/test_warehouse.py +0 -0
- {datachain-0.18.5 → datachain-0.18.7}/tests/utils.py +0 -0
|
@@ -86,7 +86,7 @@ DataChain uses [s3fs](https://s3fs.readthedocs.io/en/latest/) to interact with A
|
|
|
86
86
|
if no caching is desired. See fsspec's documentation for other available
|
|
87
87
|
`cache_type` values. Default cache_type is `"readahead"`.
|
|
88
88
|
|
|
89
|
-
- `version_aware`: `bool` (default: `
|
|
89
|
+
- `version_aware`: `bool` (default: `True`)
|
|
90
90
|
|
|
91
91
|
Whether to support bucket versioning. If enable this will require the
|
|
92
92
|
user to have the necessary IAM permissions for dealing with versioned
|
|
@@ -15,7 +15,7 @@ class AzureClient(Client):
|
|
|
15
15
|
protocol = "az"
|
|
16
16
|
|
|
17
17
|
def info_to_file(self, v: dict[str, Any], path: str) -> File:
|
|
18
|
-
version_id = v.get("version_id")
|
|
18
|
+
version_id = v.get("version_id") if self._is_version_aware() else None
|
|
19
19
|
return File(
|
|
20
20
|
source=self.uri,
|
|
21
21
|
path=path,
|
|
@@ -208,7 +208,7 @@ class Client(ABC):
|
|
|
208
208
|
|
|
209
209
|
async def get_current_etag(self, file: "File") -> str:
|
|
210
210
|
kwargs = {}
|
|
211
|
-
if
|
|
211
|
+
if self._is_version_aware():
|
|
212
212
|
kwargs["version_id"] = file.version
|
|
213
213
|
info = await self.fs._info(
|
|
214
214
|
self.get_full_path(file.path, file.version), **kwargs
|
|
@@ -326,8 +326,11 @@ class Client(ABC):
|
|
|
326
326
|
"""
|
|
327
327
|
return not (key.startswith("/") or key.endswith("/") or "//" in key)
|
|
328
328
|
|
|
329
|
+
def _is_version_aware(self) -> bool:
|
|
330
|
+
return getattr(self.fs, "version_aware", False)
|
|
331
|
+
|
|
329
332
|
async def ls_dir(self, path):
|
|
330
|
-
if
|
|
333
|
+
if self._is_version_aware():
|
|
331
334
|
kwargs = {"versions": True}
|
|
332
335
|
return await self.fs._ls(path, detail=True, **kwargs)
|
|
333
336
|
|
|
@@ -115,7 +115,7 @@ class GCSClient(Client):
|
|
|
115
115
|
maxResults=page_size,
|
|
116
116
|
pageToken=next_page_token,
|
|
117
117
|
json_out=True,
|
|
118
|
-
versions="true",
|
|
118
|
+
versions="true" if self._is_version_aware() else "false",
|
|
119
119
|
)
|
|
120
120
|
assert page["kind"] == "storage#objects"
|
|
121
121
|
await page_queue.put(page.get("items", []))
|
|
@@ -134,7 +134,7 @@ class GCSClient(Client):
|
|
|
134
134
|
source=self.uri,
|
|
135
135
|
path=path,
|
|
136
136
|
etag=v.get("etag", ""),
|
|
137
|
-
version=v.get("generation", ""),
|
|
137
|
+
version=v.get("generation", "") if self._is_version_aware() else "",
|
|
138
138
|
is_latest=not v.get("timeDeleted"),
|
|
139
139
|
last_modified=self.parse_timestamp(v["updated"]),
|
|
140
140
|
size=v.get("size", ""),
|
|
@@ -101,7 +101,7 @@ class ClientS3(Client):
|
|
|
101
101
|
prefix = start_prefix
|
|
102
102
|
if prefix:
|
|
103
103
|
prefix = prefix.lstrip(DELIMITER) + DELIMITER
|
|
104
|
-
versions =
|
|
104
|
+
versions = self._is_version_aware()
|
|
105
105
|
fs = self.fs
|
|
106
106
|
await fs.set_session()
|
|
107
107
|
s3 = await fs.get_s3(self.name)
|
|
@@ -139,7 +139,9 @@ class ClientS3(Client):
|
|
|
139
139
|
source=self.uri,
|
|
140
140
|
path=v["Key"],
|
|
141
141
|
etag=v.get("ETag", "").strip('"'),
|
|
142
|
-
version=
|
|
142
|
+
version=(
|
|
143
|
+
ClientS3.clean_s3_version(v.get("VersionId", "")) if versions else ""
|
|
144
|
+
),
|
|
143
145
|
is_latest=v.get("IsLatest", True),
|
|
144
146
|
last_modified=v.get("LastModified", ""),
|
|
145
147
|
size=v["Size"],
|
|
@@ -193,7 +195,11 @@ class ClientS3(Client):
|
|
|
193
195
|
source=self.uri,
|
|
194
196
|
path=path,
|
|
195
197
|
size=v["size"],
|
|
196
|
-
version=
|
|
198
|
+
version=(
|
|
199
|
+
ClientS3.clean_s3_version(v.get("VersionId", ""))
|
|
200
|
+
if self._is_version_aware()
|
|
201
|
+
else ""
|
|
202
|
+
),
|
|
197
203
|
etag=v.get("ETag", "").strip('"'),
|
|
198
204
|
is_latest=v.get("IsLatest", True),
|
|
199
205
|
last_modified=v.get("LastModified", ""),
|
|
@@ -264,9 +264,10 @@ class UDFDispatcher:
|
|
|
264
264
|
# Will be set to True when the input is exhausted
|
|
265
265
|
input_finished = False
|
|
266
266
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
267
|
+
input_rows = batched(
|
|
268
|
+
input_rows if self.is_batching else flatten(input_rows),
|
|
269
|
+
self.input_batch_size(n_workers),
|
|
270
|
+
)
|
|
270
271
|
|
|
271
272
|
# Stop all workers after the input rows have finished processing
|
|
272
273
|
input_data = chain(input_rows, [STOP_SIGNAL] * n_workers)
|
|
@@ -8,7 +8,7 @@ import re
|
|
|
8
8
|
import uuid
|
|
9
9
|
from collections.abc import Iterator
|
|
10
10
|
from datetime import datetime, timedelta, timezone
|
|
11
|
-
from pathlib import Path
|
|
11
|
+
from pathlib import Path, PurePosixPath
|
|
12
12
|
from unittest.mock import patch
|
|
13
13
|
|
|
14
14
|
import numpy as np
|
|
@@ -2235,3 +2235,44 @@ def test_datachain_functional_after_exceptions(test_session):
|
|
|
2235
2235
|
for _ in range(4):
|
|
2236
2236
|
with pytest.raises(Exception, match="Test Error!"):
|
|
2237
2237
|
chain.map(res=func).exec()
|
|
2238
|
+
|
|
2239
|
+
|
|
2240
|
+
@pytest.mark.parametrize("parallel", [1, 2])
|
|
2241
|
+
def test_agg(catalog_tmpfile, parallel):
|
|
2242
|
+
from datachain import func
|
|
2243
|
+
|
|
2244
|
+
session = catalog_tmpfile.session
|
|
2245
|
+
|
|
2246
|
+
def process(files: list[str]) -> Iterator[tuple[str, int]]:
|
|
2247
|
+
yield str(PurePosixPath(files[0]).parent), len(files)
|
|
2248
|
+
|
|
2249
|
+
ds = (
|
|
2250
|
+
dc.read_values(
|
|
2251
|
+
filename=(
|
|
2252
|
+
"cats/cat1",
|
|
2253
|
+
"cats/cat2",
|
|
2254
|
+
"dogs/dog1",
|
|
2255
|
+
"dogs/dog2",
|
|
2256
|
+
"dogs/dog3",
|
|
2257
|
+
"dogs/others/dog4",
|
|
2258
|
+
),
|
|
2259
|
+
session=session,
|
|
2260
|
+
)
|
|
2261
|
+
.settings(parallel=parallel)
|
|
2262
|
+
.agg(
|
|
2263
|
+
process,
|
|
2264
|
+
params=["filename"],
|
|
2265
|
+
output={"parent": str, "count": int},
|
|
2266
|
+
partition_by=func.path.parent("filename"),
|
|
2267
|
+
)
|
|
2268
|
+
.save("my-ds")
|
|
2269
|
+
)
|
|
2270
|
+
|
|
2271
|
+
assert sorted_dicts(ds.to_records(), "parent") == sorted_dicts(
|
|
2272
|
+
[
|
|
2273
|
+
{"parent": "cats", "count": 2},
|
|
2274
|
+
{"parent": "dogs", "count": 3},
|
|
2275
|
+
{"parent": "dogs/others", "count": 1},
|
|
2276
|
+
],
|
|
2277
|
+
"parent",
|
|
2278
|
+
)
|
|
@@ -25,6 +25,12 @@ def test_listing_generator(cloud_test_catalog, cloud_type):
|
|
|
25
25
|
assert cat_file.source == ctc.src_uri
|
|
26
26
|
assert cat_file.path == cat_entry.path
|
|
27
27
|
assert cat_file.size == cat_entry.size
|
|
28
|
+
assert cat_file.etag is not None
|
|
29
|
+
# If version_aware is not passed it is enforced to be True internally
|
|
30
|
+
if catalog.client_config.get("version_aware", True):
|
|
31
|
+
assert cat_file.version is not None
|
|
32
|
+
else:
|
|
33
|
+
assert cat_file.version == ""
|
|
28
34
|
assert cat_file.is_latest == cat_entry.is_latest
|
|
29
35
|
assert cat_file.location is None
|
|
30
36
|
|
|
@@ -681,7 +681,7 @@ def test_agg_two_params(test_session):
|
|
|
681
681
|
assert list(ds.order_by("x.cnt").collect("x.cnt")) == [7, 20]
|
|
682
682
|
|
|
683
683
|
|
|
684
|
-
def
|
|
684
|
+
def test_agg_simple_iterator(test_session):
|
|
685
685
|
def func(key, val) -> Iterator[tuple[File, str]]:
|
|
686
686
|
for i in range(val):
|
|
687
687
|
yield File(path=""), f"{key}_{i}"
|
|
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
|