datachain 0.17.0__tar.gz → 0.17.2__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.

Files changed (369) hide show
  1. {datachain-0.17.0/src/datachain.egg-info → datachain-0.17.2}/PKG-INFO +2 -2
  2. datachain-0.17.2/docs/commands/job/ls.md +84 -0
  3. {datachain-0.17.0 → datachain-0.17.2}/mkdocs.yml +1 -0
  4. {datachain-0.17.0 → datachain-0.17.2}/noxfile.py +1 -0
  5. {datachain-0.17.0 → datachain-0.17.2}/pyproject.toml +1 -1
  6. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/parser/job.py +30 -0
  7. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/data_storage/warehouse.py +1 -1
  8. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/values.py +2 -0
  9. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/dispatch.py +8 -6
  10. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/remote/studio.py +12 -1
  11. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/studio.py +33 -2
  12. {datachain-0.17.0 → datachain-0.17.2/src/datachain.egg-info}/PKG-INFO +2 -2
  13. {datachain-0.17.0 → datachain-0.17.2}/src/datachain.egg-info/SOURCES.txt +1 -0
  14. {datachain-0.17.0 → datachain-0.17.2}/src/datachain.egg-info/requires.txt +1 -1
  15. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_warehouse.py +2 -2
  16. {datachain-0.17.0 → datachain-0.17.2}/.cruft.json +0 -0
  17. {datachain-0.17.0 → datachain-0.17.2}/.gitattributes +0 -0
  18. {datachain-0.17.0 → datachain-0.17.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  19. {datachain-0.17.0 → datachain-0.17.2}/.github/ISSUE_TEMPLATE/empty_issue.md +0 -0
  20. {datachain-0.17.0 → datachain-0.17.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  21. {datachain-0.17.0 → datachain-0.17.2}/.github/codecov.yaml +0 -0
  22. {datachain-0.17.0 → datachain-0.17.2}/.github/dependabot.yml +0 -0
  23. {datachain-0.17.0 → datachain-0.17.2}/.github/workflows/benchmarks.yml +0 -0
  24. {datachain-0.17.0 → datachain-0.17.2}/.github/workflows/release.yml +0 -0
  25. {datachain-0.17.0 → datachain-0.17.2}/.github/workflows/tests-studio.yml +0 -0
  26. {datachain-0.17.0 → datachain-0.17.2}/.github/workflows/tests.yml +0 -0
  27. {datachain-0.17.0 → datachain-0.17.2}/.github/workflows/update-template.yaml +0 -0
  28. {datachain-0.17.0 → datachain-0.17.2}/.gitignore +0 -0
  29. {datachain-0.17.0 → datachain-0.17.2}/.pre-commit-config.yaml +0 -0
  30. {datachain-0.17.0 → datachain-0.17.2}/CODE_OF_CONDUCT.rst +0 -0
  31. {datachain-0.17.0 → datachain-0.17.2}/LICENSE +0 -0
  32. {datachain-0.17.0 → datachain-0.17.2}/README.rst +0 -0
  33. {datachain-0.17.0 → datachain-0.17.2}/docs/assets/captioned_cartoons.png +0 -0
  34. {datachain-0.17.0 → datachain-0.17.2}/docs/assets/datachain-white.svg +0 -0
  35. {datachain-0.17.0 → datachain-0.17.2}/docs/assets/datachain.svg +0 -0
  36. {datachain-0.17.0 → datachain-0.17.2}/docs/commands/auth/login.md +0 -0
  37. {datachain-0.17.0 → datachain-0.17.2}/docs/commands/auth/logout.md +0 -0
  38. {datachain-0.17.0 → datachain-0.17.2}/docs/commands/auth/team.md +0 -0
  39. {datachain-0.17.0 → datachain-0.17.2}/docs/commands/auth/token.md +0 -0
  40. {datachain-0.17.0 → datachain-0.17.2}/docs/commands/index.md +0 -0
  41. {datachain-0.17.0 → datachain-0.17.2}/docs/commands/job/cancel.md +0 -0
  42. {datachain-0.17.0 → datachain-0.17.2}/docs/commands/job/logs.md +0 -0
  43. {datachain-0.17.0 → datachain-0.17.2}/docs/commands/job/run.md +0 -0
  44. {datachain-0.17.0 → datachain-0.17.2}/docs/contributing.md +0 -0
  45. {datachain-0.17.0 → datachain-0.17.2}/docs/css/github-permalink-style.css +0 -0
  46. {datachain-0.17.0 → datachain-0.17.2}/docs/examples.md +0 -0
  47. {datachain-0.17.0 → datachain-0.17.2}/docs/index.md +0 -0
  48. {datachain-0.17.0 → datachain-0.17.2}/docs/overrides/main.html +0 -0
  49. {datachain-0.17.0 → datachain-0.17.2}/docs/quick-start.md +0 -0
  50. {datachain-0.17.0 → datachain-0.17.2}/docs/references/data-types/arrowrow.md +0 -0
  51. {datachain-0.17.0 → datachain-0.17.2}/docs/references/data-types/bbox.md +0 -0
  52. {datachain-0.17.0 → datachain-0.17.2}/docs/references/data-types/file.md +0 -0
  53. {datachain-0.17.0 → datachain-0.17.2}/docs/references/data-types/imagefile.md +0 -0
  54. {datachain-0.17.0 → datachain-0.17.2}/docs/references/data-types/index.md +0 -0
  55. {datachain-0.17.0 → datachain-0.17.2}/docs/references/data-types/pose.md +0 -0
  56. {datachain-0.17.0 → datachain-0.17.2}/docs/references/data-types/segment.md +0 -0
  57. {datachain-0.17.0 → datachain-0.17.2}/docs/references/data-types/tarvfile.md +0 -0
  58. {datachain-0.17.0 → datachain-0.17.2}/docs/references/data-types/textfile.md +0 -0
  59. {datachain-0.17.0 → datachain-0.17.2}/docs/references/data-types/videofile.md +0 -0
  60. {datachain-0.17.0 → datachain-0.17.2}/docs/references/datachain.md +0 -0
  61. {datachain-0.17.0 → datachain-0.17.2}/docs/references/func.md +0 -0
  62. {datachain-0.17.0 → datachain-0.17.2}/docs/references/index.md +0 -0
  63. {datachain-0.17.0 → datachain-0.17.2}/docs/references/remotes.md +0 -0
  64. {datachain-0.17.0 → datachain-0.17.2}/docs/references/toolkit.md +0 -0
  65. {datachain-0.17.0 → datachain-0.17.2}/docs/references/torch.md +0 -0
  66. {datachain-0.17.0 → datachain-0.17.2}/docs/references/udf.md +0 -0
  67. {datachain-0.17.0 → datachain-0.17.2}/docs/tutorials.md +0 -0
  68. {datachain-0.17.0 → datachain-0.17.2}/examples/computer_vision/iptc_exif_xmp_lib.py +0 -0
  69. {datachain-0.17.0 → datachain-0.17.2}/examples/computer_vision/llava2_image_desc_lib.py +0 -0
  70. {datachain-0.17.0 → datachain-0.17.2}/examples/computer_vision/openimage-detect.py +0 -0
  71. {datachain-0.17.0 → datachain-0.17.2}/examples/computer_vision/ultralytics-bbox.py +0 -0
  72. {datachain-0.17.0 → datachain-0.17.2}/examples/computer_vision/ultralytics-pose.py +0 -0
  73. {datachain-0.17.0 → datachain-0.17.2}/examples/computer_vision/ultralytics-segment.py +0 -0
  74. {datachain-0.17.0 → datachain-0.17.2}/examples/get_started/common_sql_functions.py +0 -0
  75. {datachain-0.17.0 → datachain-0.17.2}/examples/get_started/json-csv-reader.py +0 -0
  76. {datachain-0.17.0 → datachain-0.17.2}/examples/get_started/torch-loader.py +0 -0
  77. {datachain-0.17.0 → datachain-0.17.2}/examples/get_started/udfs/parallel.py +0 -0
  78. {datachain-0.17.0 → datachain-0.17.2}/examples/get_started/udfs/simple.py +0 -0
  79. {datachain-0.17.0 → datachain-0.17.2}/examples/get_started/udfs/stateful.py +0 -0
  80. {datachain-0.17.0 → datachain-0.17.2}/examples/llm_and_nlp/claude-query.py +0 -0
  81. {datachain-0.17.0 → datachain-0.17.2}/examples/llm_and_nlp/hf-dataset-llm-eval.py +0 -0
  82. {datachain-0.17.0 → datachain-0.17.2}/examples/multimodal/clip_inference.py +0 -0
  83. {datachain-0.17.0 → datachain-0.17.2}/examples/multimodal/hf_pipeline.py +0 -0
  84. {datachain-0.17.0 → datachain-0.17.2}/examples/multimodal/openai_image_desc_lib.py +0 -0
  85. {datachain-0.17.0 → datachain-0.17.2}/examples/multimodal/wds.py +0 -0
  86. {datachain-0.17.0 → datachain-0.17.2}/examples/multimodal/wds_filtered.py +0 -0
  87. {datachain-0.17.0 → datachain-0.17.2}/setup.cfg +0 -0
  88. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/__init__.py +0 -0
  89. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/__main__.py +0 -0
  90. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/asyn.py +0 -0
  91. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cache.py +0 -0
  92. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/catalog/__init__.py +0 -0
  93. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/catalog/catalog.py +0 -0
  94. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/catalog/datasource.py +0 -0
  95. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/catalog/loader.py +0 -0
  96. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/__init__.py +0 -0
  97. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/commands/__init__.py +0 -0
  98. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/commands/datasets.py +0 -0
  99. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/commands/du.py +0 -0
  100. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/commands/index.py +0 -0
  101. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/commands/ls.py +0 -0
  102. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/commands/misc.py +0 -0
  103. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/commands/query.py +0 -0
  104. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/commands/show.py +0 -0
  105. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/parser/__init__.py +0 -0
  106. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/parser/studio.py +0 -0
  107. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/parser/utils.py +0 -0
  108. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/cli/utils.py +0 -0
  109. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/client/__init__.py +0 -0
  110. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/client/azure.py +0 -0
  111. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/client/fileslice.py +0 -0
  112. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/client/fsspec.py +0 -0
  113. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/client/gcs.py +0 -0
  114. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/client/hf.py +0 -0
  115. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/client/local.py +0 -0
  116. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/client/s3.py +0 -0
  117. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/config.py +0 -0
  118. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/data_storage/__init__.py +0 -0
  119. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/data_storage/db_engine.py +0 -0
  120. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/data_storage/job.py +0 -0
  121. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/data_storage/metastore.py +0 -0
  122. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/data_storage/schema.py +0 -0
  123. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/data_storage/serializer.py +0 -0
  124. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/data_storage/sqlite.py +0 -0
  125. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/dataset.py +0 -0
  126. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/diff/__init__.py +0 -0
  127. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/error.py +0 -0
  128. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/fs/__init__.py +0 -0
  129. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/fs/reference.py +0 -0
  130. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/fs/utils.py +0 -0
  131. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/__init__.py +0 -0
  132. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/aggregate.py +0 -0
  133. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/array.py +0 -0
  134. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/base.py +0 -0
  135. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/conditional.py +0 -0
  136. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/func.py +0 -0
  137. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/numeric.py +0 -0
  138. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/path.py +0 -0
  139. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/random.py +0 -0
  140. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/string.py +0 -0
  141. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/func/window.py +0 -0
  142. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/job.py +0 -0
  143. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/__init__.py +0 -0
  144. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/arrow.py +0 -0
  145. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/clip.py +0 -0
  146. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/convert/__init__.py +0 -0
  147. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/convert/flatten.py +0 -0
  148. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/convert/python_to_sql.py +0 -0
  149. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/convert/sql_to_python.py +0 -0
  150. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/convert/unflatten.py +0 -0
  151. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/convert/values_to_tuples.py +0 -0
  152. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/data_model.py +0 -0
  153. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dataset_info.py +0 -0
  154. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/__init__.py +0 -0
  155. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/csv.py +0 -0
  156. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/database.py +0 -0
  157. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/datachain.py +0 -0
  158. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/datasets.py +0 -0
  159. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/hf.py +0 -0
  160. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/json.py +0 -0
  161. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/listings.py +0 -0
  162. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/pandas.py +0 -0
  163. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/parquet.py +0 -0
  164. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/records.py +0 -0
  165. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/storage.py +0 -0
  166. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/dc/utils.py +0 -0
  167. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/file.py +0 -0
  168. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/hf.py +0 -0
  169. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/image.py +0 -0
  170. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/listing.py +0 -0
  171. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/listing_info.py +0 -0
  172. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/meta_formats.py +0 -0
  173. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/model_store.py +0 -0
  174. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/pytorch.py +0 -0
  175. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/settings.py +0 -0
  176. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/signal_schema.py +0 -0
  177. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/tar.py +0 -0
  178. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/text.py +0 -0
  179. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/udf.py +0 -0
  180. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/udf_signature.py +0 -0
  181. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/utils.py +0 -0
  182. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/video.py +0 -0
  183. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/webdataset.py +0 -0
  184. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/lib/webdataset_laion.py +0 -0
  185. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/listing.py +0 -0
  186. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/model/__init__.py +0 -0
  187. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/model/bbox.py +0 -0
  188. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/model/pose.py +0 -0
  189. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/model/segment.py +0 -0
  190. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/model/ultralytics/__init__.py +0 -0
  191. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/model/ultralytics/bbox.py +0 -0
  192. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/model/ultralytics/pose.py +0 -0
  193. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/model/ultralytics/segment.py +0 -0
  194. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/model/utils.py +0 -0
  195. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/node.py +0 -0
  196. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/nodes_fetcher.py +0 -0
  197. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/nodes_thread_pool.py +0 -0
  198. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/progress.py +0 -0
  199. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/py.typed +0 -0
  200. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/__init__.py +0 -0
  201. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/batch.py +0 -0
  202. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/dataset.py +0 -0
  203. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/metrics.py +0 -0
  204. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/params.py +0 -0
  205. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/queue.py +0 -0
  206. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/schema.py +0 -0
  207. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/session.py +0 -0
  208. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/udf.py +0 -0
  209. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/query/utils.py +0 -0
  210. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/remote/__init__.py +0 -0
  211. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/script_meta.py +0 -0
  212. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/semver.py +0 -0
  213. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/__init__.py +0 -0
  214. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/default/__init__.py +0 -0
  215. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/default/base.py +0 -0
  216. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/functions/__init__.py +0 -0
  217. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/functions/aggregate.py +0 -0
  218. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/functions/array.py +0 -0
  219. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/functions/conditional.py +0 -0
  220. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/functions/numeric.py +0 -0
  221. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/functions/path.py +0 -0
  222. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/functions/random.py +0 -0
  223. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/functions/string.py +0 -0
  224. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/selectable.py +0 -0
  225. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/sqlite/__init__.py +0 -0
  226. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/sqlite/base.py +0 -0
  227. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/sqlite/types.py +0 -0
  228. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/sqlite/vector.py +0 -0
  229. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/types.py +0 -0
  230. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/sql/utils.py +0 -0
  231. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/telemetry.py +0 -0
  232. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/toolkit/__init__.py +0 -0
  233. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/toolkit/split.py +0 -0
  234. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/torch/__init__.py +0 -0
  235. {datachain-0.17.0 → datachain-0.17.2}/src/datachain/utils.py +0 -0
  236. {datachain-0.17.0 → datachain-0.17.2}/src/datachain.egg-info/dependency_links.txt +0 -0
  237. {datachain-0.17.0 → datachain-0.17.2}/src/datachain.egg-info/entry_points.txt +0 -0
  238. {datachain-0.17.0 → datachain-0.17.2}/src/datachain.egg-info/top_level.txt +0 -0
  239. {datachain-0.17.0 → datachain-0.17.2}/tests/__init__.py +0 -0
  240. {datachain-0.17.0 → datachain-0.17.2}/tests/benchmarks/__init__.py +0 -0
  241. {datachain-0.17.0 → datachain-0.17.2}/tests/benchmarks/conftest.py +0 -0
  242. {datachain-0.17.0 → datachain-0.17.2}/tests/benchmarks/datasets/.dvc/.gitignore +0 -0
  243. {datachain-0.17.0 → datachain-0.17.2}/tests/benchmarks/datasets/.dvc/config +0 -0
  244. {datachain-0.17.0 → datachain-0.17.2}/tests/benchmarks/datasets/.gitignore +0 -0
  245. {datachain-0.17.0 → datachain-0.17.2}/tests/benchmarks/datasets/laion-tiny.npz.dvc +0 -0
  246. {datachain-0.17.0 → datachain-0.17.2}/tests/benchmarks/test_datachain.py +0 -0
  247. {datachain-0.17.0 → datachain-0.17.2}/tests/benchmarks/test_ls.py +0 -0
  248. {datachain-0.17.0 → datachain-0.17.2}/tests/benchmarks/test_version.py +0 -0
  249. {datachain-0.17.0 → datachain-0.17.2}/tests/conftest.py +0 -0
  250. {datachain-0.17.0 → datachain-0.17.2}/tests/data.py +0 -0
  251. {datachain-0.17.0 → datachain-0.17.2}/tests/examples/__init__.py +0 -0
  252. {datachain-0.17.0 → datachain-0.17.2}/tests/examples/test_examples.py +0 -0
  253. {datachain-0.17.0 → datachain-0.17.2}/tests/examples/test_wds_e2e.py +0 -0
  254. {datachain-0.17.0 → datachain-0.17.2}/tests/examples/wds_data.py +0 -0
  255. {datachain-0.17.0 → datachain-0.17.2}/tests/func/__init__.py +0 -0
  256. {datachain-0.17.0 → datachain-0.17.2}/tests/func/data/Big_Buck_Bunny_360_10s_1MB.mp4 +0 -0
  257. {datachain-0.17.0 → datachain-0.17.2}/tests/func/data/lena.jpg +0 -0
  258. {datachain-0.17.0 → datachain-0.17.2}/tests/func/fake-service-account-credentials.json +0 -0
  259. {datachain-0.17.0 → datachain-0.17.2}/tests/func/model/__init__.py +0 -0
  260. {datachain-0.17.0 → datachain-0.17.2}/tests/func/model/data/running-mask0.png +0 -0
  261. {datachain-0.17.0 → datachain-0.17.2}/tests/func/model/data/running-mask1.png +0 -0
  262. {datachain-0.17.0 → datachain-0.17.2}/tests/func/model/data/running.jpg +0 -0
  263. {datachain-0.17.0 → datachain-0.17.2}/tests/func/model/data/ships.jpg +0 -0
  264. {datachain-0.17.0 → datachain-0.17.2}/tests/func/model/test_yolo.py +0 -0
  265. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_batching.py +0 -0
  266. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_catalog.py +0 -0
  267. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_client.py +0 -0
  268. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_cloud_transfer.py +0 -0
  269. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_data_storage.py +0 -0
  270. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_datachain.py +0 -0
  271. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_datachain_merge.py +0 -0
  272. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_dataset_query.py +0 -0
  273. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_datasets.py +0 -0
  274. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_feature_pickling.py +0 -0
  275. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_file.py +0 -0
  276. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_func.py +0 -0
  277. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_hf.py +0 -0
  278. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_hidden_field.py +0 -0
  279. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_image.py +0 -0
  280. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_listing.py +0 -0
  281. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_ls.py +0 -0
  282. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_meta_formats.py +0 -0
  283. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_metrics.py +0 -0
  284. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_pull.py +0 -0
  285. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_pytorch.py +0 -0
  286. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_query.py +0 -0
  287. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_read_database.py +0 -0
  288. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_session.py +0 -0
  289. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_toolkit.py +0 -0
  290. {datachain-0.17.0 → datachain-0.17.2}/tests/func/test_video.py +0 -0
  291. {datachain-0.17.0 → datachain-0.17.2}/tests/scripts/feature_class.py +0 -0
  292. {datachain-0.17.0 → datachain-0.17.2}/tests/scripts/feature_class_exception.py +0 -0
  293. {datachain-0.17.0 → datachain-0.17.2}/tests/scripts/feature_class_parallel.py +0 -0
  294. {datachain-0.17.0 → datachain-0.17.2}/tests/scripts/feature_class_parallel_data_model.py +0 -0
  295. {datachain-0.17.0 → datachain-0.17.2}/tests/scripts/name_len_slow.py +0 -0
  296. {datachain-0.17.0 → datachain-0.17.2}/tests/test_atomicity.py +0 -0
  297. {datachain-0.17.0 → datachain-0.17.2}/tests/test_cli_e2e.py +0 -0
  298. {datachain-0.17.0 → datachain-0.17.2}/tests/test_cli_studio.py +0 -0
  299. {datachain-0.17.0 → datachain-0.17.2}/tests/test_import_time.py +0 -0
  300. {datachain-0.17.0 → datachain-0.17.2}/tests/test_query_e2e.py +0 -0
  301. {datachain-0.17.0 → datachain-0.17.2}/tests/test_telemetry.py +0 -0
  302. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/__init__.py +0 -0
  303. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/__init__.py +0 -0
  304. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/conftest.py +0 -0
  305. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_arrow.py +0 -0
  306. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_clip.py +0 -0
  307. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_datachain.py +0 -0
  308. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_datachain_bootstrap.py +0 -0
  309. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_datachain_merge.py +0 -0
  310. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_diff.py +0 -0
  311. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_feature.py +0 -0
  312. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_feature_utils.py +0 -0
  313. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_file.py +0 -0
  314. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_hf.py +0 -0
  315. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_image.py +0 -0
  316. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_listing_info.py +0 -0
  317. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_python_to_sql.py +0 -0
  318. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_schema.py +0 -0
  319. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_signal_schema.py +0 -0
  320. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_sql_to_python.py +0 -0
  321. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_text.py +0 -0
  322. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_udf.py +0 -0
  323. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_udf_signature.py +0 -0
  324. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_utils.py +0 -0
  325. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/lib/test_webdataset.py +0 -0
  326. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/model/__init__.py +0 -0
  327. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/model/test_bbox.py +0 -0
  328. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/model/test_pose.py +0 -0
  329. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/model/test_segment.py +0 -0
  330. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/model/test_utils.py +0 -0
  331. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/sql/__init__.py +0 -0
  332. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/sql/sqlite/__init__.py +0 -0
  333. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/sql/sqlite/test_types.py +0 -0
  334. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/sql/sqlite/test_utils.py +0 -0
  335. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/sql/test_array.py +0 -0
  336. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/sql/test_conditional.py +0 -0
  337. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/sql/test_path.py +0 -0
  338. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/sql/test_random.py +0 -0
  339. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/sql/test_selectable.py +0 -0
  340. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/sql/test_string.py +0 -0
  341. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_asyn.py +0 -0
  342. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_cache.py +0 -0
  343. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_catalog.py +0 -0
  344. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_catalog_loader.py +0 -0
  345. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_cli_parsing.py +0 -0
  346. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_client.py +0 -0
  347. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_client_gcs.py +0 -0
  348. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_client_s3.py +0 -0
  349. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_config.py +0 -0
  350. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_data_storage.py +0 -0
  351. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_database_engine.py +0 -0
  352. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_dataset.py +0 -0
  353. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_dispatch.py +0 -0
  354. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_fileslice.py +0 -0
  355. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_func.py +0 -0
  356. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_listing.py +0 -0
  357. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_metastore.py +0 -0
  358. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_module_exports.py +0 -0
  359. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_pytorch.py +0 -0
  360. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_query.py +0 -0
  361. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_query_metrics.py +0 -0
  362. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_query_params.py +0 -0
  363. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_script_meta.py +0 -0
  364. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_semver.py +0 -0
  365. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_serializer.py +0 -0
  366. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_session.py +0 -0
  367. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_utils.py +0 -0
  368. {datachain-0.17.0 → datachain-0.17.2}/tests/unit/test_warehouse.py +0 -0
  369. {datachain-0.17.0 → datachain-0.17.2}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datachain
3
- Version: 0.17.0
3
+ Version: 0.17.2
4
4
  Summary: Wrangle unstructured AI data at scale
5
5
  Author-email: Dmitry Petrov <support@dvc.org>
6
6
  License-Expression: Apache-2.0
@@ -44,7 +44,7 @@ Requires-Dist: datamodel-code-generator>=0.25
44
44
  Requires-Dist: Pillow<12,>=10.0.0
45
45
  Requires-Dist: msgpack<2,>=1.0.4
46
46
  Requires-Dist: psutil
47
- Requires-Dist: huggingface_hub
47
+ Requires-Dist: huggingface_hub<0.31
48
48
  Requires-Dist: iterative-telemetry>=0.0.10
49
49
  Requires-Dist: platformdirs
50
50
  Requires-Dist: dvc-studio-client<1,>=0.21
@@ -0,0 +1,84 @@
1
+ # job ls
2
+
3
+ List jobs in Studio.
4
+
5
+ ## Synopsis
6
+
7
+ ```usage
8
+ usage: datachain job ls [-h] [-v] [-q] [--status STATUS] [--team TEAM] [--limit LIMIT]
9
+ ```
10
+
11
+ ## Description
12
+
13
+ This command lists jobs in Studio. You can filter jobs by their status, specify a team, and limit the number of jobs returned. By default, it shows the 20 most recent jobs.
14
+
15
+
16
+ ## Options
17
+
18
+ * `--status STATUS` - Status to filter jobs by
19
+ * `--team TEAM` - Team to list jobs for (default: from config)
20
+ * `--limit LIMIT` - Limit the number of jobs returned (default: 20)
21
+ * `-h`, `--help` - Show the help message and exit
22
+ * `-v`, `--verbose` - Be verbose
23
+ * `-q`, `--quiet` - Be quiet
24
+
25
+ ## Status options
26
+
27
+ You will be able to filter the job with following status:
28
+
29
+ * `CREATED` - Job has been created but not yet scheduled
30
+ * `SCHEDULED` - Job is scheduled to run at a future time
31
+ * `QUEUED` - Job is in the queue waiting to be executed
32
+ * `INIT` - Job is initializing and preparing to run
33
+ * `RUNNING` - Job is currently executing
34
+ * `COMPLETE` - Job has finished successfully
35
+ * `FAILED` - Job has failed during execution
36
+ * `CANCELING_SCHEDULED` - A scheduled job is being canceled
37
+ * `CANCELING` - A running job is being canceled
38
+ * `CANCELED` - Job has been canceled
39
+ * `ACTIVE` - Job is in active state.
40
+ * `INACTIVE` - Job is in inactive state.
41
+
42
+ Note: The following statuses are considered active jobs:
43
+
44
+ * `CREATED`
45
+ * `SCHEDULED`
46
+ * `QUEUED`
47
+ * `INIT`
48
+ * `RUNNING`
49
+ * `CANCELING_SCHEDULED`
50
+ * `CANCELING`
51
+
52
+
53
+ ## Examples
54
+
55
+ 1. List all jobs (default limit of 20):
56
+ ```bash
57
+ datachain job ls
58
+ ```
59
+
60
+ 2. List jobs for a specific team:
61
+ ```bash
62
+ datachain job ls --team my-team
63
+ ```
64
+
65
+ 3. List jobs with a specific status:
66
+ ```bash
67
+ datachain job ls --status complete
68
+ ```
69
+
70
+ 4. List more jobs by increasing the limit:
71
+ ```bash
72
+ datachain job ls --limit 50
73
+ ```
74
+
75
+ 5. List jobs with verbose output:
76
+ ```bash
77
+ datachain job ls -v
78
+ ```
79
+
80
+ ## Notes
81
+
82
+ * The default limit of 20 jobs helps manage the output size and performance
83
+ * Jobs are typically listed in reverse chronological order (newest first)
84
+ * Use the `--status` filter to find jobs in specific states (e.g., running, completed, failed)
@@ -96,6 +96,7 @@ nav:
96
96
  - run: commands/job/run.md
97
97
  - logs: commands/job/logs.md
98
98
  - cancel: commands/job/cancel.md
99
+ - ls: commands/job/ls.md
99
100
  - 📡 Interacting with remote storage: references/remotes.md
100
101
  - 🤝 Contributing: contributing.md
101
102
 
@@ -90,6 +90,7 @@ def build(session: nox.Session) -> None:
90
90
  @nox.session(python=python_versions)
91
91
  def examples(session: nox.Session) -> None:
92
92
  session.install(".[examples]")
93
+ session.run("uv", "pip", "list")
93
94
  session.run(
94
95
  "pytest",
95
96
  "--durations=0",
@@ -48,7 +48,7 @@ dependencies = [
48
48
  "Pillow>=10.0.0,<12",
49
49
  "msgpack>=1.0.4,<2",
50
50
  "psutil",
51
- "huggingface_hub",
51
+ "huggingface_hub<0.31", # fix for "Provider 'featherless-ai' not supported" error
52
52
  "iterative-telemetry>=0.0.10",
53
53
  "platformdirs",
54
54
  "dvc-studio-client>=0.21,<1",
@@ -83,6 +83,36 @@ def add_jobs_parser(subparsers, parent_parser) -> None:
83
83
  help="Python package requirements",
84
84
  )
85
85
 
86
+ studio_ls_help = "List jobs in Studio"
87
+ studio_ls_description = "List jobs in Studio."
88
+
89
+ studio_ls_parser = jobs_subparser.add_parser(
90
+ "ls",
91
+ parents=[parent_parser],
92
+ description=studio_ls_description,
93
+ help=studio_ls_help,
94
+ formatter_class=CustomHelpFormatter,
95
+ )
96
+
97
+ studio_ls_parser.add_argument(
98
+ "--status",
99
+ action="store",
100
+ help="Status to filter jobs by",
101
+ )
102
+
103
+ studio_ls_parser.add_argument(
104
+ "--team",
105
+ action="store",
106
+ default=None,
107
+ help="Team to list jobs for (default: from config)",
108
+ )
109
+ studio_ls_parser.add_argument(
110
+ "--limit",
111
+ type=int,
112
+ default=20,
113
+ help="Limit the number of jobs returned (default: 20)",
114
+ )
115
+
86
116
  studio_cancel_help = "Cancel a job in Studio"
87
117
  studio_cancel_description = "Cancel a running job in Studio."
88
118
 
@@ -258,7 +258,7 @@ class AbstractWarehouse(ABC, Serializable):
258
258
  if Client.is_data_source_uri(dataset_name):
259
259
  # for datasets that are created for bucket listing we use different prefix
260
260
  prefix = self.DATASET_SOURCE_TABLE_PREFIX
261
- return f"{prefix}{dataset_name}_{version}"
261
+ return f"{prefix}{dataset_name}_{version.replace('.', '_')}"
262
262
 
263
263
  def temp_table_name(self) -> str:
264
264
  return self.TMP_TABLE_NAME_PREFIX + _random_string(6)
@@ -42,6 +42,8 @@ def read_values(
42
42
  def _func_fr() -> Iterator[tuple_type]: # type: ignore[valid-type]
43
43
  yield from tuples
44
44
 
45
+ _func_fr.__name__ = "read_values"
46
+
45
47
  chain = read_records(
46
48
  DataChain.DEFAULT_FILE_RECORD,
47
49
  session=session,
@@ -203,9 +203,10 @@ class UDFDispatcher:
203
203
  def get_inputs() -> Iterable["RowsOutput"]:
204
204
  warehouse = self.catalog.warehouse.clone()
205
205
  if ids_only:
206
- yield from warehouse.dataset_rows_select_from_ids(
207
- self.query, input_rows, self.is_batching
208
- )
206
+ for ids in batched(input_rows, DEFAULT_BATCH_SIZE):
207
+ yield from warehouse.dataset_rows_select_from_ids(
208
+ self.query, ids, self.is_batching
209
+ )
209
210
  else:
210
211
  yield from input_rows
211
212
 
@@ -425,8 +426,9 @@ class UDFWorker:
425
426
  warehouse = self.catalog.warehouse.clone()
426
427
  while (batch := get_from_queue(self.task_queue)) != STOP_SIGNAL:
427
428
  if ids_only:
428
- yield from warehouse.dataset_rows_select_from_ids(
429
- self.query, batch, self.is_batching
430
- )
429
+ for ids in batched(batch, DEFAULT_BATCH_SIZE):
430
+ yield from warehouse.dataset_rows_select_from_ids(
431
+ self.query, ids, self.is_batching
432
+ )
431
433
  else:
432
434
  yield from batch
@@ -29,7 +29,7 @@ DatasetExportStatus = Optional[dict[str, Any]]
29
29
  DatasetExportSignedUrls = Optional[list[str]]
30
30
  FileUploadData = Optional[dict[str, Any]]
31
31
  JobData = Optional[dict[str, Any]]
32
-
32
+ JobListData = dict[str, Any]
33
33
  logger = logging.getLogger("datachain")
34
34
 
35
35
  DATASET_ROWS_CHUNK_SIZE = 8192
@@ -402,6 +402,17 @@ class StudioClient:
402
402
  }
403
403
  return self._send_request("datachain/job", data)
404
404
 
405
+ def get_jobs(
406
+ self,
407
+ status: Optional[str] = None,
408
+ limit: int = 20,
409
+ ) -> Response[JobListData]:
410
+ return self._send_request(
411
+ "datachain/jobs",
412
+ {"status": status, "limit": limit} if status else {"limit": limit},
413
+ method="GET",
414
+ )
415
+
405
416
  def cancel_job(
406
417
  self,
407
418
  job_id: str,
@@ -3,6 +3,8 @@ import os
3
3
  import sys
4
4
  from typing import TYPE_CHECKING, Optional
5
5
 
6
+ import tabulate
7
+
6
8
  from datachain.config import Config, ConfigLevel
7
9
  from datachain.dataset import QUERY_DATASET_PREFIX
8
10
  from datachain.error import DataChainError
@@ -44,6 +46,10 @@ def process_jobs_args(args: "Namespace"):
44
46
  return cancel_job(args.id, args.team)
45
47
  if args.cmd == "logs":
46
48
  return show_job_logs(args.id, args.team)
49
+
50
+ if args.cmd == "ls":
51
+ return list_jobs(args.status, args.team, args.limit)
52
+
47
53
  raise DataChainError(f"Unknown command '{args.cmd}'.")
48
54
 
49
55
 
@@ -240,13 +246,13 @@ def show_logs_from_client(client, job_id):
240
246
  raise DataChainError(response.message)
241
247
 
242
248
  response_data = response.data
243
- if response_data:
249
+ if response_data and response_data.get("dataset_versions"):
244
250
  dataset_versions = response_data.get("dataset_versions", [])
245
251
  print("\n\n>>>> Dataset versions created during the job:")
246
252
  for version in dataset_versions:
247
253
  print(f" - {version.get('dataset_name')}@v{version.get('version')}")
248
254
  else:
249
- print("No dataset versions created during the job.")
255
+ print("\n\nNo dataset versions created during the job.")
250
256
 
251
257
 
252
258
  def create_job(
@@ -337,6 +343,31 @@ def cancel_job(job_id: str, team_name: Optional[str]):
337
343
  print(f"Job {job_id} canceled")
338
344
 
339
345
 
346
+ def list_jobs(status: Optional[str], team_name: Optional[str], limit: int):
347
+ client = StudioClient(team=team_name)
348
+ response = client.get_jobs(status, limit)
349
+ if not response.ok:
350
+ raise DataChainError(response.message)
351
+
352
+ jobs = response.data.get("jobs", [])
353
+ if not jobs:
354
+ print("No jobs found")
355
+ return
356
+
357
+ rows = [
358
+ {
359
+ "ID": job.get("id"),
360
+ "Name": job.get("name"),
361
+ "Status": job.get("status"),
362
+ "Created at": job.get("created_at"),
363
+ "Created by": job.get("created_by"),
364
+ }
365
+ for job in jobs
366
+ ]
367
+
368
+ print(tabulate.tabulate(rows, headers="keys", tablefmt="grid"))
369
+
370
+
340
371
  def show_job_logs(job_id: str, team_name: Optional[str]):
341
372
  token = Config().read().get("studio", {}).get("token")
342
373
  if not token:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datachain
3
- Version: 0.17.0
3
+ Version: 0.17.2
4
4
  Summary: Wrangle unstructured AI data at scale
5
5
  Author-email: Dmitry Petrov <support@dvc.org>
6
6
  License-Expression: Apache-2.0
@@ -44,7 +44,7 @@ Requires-Dist: datamodel-code-generator>=0.25
44
44
  Requires-Dist: Pillow<12,>=10.0.0
45
45
  Requires-Dist: msgpack<2,>=1.0.4
46
46
  Requires-Dist: psutil
47
- Requires-Dist: huggingface_hub
47
+ Requires-Dist: huggingface_hub<0.31
48
48
  Requires-Dist: iterative-telemetry>=0.0.10
49
49
  Requires-Dist: platformdirs
50
50
  Requires-Dist: dvc-studio-client<1,>=0.21
@@ -33,6 +33,7 @@ docs/commands/auth/team.md
33
33
  docs/commands/auth/token.md
34
34
  docs/commands/job/cancel.md
35
35
  docs/commands/job/logs.md
36
+ docs/commands/job/ls.md
36
37
  docs/commands/job/run.md
37
38
  docs/css/github-permalink-style.css
38
39
  docs/overrides/main.html
@@ -25,7 +25,7 @@ datamodel-code-generator>=0.25
25
25
  Pillow<12,>=10.0.0
26
26
  msgpack<2,>=1.0.4
27
27
  psutil
28
- huggingface_hub
28
+ huggingface_hub<0.31
29
29
  iterative-telemetry>=0.0.10
30
30
  platformdirs
31
31
  dvc-studio-client<1,>=0.21
@@ -1,6 +1,6 @@
1
1
  def test_dataset_stats_no_table(cloud_test_catalog, dogs_dataset):
2
2
  catalog = cloud_test_catalog.catalog
3
- catalog.warehouse.drop_dataset_rows_table(dogs_dataset, 1)
4
- num_objects, size = catalog.warehouse.dataset_stats(dogs_dataset, 1)
3
+ catalog.warehouse.drop_dataset_rows_table(dogs_dataset, version="1.0.0")
4
+ num_objects, size = catalog.warehouse.dataset_stats(dogs_dataset, version="1.0.0")
5
5
  assert num_objects is None
6
6
  assert size is None
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes