datachain 0.21.0__tar.gz → 0.21.1__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.21.0 → datachain-0.21.1}/PKG-INFO +1 -1
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/__init__.py +4 -2
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/studio.py +13 -4
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain.egg-info/PKG-INFO +1 -1
- {datachain-0.21.0 → datachain-0.21.1}/tests/test_cli_studio.py +63 -0
- {datachain-0.21.0 → datachain-0.21.1}/.cruft.json +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.gitattributes +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.github/ISSUE_TEMPLATE/empty_issue.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.github/codecov.yaml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.github/dependabot.yml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.github/workflows/benchmarks.yml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.github/workflows/release.yml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.github/workflows/tests-studio.yml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.github/workflows/tests.yml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.github/workflows/update-template.yaml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.gitignore +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/.pre-commit-config.yaml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/CODE_OF_CONDUCT.rst +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/LICENSE +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/README.rst +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/assets/captioned_cartoons.png +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/assets/datachain-white.svg +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/assets/datachain.svg +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/commands/auth/login.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/commands/auth/logout.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/commands/auth/team.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/commands/auth/token.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/commands/index.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/commands/job/cancel.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/commands/job/clusters.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/commands/job/logs.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/commands/job/ls.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/commands/job/run.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/contributing.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/css/github-permalink-style.css +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/examples.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/guide/delta.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/guide/index.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/guide/processing.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/guide/remotes.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/guide/retry.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/index.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/overrides/main.html +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/quick-start.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/data-types/arrowrow.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/data-types/bbox.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/data-types/file.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/data-types/imagefile.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/data-types/index.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/data-types/pose.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/data-types/segment.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/data-types/tarvfile.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/data-types/textfile.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/data-types/videofile.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/datachain.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/func.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/index.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/toolkit.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/torch.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/references/udf.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/docs/tutorials.md +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/computer_vision/iptc_exif_xmp_lib.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/computer_vision/llava2_image_desc_lib.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/computer_vision/openimage-detect.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/computer_vision/ultralytics-bbox.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/computer_vision/ultralytics-pose.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/computer_vision/ultralytics-segment.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/get_started/common_sql_functions.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/get_started/json-csv-reader.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/get_started/torch-loader.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/get_started/udfs/parallel.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/get_started/udfs/simple.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/get_started/udfs/stateful.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/incremental_processing/delta.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/incremental_processing/retry.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/incremental_processing/utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/llm_and_nlp/claude-query.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/llm_and_nlp/hf-dataset-llm-eval.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/multimodal/clip_inference.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/multimodal/hf_pipeline.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/multimodal/openai_image_desc_lib.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/multimodal/wds.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/examples/multimodal/wds_filtered.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/mkdocs.yml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/noxfile.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/pyproject.toml +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/setup.cfg +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/__main__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/asyn.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cache.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/catalog/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/catalog/catalog.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/catalog/datasource.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/catalog/loader.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/commands/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/commands/datasets.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/commands/du.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/commands/index.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/commands/ls.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/commands/misc.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/commands/query.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/commands/show.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/parser/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/parser/job.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/parser/studio.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/parser/utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/cli/utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/client/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/client/azure.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/client/fileslice.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/client/fsspec.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/client/gcs.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/client/hf.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/client/local.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/client/s3.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/config.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/data_storage/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/data_storage/db_engine.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/data_storage/job.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/data_storage/metastore.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/data_storage/schema.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/data_storage/serializer.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/data_storage/sqlite.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/data_storage/warehouse.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/dataset.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/delta.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/diff/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/error.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/fs/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/fs/reference.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/fs/utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/aggregate.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/array.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/base.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/conditional.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/func.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/numeric.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/path.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/random.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/string.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/func/window.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/job.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/arrow.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/clip.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/convert/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/convert/flatten.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/convert/python_to_sql.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/convert/sql_to_python.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/convert/unflatten.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/convert/values_to_tuples.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/data_model.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dataset_info.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/csv.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/database.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/datachain.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/datasets.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/hf.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/json.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/listings.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/pandas.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/parquet.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/records.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/storage.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/dc/values.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/file.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/hf.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/image.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/listing.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/listing_info.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/meta_formats.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/model_store.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/pytorch.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/settings.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/signal_schema.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/tar.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/text.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/udf.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/udf_signature.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/video.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/webdataset.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/lib/webdataset_laion.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/listing.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/model/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/model/bbox.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/model/pose.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/model/segment.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/model/ultralytics/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/model/ultralytics/bbox.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/model/ultralytics/pose.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/model/ultralytics/segment.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/model/utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/node.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/nodes_fetcher.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/nodes_thread_pool.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/progress.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/py.typed +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/batch.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/dataset.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/dispatch.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/metrics.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/params.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/queue.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/schema.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/session.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/udf.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/query/utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/remote/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/remote/studio.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/script_meta.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/semver.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/default/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/default/base.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/functions/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/functions/aggregate.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/functions/array.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/functions/conditional.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/functions/numeric.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/functions/path.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/functions/random.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/functions/string.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/selectable.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/sqlite/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/sqlite/base.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/sqlite/types.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/sqlite/vector.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/types.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/sql/utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/telemetry.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/toolkit/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/toolkit/split.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/torch/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain/utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain.egg-info/SOURCES.txt +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain.egg-info/dependency_links.txt +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain.egg-info/entry_points.txt +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain.egg-info/requires.txt +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/src/datachain.egg-info/top_level.txt +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/benchmarks/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/benchmarks/conftest.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/benchmarks/datasets/.dvc/.gitignore +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/benchmarks/datasets/.dvc/config +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/benchmarks/datasets/.gitignore +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/benchmarks/datasets/laion-tiny.npz.dvc +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/benchmarks/test_datachain.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/benchmarks/test_ls.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/benchmarks/test_version.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/conftest.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/data.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/examples/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/examples/test_examples.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/examples/test_wds_e2e.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/examples/wds_data.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/data/Big_Buck_Bunny_360_10s_1MB.mp4 +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/data/lena.jpg +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/fake-service-account-credentials.json +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/functions/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/functions/test_aggregate.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/functions/test_array.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/functions/test_conditional.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/functions/test_numeric.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/functions/test_path.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/functions/test_random.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/functions/test_string.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/model/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/model/data/running-mask0.png +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/model/data/running-mask1.png +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/model/data/running.jpg +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/model/data/ships.jpg +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/model/test_yolo.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_batching.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_catalog.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_client.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_cloud_transfer.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_data_storage.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_datachain.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_datachain_merge.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_dataset_query.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_datasets.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_delta.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_feature_pickling.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_file.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_hf.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_hidden_field.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_image.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_listing.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_ls.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_meta_formats.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_metastore.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_metrics.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_pull.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_pytorch.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_query.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_read_database.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_retry.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_session.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_toolkit.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_video.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/func/test_warehouse.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/scripts/feature_class.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/scripts/feature_class_exception.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/scripts/feature_class_parallel.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/scripts/feature_class_parallel_data_model.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/scripts/name_len_slow.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/test_atomicity.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/test_cli_e2e.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/test_import_time.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/test_query_e2e.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/test_telemetry.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/conftest.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_arrow.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_clip.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_datachain.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_datachain_bootstrap.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_datachain_merge.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_diff.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_feature.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_feature_utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_file.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_hf.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_image.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_listing_info.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_python_to_sql.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_schema.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_signal_schema.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_sql_to_python.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_text.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_udf.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_udf_signature.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/lib/test_webdataset.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/model/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/model/test_bbox.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/model/test_pose.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/model/test_segment.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/model/test_utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/sql/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/sql/sqlite/__init__.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/sql/sqlite/test_types.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/sql/sqlite/test_utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/sql/test_array.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/sql/test_conditional.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/sql/test_path.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/sql/test_random.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/sql/test_selectable.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/sql/test_string.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_asyn.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_cache.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_catalog.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_catalog_loader.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_cli_parsing.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_client.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_client_gcs.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_client_s3.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_config.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_data_storage.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_database_engine.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_dataset.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_dispatch.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_fileslice.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_func.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_listing.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_metastore.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_module_exports.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_pytorch.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_query.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_query_metrics.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_query_params.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_script_meta.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_semver.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_serializer.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_session.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_utils.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/unit/test_warehouse.py +0 -0
- {datachain-0.21.0 → datachain-0.21.1}/tests/utils.py +0 -0
|
@@ -100,8 +100,10 @@ def handle_command(args, catalog, client_config) -> int:
|
|
|
100
100
|
|
|
101
101
|
handler = command_handlers.get(args.command)
|
|
102
102
|
if handler:
|
|
103
|
-
handler()
|
|
104
|
-
|
|
103
|
+
return_code = handler()
|
|
104
|
+
if return_code is None:
|
|
105
|
+
return 0
|
|
106
|
+
return return_code
|
|
105
107
|
print(f"invalid command: {args.command}", file=sys.stderr)
|
|
106
108
|
return 1
|
|
107
109
|
|
|
@@ -248,14 +248,17 @@ def save_config(hostname, token, level=ConfigLevel.GLOBAL):
|
|
|
248
248
|
def show_logs_from_client(client, job_id):
|
|
249
249
|
# Sync usage
|
|
250
250
|
async def _run():
|
|
251
|
+
latest_status = None
|
|
251
252
|
async for message in client.tail_job_logs(job_id):
|
|
252
253
|
if "logs" in message:
|
|
253
254
|
for log in message["logs"]:
|
|
254
255
|
print(log["message"], end="")
|
|
255
256
|
elif "job" in message:
|
|
256
|
-
|
|
257
|
+
latest_status = message["job"]["status"]
|
|
258
|
+
print(f"\n>>>> Job is now in {latest_status} status.")
|
|
259
|
+
return latest_status
|
|
257
260
|
|
|
258
|
-
asyncio.run(_run())
|
|
261
|
+
latest_status = asyncio.run(_run())
|
|
259
262
|
|
|
260
263
|
response = client.dataset_job_versions(job_id)
|
|
261
264
|
if not response.ok:
|
|
@@ -270,6 +273,12 @@ def show_logs_from_client(client, job_id):
|
|
|
270
273
|
else:
|
|
271
274
|
print("\n\nNo dataset versions created during the job.")
|
|
272
275
|
|
|
276
|
+
exit_code_by_status = {
|
|
277
|
+
"FAILED": 1,
|
|
278
|
+
"CANCELLED": 2,
|
|
279
|
+
}
|
|
280
|
+
return exit_code_by_status.get(latest_status.upper(), 0) if latest_status else 0
|
|
281
|
+
|
|
273
282
|
|
|
274
283
|
def create_job(
|
|
275
284
|
query_file: str,
|
|
@@ -326,7 +335,7 @@ def create_job(
|
|
|
326
335
|
print("Open the job in Studio at", response.data.get("job", {}).get("url"))
|
|
327
336
|
print("=" * 40)
|
|
328
337
|
|
|
329
|
-
show_logs_from_client(client, job_id)
|
|
338
|
+
return show_logs_from_client(client, job_id)
|
|
330
339
|
|
|
331
340
|
|
|
332
341
|
def upload_files(client: StudioClient, files: list[str]) -> list[str]:
|
|
@@ -396,7 +405,7 @@ def show_job_logs(job_id: str, team_name: Optional[str]):
|
|
|
396
405
|
)
|
|
397
406
|
|
|
398
407
|
client = StudioClient(team=team_name)
|
|
399
|
-
show_logs_from_client(client, job_id)
|
|
408
|
+
return show_logs_from_client(client, job_id)
|
|
400
409
|
|
|
401
410
|
|
|
402
411
|
def list_clusters(team_name: Optional[str]):
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from unittest.mock import MagicMock
|
|
2
2
|
|
|
3
|
+
import pytest
|
|
3
4
|
import requests_mock
|
|
4
5
|
import websockets
|
|
5
6
|
from dvc_studio_client.auth import AuthorizationExpiredError
|
|
@@ -429,3 +430,65 @@ def test_studio_run(capsys, mocker, tmp_dir):
|
|
|
429
430
|
"priority": 5,
|
|
430
431
|
"compute_cluster_name": "default",
|
|
431
432
|
}
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
@pytest.mark.parametrize(
|
|
436
|
+
"status,expected_exit_code", [("FAILED", 1), ("CANCELLED", 2), ("COMPLETED", 0)]
|
|
437
|
+
)
|
|
438
|
+
def test_studio_run_non_zero_exit_code(
|
|
439
|
+
capsys, mocker, tmp_dir, status, expected_exit_code
|
|
440
|
+
):
|
|
441
|
+
# Mock tail_job_logs to return a status
|
|
442
|
+
async def mock_tail_job_logs(job_id):
|
|
443
|
+
# Simulate some log messages
|
|
444
|
+
yield {"logs": [{"message": "Starting job...\n"}]}
|
|
445
|
+
yield {"logs": [{"message": "Processing data...\n"}]}
|
|
446
|
+
# Return failed status
|
|
447
|
+
yield {"job": {"status": status}}
|
|
448
|
+
|
|
449
|
+
mocker.patch(
|
|
450
|
+
"datachain.remote.studio.StudioClient.tail_job_logs",
|
|
451
|
+
side_effect=mock_tail_job_logs,
|
|
452
|
+
)
|
|
453
|
+
|
|
454
|
+
with Config(ConfigLevel.GLOBAL).edit() as conf:
|
|
455
|
+
conf["studio"] = {"token": "isat_access_token", "team": "team_name"}
|
|
456
|
+
|
|
457
|
+
with requests_mock.mock() as m:
|
|
458
|
+
m.post(
|
|
459
|
+
f"{STUDIO_URL}/api/datachain/job",
|
|
460
|
+
json={"job": {"id": 1, "url": "https://example.com"}},
|
|
461
|
+
)
|
|
462
|
+
m.get(
|
|
463
|
+
f"{STUDIO_URL}/api/datachain/datasets/dataset_job_versions?job_id=1&team_name=team_name",
|
|
464
|
+
json={
|
|
465
|
+
"dataset_versions": [
|
|
466
|
+
{"dataset_name": "dataset_name", "version": "1.0.0"}
|
|
467
|
+
]
|
|
468
|
+
},
|
|
469
|
+
)
|
|
470
|
+
|
|
471
|
+
(tmp_dir / "example_query.py").write_text("print(1)")
|
|
472
|
+
|
|
473
|
+
assert (
|
|
474
|
+
main(
|
|
475
|
+
[
|
|
476
|
+
"job",
|
|
477
|
+
"run",
|
|
478
|
+
"example_query.py",
|
|
479
|
+
]
|
|
480
|
+
)
|
|
481
|
+
== expected_exit_code
|
|
482
|
+
)
|
|
483
|
+
|
|
484
|
+
out = capsys.readouterr().out
|
|
485
|
+
assert (
|
|
486
|
+
out.strip() == "Job 1 created\nOpen the job in Studio at https://example.com\n"
|
|
487
|
+
"========================================\n"
|
|
488
|
+
"Starting job...\n"
|
|
489
|
+
"Processing data...\n"
|
|
490
|
+
"\n"
|
|
491
|
+
f">>>> Job is now in {status} status.\n\n\n"
|
|
492
|
+
">>>> Dataset versions created during the job:\n"
|
|
493
|
+
" - dataset_name@v1.0.0"
|
|
494
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|