datachain 0.8.6__tar.gz → 0.8.8__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.8.6 → datachain-0.8.8}/PKG-INFO +1 -1
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cache.py +3 -3
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/catalog/catalog.py +1 -1
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/client/azure.py +1 -1
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/client/fsspec.py +1 -1
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/client/gcs.py +1 -1
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/client/s3.py +9 -6
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/data_storage/sqlite.py +1 -1
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/data_storage/warehouse.py +1 -1
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/arrow.py +1 -1
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/dc.py +15 -7
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/hf.py +1 -1
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/listing.py +1 -1
- datachain-0.8.8/src/datachain/progress.py +36 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/dataset.py +7 -2
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain.egg-info/PKG-INFO +1 -1
- datachain-0.8.6/src/datachain/progress.py +0 -156
- {datachain-0.8.6 → datachain-0.8.8}/.cruft.json +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.gitattributes +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.github/ISSUE_TEMPLATE/empty_issue.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.github/codecov.yaml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.github/dependabot.yml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.github/workflows/benchmarks.yml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.github/workflows/release.yml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.github/workflows/tests-studio.yml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.github/workflows/tests.yml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.github/workflows/update-template.yaml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.gitignore +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/.pre-commit-config.yaml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/CODE_OF_CONDUCT.rst +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/LICENSE +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/README.rst +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/assets/captioned_cartoons.png +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/assets/datachain-white.svg +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/assets/datachain.svg +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/contributing.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/css/github-permalink-style.css +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/examples.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/index.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/overrides/main.html +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/quick-start.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/references/datachain.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/references/datatype.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/references/file.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/references/index.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/references/sql.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/references/torch.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/references/udf.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/docs/tutorials.md +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/computer_vision/iptc_exif_xmp_lib.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/computer_vision/llava2_image_desc_lib.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/computer_vision/openimage-detect.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/computer_vision/ultralytics-bbox.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/computer_vision/ultralytics-pose.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/computer_vision/ultralytics-segment.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/get_started/common_sql_functions.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/get_started/json-csv-reader.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/get_started/torch-loader.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/get_started/udfs/parallel.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/get_started/udfs/simple.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/get_started/udfs/stateful.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/llm_and_nlp/claude-query.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/llm_and_nlp/hf-dataset-llm-eval.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/llm_and_nlp/unstructured-embeddings-gen.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/llm_and_nlp/unstructured-summary-map.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/multimodal/clip_inference.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/multimodal/hf_pipeline.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/multimodal/openai_image_desc_lib.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/multimodal/wds.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/examples/multimodal/wds_filtered.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/mkdocs.yml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/noxfile.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/pyproject.toml +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/setup.cfg +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/__main__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/asyn.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/catalog/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/catalog/datasource.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/catalog/loader.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/commands/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/commands/datasets.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/commands/du.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/commands/index.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/commands/ls.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/commands/misc.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/commands/query.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/commands/show.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/parser/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/parser/job.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/parser/studio.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/parser/utils.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/cli/utils.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/client/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/client/fileslice.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/client/hf.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/client/local.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/config.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/data_storage/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/data_storage/db_engine.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/data_storage/job.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/data_storage/metastore.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/data_storage/schema.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/data_storage/serializer.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/dataset.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/diff/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/error.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/aggregate.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/array.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/base.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/conditional.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/func.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/numeric.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/path.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/random.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/string.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/func/window.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/job.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/clip.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/convert/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/convert/flatten.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/convert/python_to_sql.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/convert/sql_to_python.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/convert/unflatten.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/convert/values_to_tuples.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/data_model.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/dataset_info.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/file.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/image.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/listing.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/listing_info.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/meta_formats.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/model_store.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/pytorch.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/settings.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/signal_schema.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/tar.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/text.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/udf.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/udf_signature.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/utils.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/vfile.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/webdataset.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/lib/webdataset_laion.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/model/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/model/bbox.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/model/pose.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/model/segment.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/model/ultralytics/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/model/ultralytics/bbox.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/model/ultralytics/pose.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/model/ultralytics/segment.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/node.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/nodes_fetcher.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/nodes_thread_pool.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/py.typed +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/batch.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/dispatch.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/metrics.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/params.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/queue.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/schema.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/session.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/udf.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/query/utils.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/remote/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/remote/studio.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/default/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/default/base.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/functions/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/functions/aggregate.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/functions/array.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/functions/conditional.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/functions/numeric.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/functions/path.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/functions/random.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/functions/string.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/selectable.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/sqlite/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/sqlite/base.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/sqlite/types.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/sqlite/vector.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/types.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/sql/utils.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/studio.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/telemetry.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/toolkit/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/toolkit/split.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/torch/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain/utils.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain.egg-info/SOURCES.txt +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain.egg-info/dependency_links.txt +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain.egg-info/entry_points.txt +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain.egg-info/requires.txt +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/src/datachain.egg-info/top_level.txt +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/benchmarks/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/benchmarks/conftest.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/benchmarks/datasets/.dvc/.gitignore +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/benchmarks/datasets/.dvc/config +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/benchmarks/datasets/.gitignore +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/benchmarks/datasets/laion-tiny.npz.dvc +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/benchmarks/test_datachain.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/benchmarks/test_ls.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/benchmarks/test_version.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/conftest.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/data.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/examples/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/examples/test_examples.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/examples/test_wds_e2e.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/examples/wds_data.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/fake-service-account-credentials.json +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_catalog.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_client.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_datachain.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_dataset_query.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_datasets.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_feature_pickling.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_listing.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_ls.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_meta_formats.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_metrics.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_pull.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_pytorch.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_query.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_session.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/func/test_toolkit.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/scripts/feature_class.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/scripts/feature_class_exception.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/scripts/feature_class_parallel.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/scripts/feature_class_parallel_data_model.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/scripts/name_len_slow.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/test_atomicity.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/test_cli_e2e.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/test_cli_studio.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/test_query_e2e.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/test_telemetry.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/conftest.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_arrow.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_clip.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_datachain.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_datachain_bootstrap.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_datachain_merge.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_diff.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_feature.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_feature_utils.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_file.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_hf.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_image.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_listing_info.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_models.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_schema.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_signal_schema.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_sql_to_python.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_text.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_udf_signature.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_utils.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/lib/test_webdataset.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/sql/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/sql/sqlite/__init__.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/sql/sqlite/test_types.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/sql/sqlite/test_utils.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/sql/test_array.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/sql/test_conditional.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/sql/test_path.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/sql/test_random.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/sql/test_selectable.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/sql/test_string.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_asyn.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_cache.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_catalog.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_catalog_loader.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_cli_parsing.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_client.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_client_gcs.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_client_s3.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_config.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_data_storage.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_database_engine.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_dataset.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_diff.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_dispatch.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_fileslice.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_func.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_listing.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_metastore.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_module_exports.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_pytorch.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_query.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_query_metrics.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_query_params.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_serializer.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_session.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_utils.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/unit/test_warehouse.py +0 -0
- {datachain-0.8.6 → datachain-0.8.8}/tests/utils.py +0 -0
|
@@ -9,8 +9,6 @@ from dvc_objects.fs.local import LocalFileSystem
|
|
|
9
9
|
from dvc_objects.fs.utils import remove
|
|
10
10
|
from fsspec.callbacks import Callback, TqdmCallback
|
|
11
11
|
|
|
12
|
-
from .progress import Tqdm
|
|
13
|
-
|
|
14
12
|
if TYPE_CHECKING:
|
|
15
13
|
from datachain.client import Client
|
|
16
14
|
from datachain.lib.file import File
|
|
@@ -86,9 +84,11 @@ class DataChainCache:
|
|
|
86
84
|
size = file.size
|
|
87
85
|
if size < 0:
|
|
88
86
|
size = await client.get_size(from_path, version_id=file.version)
|
|
87
|
+
from tqdm.auto import tqdm
|
|
88
|
+
|
|
89
89
|
cb = callback or TqdmCallback(
|
|
90
90
|
tqdm_kwargs={"desc": odb_fs.name(from_path), "bytes": True, "leave": False},
|
|
91
|
-
tqdm_cls=
|
|
91
|
+
tqdm_cls=tqdm,
|
|
92
92
|
size=size,
|
|
93
93
|
)
|
|
94
94
|
try:
|
|
@@ -23,7 +23,7 @@ from botocore.exceptions import ClientError
|
|
|
23
23
|
from dvc_objects.fs.system import reflink
|
|
24
24
|
from fsspec.asyn import get_loop, sync
|
|
25
25
|
from fsspec.callbacks import DEFAULT_CALLBACK, Callback
|
|
26
|
-
from tqdm import tqdm
|
|
26
|
+
from tqdm.auto import tqdm
|
|
27
27
|
|
|
28
28
|
from datachain.cache import DataChainCache
|
|
29
29
|
from datachain.client.fileslice import FileWrapper
|
|
@@ -5,7 +5,7 @@ from urllib.parse import parse_qs, urlsplit, urlunsplit
|
|
|
5
5
|
|
|
6
6
|
from botocore.exceptions import NoCredentialsError
|
|
7
7
|
from s3fs import S3FileSystem
|
|
8
|
-
from tqdm import tqdm
|
|
8
|
+
from tqdm.auto import tqdm
|
|
9
9
|
|
|
10
10
|
from datachain.lib.file import File
|
|
11
11
|
|
|
@@ -32,17 +32,20 @@ class ClientS3(Client):
|
|
|
32
32
|
if "aws_token" in kwargs:
|
|
33
33
|
kwargs.setdefault("token", kwargs.pop("aws_token"))
|
|
34
34
|
|
|
35
|
+
# We want to use newer v4 signature version since regions added after
|
|
36
|
+
# 2014 are not going to support v2 which is the older one.
|
|
37
|
+
# All regions support v4.
|
|
38
|
+
kwargs.setdefault("config_kwargs", {}).setdefault("signature_version", "s3v4")
|
|
39
|
+
|
|
40
|
+
if "region_name" in kwargs:
|
|
41
|
+
kwargs["config_kwargs"].setdefault("region_name", kwargs.pop("region_name"))
|
|
42
|
+
|
|
35
43
|
# remove this `if` when https://github.com/fsspec/s3fs/pull/929 lands
|
|
36
44
|
if not os.environ.get("AWS_REGION") and not os.environ.get("AWS_ENDPOINT_URL"):
|
|
37
45
|
# caching bucket regions to use the right one in signed urls, otherwise
|
|
38
46
|
# it tries to randomly guess and creates wrong signature
|
|
39
47
|
kwargs.setdefault("cache_regions", True)
|
|
40
48
|
|
|
41
|
-
# We want to use newer v4 signature version since regions added after
|
|
42
|
-
# 2014 are not going to support v2 which is the older one.
|
|
43
|
-
# All regions support v4.
|
|
44
|
-
kwargs.setdefault("config_kwargs", {}).setdefault("signature_version", "s3v4")
|
|
45
|
-
|
|
46
49
|
if not kwargs.get("anon"):
|
|
47
50
|
try:
|
|
48
51
|
# Run an inexpensive check to see if credentials are available
|
|
@@ -21,7 +21,7 @@ from sqlalchemy.schema import CreateIndex, CreateTable, DropTable
|
|
|
21
21
|
from sqlalchemy.sql import func
|
|
22
22
|
from sqlalchemy.sql.expression import bindparam, cast
|
|
23
23
|
from sqlalchemy.sql.selectable import Select
|
|
24
|
-
from tqdm import tqdm
|
|
24
|
+
from tqdm.auto import tqdm
|
|
25
25
|
|
|
26
26
|
import datachain.sql.sqlite
|
|
27
27
|
from datachain.data_storage import AbstractDBMetastore, AbstractWarehouse
|
|
@@ -14,7 +14,7 @@ import sqlalchemy as sa
|
|
|
14
14
|
from sqlalchemy import Table, case, select
|
|
15
15
|
from sqlalchemy.sql import func
|
|
16
16
|
from sqlalchemy.sql.expression import true
|
|
17
|
-
from tqdm import tqdm
|
|
17
|
+
from tqdm.auto import tqdm
|
|
18
18
|
|
|
19
19
|
from datachain.client import Client
|
|
20
20
|
from datachain.data_storage.schema import convert_rows_custom_column_types
|
|
@@ -7,7 +7,7 @@ import orjson
|
|
|
7
7
|
import pyarrow as pa
|
|
8
8
|
from fsspec.core import split_protocol
|
|
9
9
|
from pyarrow.dataset import CsvFileFormat, dataset
|
|
10
|
-
from tqdm import tqdm
|
|
10
|
+
from tqdm.auto import tqdm
|
|
11
11
|
|
|
12
12
|
from datachain.lib.data_model import dict_to_data_model
|
|
13
13
|
from datachain.lib.file import ArrowRow, File
|
|
@@ -1330,19 +1330,27 @@ class DataChain:
|
|
|
1330
1330
|
|
|
1331
1331
|
Parameters:
|
|
1332
1332
|
right_ds: Chain to join with.
|
|
1333
|
-
on: Predicate
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1333
|
+
on: Predicate ("column.name", C("column.name"), or Func) or list of
|
|
1334
|
+
Predicates to join on. If both chains have the same predicates then
|
|
1335
|
+
this predicate is enough for the join. Otherwise, `right_on` parameter
|
|
1336
|
+
has to specify the predicates for the other chain.
|
|
1337
|
+
right_on: Optional predicate or list of Predicates for the `right_ds`
|
|
1338
|
+
to join.
|
|
1338
1339
|
inner (bool): Whether to run inner join or outer join.
|
|
1339
|
-
rname (str):
|
|
1340
|
+
rname (str): Name prefix for conflicting signal names.
|
|
1340
1341
|
|
|
1341
|
-
|
|
1342
|
+
Examples:
|
|
1342
1343
|
```py
|
|
1343
1344
|
meta = meta_emd.merge(meta_pq, on=(C.name, C.emd__index),
|
|
1344
1345
|
right_on=(C.name, C.pq__index))
|
|
1345
1346
|
```
|
|
1347
|
+
|
|
1348
|
+
```py
|
|
1349
|
+
imgs.merge(captions,
|
|
1350
|
+
on=func.path.file_stem(imgs.c("file.path")),
|
|
1351
|
+
right_on=func.path.file_stem(captions.c("file.path"))
|
|
1352
|
+
```
|
|
1353
|
+
)
|
|
1346
1354
|
"""
|
|
1347
1355
|
if on is None:
|
|
1348
1356
|
raise DatasetMergeError(["None"], None, "'on' must be specified")
|
|
@@ -29,7 +29,7 @@ from io import BytesIO
|
|
|
29
29
|
from typing import TYPE_CHECKING, Any, Union
|
|
30
30
|
|
|
31
31
|
import PIL
|
|
32
|
-
from tqdm import tqdm
|
|
32
|
+
from tqdm.auto import tqdm
|
|
33
33
|
|
|
34
34
|
from datachain.lib.arrow import arrow_type_mapper
|
|
35
35
|
from datachain.lib.data_model import DataModel, DataType, dict_to_data_model
|
|
@@ -7,7 +7,7 @@ from typing import TYPE_CHECKING, Optional
|
|
|
7
7
|
|
|
8
8
|
from sqlalchemy import Column
|
|
9
9
|
from sqlalchemy.sql import func
|
|
10
|
-
from tqdm import tqdm
|
|
10
|
+
from tqdm.auto import tqdm
|
|
11
11
|
|
|
12
12
|
from datachain.node import DirType, Node, NodeWithPath
|
|
13
13
|
from datachain.sql.functions import path as pathfunc
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"""Manages progress bars."""
|
|
2
|
+
|
|
3
|
+
import logging
|
|
4
|
+
from threading import RLock
|
|
5
|
+
|
|
6
|
+
from fsspec import Callback
|
|
7
|
+
from fsspec.callbacks import TqdmCallback
|
|
8
|
+
from tqdm.auto import tqdm
|
|
9
|
+
|
|
10
|
+
logger = logging.getLogger(__name__)
|
|
11
|
+
tqdm.set_lock(RLock())
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class CombinedDownloadCallback(Callback):
|
|
15
|
+
def set_size(self, size):
|
|
16
|
+
# This is a no-op to prevent fsspec's .get_file() from setting the combined
|
|
17
|
+
# download size to the size of the current file.
|
|
18
|
+
pass
|
|
19
|
+
|
|
20
|
+
def increment_file_count(self, n: int = 1) -> None:
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class TqdmCombinedDownloadCallback(CombinedDownloadCallback, TqdmCallback):
|
|
25
|
+
def __init__(self, tqdm_kwargs=None, *args, **kwargs):
|
|
26
|
+
self.files_count = 0
|
|
27
|
+
tqdm_kwargs = tqdm_kwargs or {}
|
|
28
|
+
tqdm_kwargs.setdefault("postfix", {}).setdefault("files", self.files_count)
|
|
29
|
+
kwargs = kwargs or {}
|
|
30
|
+
kwargs["tqdm_cls"] = tqdm
|
|
31
|
+
super().__init__(tqdm_kwargs, *args, **kwargs)
|
|
32
|
+
|
|
33
|
+
def increment_file_count(self, n: int = 1) -> None:
|
|
34
|
+
self.files_count += n
|
|
35
|
+
if self.tqdm is not None:
|
|
36
|
+
self.tqdm.postfix = f"{self.files_count} files"
|
|
@@ -33,6 +33,7 @@ from sqlalchemy.sql.elements import ColumnClause, ColumnElement
|
|
|
33
33
|
from sqlalchemy.sql.expression import label
|
|
34
34
|
from sqlalchemy.sql.schema import TableClause
|
|
35
35
|
from sqlalchemy.sql.selectable import Select
|
|
36
|
+
from tqdm.auto import tqdm
|
|
36
37
|
|
|
37
38
|
from datachain.asyn import ASYNC_WORKERS, AsyncMapper, OrderedMapper
|
|
38
39
|
from datachain.catalog.catalog import clone_catalog_with_cache
|
|
@@ -366,12 +367,16 @@ def get_download_callback(suffix: str = "", **kwargs) -> CombinedDownloadCallbac
|
|
|
366
367
|
|
|
367
368
|
|
|
368
369
|
def get_processed_callback() -> Callback:
|
|
369
|
-
return TqdmCallback(
|
|
370
|
+
return TqdmCallback(
|
|
371
|
+
{"desc": "Processed", "unit": " rows", "leave": False}, tqdm_cls=tqdm
|
|
372
|
+
)
|
|
370
373
|
|
|
371
374
|
|
|
372
375
|
def get_generated_callback(is_generator: bool = False) -> Callback:
|
|
373
376
|
if is_generator:
|
|
374
|
-
return TqdmCallback(
|
|
377
|
+
return TqdmCallback(
|
|
378
|
+
{"desc": "Generated", "unit": " rows", "leave": False}, tqdm_cls=tqdm
|
|
379
|
+
)
|
|
375
380
|
return DEFAULT_CALLBACK
|
|
376
381
|
|
|
377
382
|
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"""Manages progress bars."""
|
|
2
|
-
|
|
3
|
-
import logging
|
|
4
|
-
import sys
|
|
5
|
-
from threading import RLock
|
|
6
|
-
from typing import Any, ClassVar
|
|
7
|
-
|
|
8
|
-
from fsspec import Callback
|
|
9
|
-
from fsspec.callbacks import TqdmCallback
|
|
10
|
-
from tqdm import tqdm
|
|
11
|
-
|
|
12
|
-
from datachain.utils import env2bool
|
|
13
|
-
|
|
14
|
-
logger = logging.getLogger(__name__)
|
|
15
|
-
tqdm.set_lock(RLock())
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class Tqdm(tqdm):
|
|
19
|
-
"""
|
|
20
|
-
maximum-compatibility tqdm-based progressbars
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
BAR_FMT_DEFAULT = (
|
|
24
|
-
"{percentage:3.0f}% {desc}|{bar}|"
|
|
25
|
-
"{postfix[info]}{n_fmt}/{total_fmt}"
|
|
26
|
-
" [{elapsed}<{remaining}, {rate_fmt:>11}]"
|
|
27
|
-
)
|
|
28
|
-
# nested bars should have fixed bar widths to align nicely
|
|
29
|
-
BAR_FMT_DEFAULT_NESTED = (
|
|
30
|
-
"{percentage:3.0f}%|{bar:10}|{desc:{ncols_desc}.{ncols_desc}}"
|
|
31
|
-
"{postfix[info]}{n_fmt}/{total_fmt}"
|
|
32
|
-
" [{elapsed}<{remaining}, {rate_fmt:>11}]"
|
|
33
|
-
)
|
|
34
|
-
BAR_FMT_NOTOTAL = "{desc}{bar:b}|{postfix[info]}{n_fmt} [{elapsed}, {rate_fmt:>11}]"
|
|
35
|
-
BYTES_DEFAULTS: ClassVar[dict[str, Any]] = {
|
|
36
|
-
"unit": "B",
|
|
37
|
-
"unit_scale": True,
|
|
38
|
-
"unit_divisor": 1024,
|
|
39
|
-
"miniters": 1,
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
def __init__(
|
|
43
|
-
self,
|
|
44
|
-
iterable=None,
|
|
45
|
-
disable=None,
|
|
46
|
-
level=logging.ERROR,
|
|
47
|
-
desc=None,
|
|
48
|
-
leave=False,
|
|
49
|
-
bar_format=None,
|
|
50
|
-
bytes=False,
|
|
51
|
-
file=None,
|
|
52
|
-
total=None,
|
|
53
|
-
postfix=None,
|
|
54
|
-
**kwargs,
|
|
55
|
-
):
|
|
56
|
-
"""
|
|
57
|
-
bytes : shortcut for
|
|
58
|
-
`unit='B', unit_scale=True, unit_divisor=1024, miniters=1`
|
|
59
|
-
desc : persists after `close()`
|
|
60
|
-
level : effective logging level for determining `disable`;
|
|
61
|
-
used only if `disable` is unspecified
|
|
62
|
-
disable : If (default: None) or False,
|
|
63
|
-
will be determined by logging level.
|
|
64
|
-
May be overridden to `True` due to non-TTY status.
|
|
65
|
-
Skip override by specifying env var `DATACHAIN_IGNORE_ISATTY`.
|
|
66
|
-
kwargs : anything accepted by `tqdm.tqdm()`
|
|
67
|
-
"""
|
|
68
|
-
kwargs = kwargs.copy()
|
|
69
|
-
if bytes:
|
|
70
|
-
kwargs = self.BYTES_DEFAULTS | kwargs
|
|
71
|
-
else:
|
|
72
|
-
kwargs.setdefault("unit_scale", total > 999 if total else True)
|
|
73
|
-
if file is None:
|
|
74
|
-
file = sys.stderr
|
|
75
|
-
# auto-disable based on `logger.level`
|
|
76
|
-
if not disable:
|
|
77
|
-
disable = logger.getEffectiveLevel() > level
|
|
78
|
-
# auto-disable based on TTY
|
|
79
|
-
if (
|
|
80
|
-
not disable
|
|
81
|
-
and not env2bool("DATACHAIN_IGNORE_ISATTY")
|
|
82
|
-
and hasattr(file, "isatty")
|
|
83
|
-
):
|
|
84
|
-
disable = not file.isatty()
|
|
85
|
-
super().__init__(
|
|
86
|
-
iterable=iterable,
|
|
87
|
-
disable=disable,
|
|
88
|
-
leave=leave,
|
|
89
|
-
desc=desc,
|
|
90
|
-
bar_format="!",
|
|
91
|
-
lock_args=(False,),
|
|
92
|
-
total=total,
|
|
93
|
-
**kwargs,
|
|
94
|
-
)
|
|
95
|
-
self.postfix = postfix or {"info": ""}
|
|
96
|
-
if bar_format is None:
|
|
97
|
-
if self.__len__():
|
|
98
|
-
self.bar_format = (
|
|
99
|
-
self.BAR_FMT_DEFAULT_NESTED if self.pos else self.BAR_FMT_DEFAULT
|
|
100
|
-
)
|
|
101
|
-
else:
|
|
102
|
-
self.bar_format = self.BAR_FMT_NOTOTAL
|
|
103
|
-
else:
|
|
104
|
-
self.bar_format = bar_format
|
|
105
|
-
self.refresh()
|
|
106
|
-
|
|
107
|
-
def close(self):
|
|
108
|
-
self.postfix["info"] = ""
|
|
109
|
-
# remove ETA (either unknown or zero); remove completed bar
|
|
110
|
-
self.bar_format = self.bar_format.replace("<{remaining}", "").replace(
|
|
111
|
-
"|{bar:10}|", " "
|
|
112
|
-
)
|
|
113
|
-
super().close()
|
|
114
|
-
|
|
115
|
-
@property
|
|
116
|
-
def format_dict(self):
|
|
117
|
-
"""inject `ncols_desc` to fill the display width (`ncols`)"""
|
|
118
|
-
d = super().format_dict
|
|
119
|
-
ncols = d["ncols"] or 80
|
|
120
|
-
# assumes `bar_format` has max one of ("ncols_desc" & "ncols_info")
|
|
121
|
-
|
|
122
|
-
meter = self.format_meter( # type: ignore[call-arg]
|
|
123
|
-
ncols_desc=1, ncols_info=1, **d
|
|
124
|
-
)
|
|
125
|
-
ncols_left = ncols - len(meter) + 1
|
|
126
|
-
ncols_left = max(ncols_left, 0)
|
|
127
|
-
if ncols_left:
|
|
128
|
-
d["ncols_desc"] = d["ncols_info"] = ncols_left
|
|
129
|
-
else:
|
|
130
|
-
# work-around for zero-width description
|
|
131
|
-
d["ncols_desc"] = d["ncols_info"] = 1
|
|
132
|
-
d["prefix"] = ""
|
|
133
|
-
return d
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
class CombinedDownloadCallback(Callback):
|
|
137
|
-
def set_size(self, size):
|
|
138
|
-
# This is a no-op to prevent fsspec's .get_file() from setting the combined
|
|
139
|
-
# download size to the size of the current file.
|
|
140
|
-
pass
|
|
141
|
-
|
|
142
|
-
def increment_file_count(self, n: int = 1) -> None:
|
|
143
|
-
pass
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
class TqdmCombinedDownloadCallback(CombinedDownloadCallback, TqdmCallback):
|
|
147
|
-
def __init__(self, tqdm_kwargs=None, *args, **kwargs):
|
|
148
|
-
self.files_count = 0
|
|
149
|
-
tqdm_kwargs = tqdm_kwargs or {}
|
|
150
|
-
tqdm_kwargs.setdefault("postfix", {}).setdefault("files", self.files_count)
|
|
151
|
-
super().__init__(tqdm_kwargs, *args, **kwargs)
|
|
152
|
-
|
|
153
|
-
def increment_file_count(self, n: int = 1) -> None:
|
|
154
|
-
self.files_count += n
|
|
155
|
-
if self.tqdm is not None:
|
|
156
|
-
self.tqdm.postfix = f"{self.files_count} files"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|