datachain 0.34.6__tar.gz → 0.34.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of datachain might be problematic. Click here for more details.

Files changed (444) hide show
  1. {datachain-0.34.6 → datachain-0.34.7}/.github/workflows/tests.yml +8 -8
  2. {datachain-0.34.6 → datachain-0.34.7}/.pre-commit-config.yaml +1 -1
  3. {datachain-0.34.6 → datachain-0.34.7}/PKG-INFO +2 -3
  4. {datachain-0.34.6 → datachain-0.34.7}/docs/commands/job/run.md +1 -1
  5. {datachain-0.34.6 → datachain-0.34.7}/docs/guide/namespaces.md +1 -1
  6. {datachain-0.34.6 → datachain-0.34.7}/examples/get_started/json-csv-reader.py +4 -5
  7. {datachain-0.34.6 → datachain-0.34.7}/examples/get_started/nested_datamodel.py +4 -6
  8. {datachain-0.34.6 → datachain-0.34.7}/pyproject.toml +4 -2
  9. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/asyn.py +11 -12
  10. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cache.py +5 -5
  11. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/catalog/catalog.py +75 -83
  12. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/catalog/loader.py +3 -3
  13. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/checkpoint.py +1 -2
  14. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/__init__.py +2 -4
  15. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/commands/datasets.py +13 -13
  16. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/commands/ls.py +4 -4
  17. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/commands/query.py +3 -3
  18. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/commands/show.py +2 -2
  19. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/parser/job.py +1 -1
  20. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/parser/utils.py +1 -2
  21. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/utils.py +1 -2
  22. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/client/azure.py +2 -2
  23. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/client/fsspec.py +11 -21
  24. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/client/gcs.py +3 -3
  25. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/client/http.py +4 -4
  26. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/client/local.py +4 -4
  27. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/client/s3.py +3 -3
  28. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/config.py +4 -8
  29. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/data_storage/db_engine.py +5 -5
  30. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/data_storage/metastore.py +107 -107
  31. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/data_storage/schema.py +18 -24
  32. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/data_storage/sqlite.py +21 -28
  33. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/data_storage/warehouse.py +13 -13
  34. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/dataset.py +64 -70
  35. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/delta.py +21 -18
  36. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/diff/__init__.py +13 -13
  37. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/aggregate.py +9 -11
  38. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/array.py +12 -12
  39. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/base.py +7 -4
  40. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/conditional.py +9 -13
  41. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/func.py +45 -42
  42. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/numeric.py +5 -7
  43. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/string.py +2 -2
  44. datachain-0.34.7/src/datachain/hash_utils.py +120 -0
  45. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/job.py +8 -8
  46. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/arrow.py +17 -14
  47. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/audio.py +6 -6
  48. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/clip.py +5 -4
  49. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/convert/python_to_sql.py +4 -22
  50. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/convert/values_to_tuples.py +4 -9
  51. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/data_model.py +20 -19
  52. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dataset_info.py +6 -6
  53. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/csv.py +10 -10
  54. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/database.py +28 -29
  55. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/datachain.py +98 -97
  56. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/datasets.py +22 -22
  57. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/hf.py +4 -4
  58. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/json.py +9 -10
  59. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/listings.py +5 -8
  60. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/pandas.py +3 -6
  61. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/parquet.py +5 -5
  62. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/records.py +5 -5
  63. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/storage.py +12 -12
  64. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/storage_pattern.py +2 -2
  65. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/utils.py +11 -14
  66. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/values.py +3 -6
  67. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/file.py +26 -26
  68. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/hf.py +7 -5
  69. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/image.py +13 -13
  70. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/listing.py +5 -5
  71. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/listing_info.py +1 -2
  72. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/meta_formats.py +1 -2
  73. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/model_store.py +3 -3
  74. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/namespaces.py +4 -6
  75. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/projects.py +5 -9
  76. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/pytorch.py +10 -10
  77. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/settings.py +23 -23
  78. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/signal_schema.py +52 -44
  79. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/text.py +8 -7
  80. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/udf.py +25 -17
  81. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/udf_signature.py +11 -11
  82. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/video.py +3 -4
  83. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/webdataset.py +30 -35
  84. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/webdataset_laion.py +15 -16
  85. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/listing.py +4 -4
  86. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/model/bbox.py +3 -1
  87. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/namespace.py +4 -4
  88. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/node.py +6 -6
  89. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/nodes_thread_pool.py +0 -1
  90. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/plugins.py +1 -7
  91. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/project.py +4 -4
  92. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/batch.py +7 -8
  93. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/dataset.py +80 -87
  94. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/dispatch.py +7 -7
  95. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/metrics.py +3 -4
  96. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/params.py +2 -3
  97. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/schema.py +7 -6
  98. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/session.py +7 -7
  99. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/udf.py +8 -7
  100. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/utils.py +3 -5
  101. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/remote/studio.py +33 -39
  102. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/script_meta.py +12 -12
  103. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/sqlite/base.py +6 -9
  104. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/studio.py +30 -30
  105. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/toolkit/split.py +1 -2
  106. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/utils.py +21 -21
  107. {datachain-0.34.6 → datachain-0.34.7}/src/datachain.egg-info/PKG-INFO +2 -3
  108. {datachain-0.34.6 → datachain-0.34.7}/tests/examples/test_examples.py +1 -2
  109. {datachain-0.34.6 → datachain-0.34.7}/tests/func/functions/test_array.py +1 -1
  110. {datachain-0.34.6 → datachain-0.34.7}/tests/func/functions/test_conditional.py +2 -4
  111. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_batching.py +4 -5
  112. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_catalog.py +3 -3
  113. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_data_storage.py +1 -1
  114. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_datachain.py +385 -6
  115. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_dataset_query.py +12 -6
  116. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_feature_pickling.py +2 -2
  117. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_hf.py +6 -11
  118. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_listing.py +1 -1
  119. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_udf.py +1 -1
  120. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_warehouse.py +1 -1
  121. {datachain-0.34.6 → datachain-0.34.7}/tests/scripts/feature_class_parallel.py +2 -2
  122. {datachain-0.34.6 → datachain-0.34.7}/tests/scripts/feature_class_parallel_data_model.py +2 -2
  123. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_arrow.py +8 -9
  124. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_datachain.py +32 -14
  125. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_datachain_merge.py +9 -10
  126. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_feature.py +2 -2
  127. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_hf.py +1 -3
  128. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_python_to_sql.py +11 -15
  129. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_signal_schema.py +90 -72
  130. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_udf_signature.py +5 -5
  131. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_utils.py +2 -3
  132. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_datachain_hash.py +5 -5
  133. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_dispatch.py +1 -2
  134. datachain-0.34.7/tests/unit/test_hash_utils.py +372 -0
  135. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_query.py +14 -3
  136. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_query_steps_hash.py +24 -24
  137. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_serializer.py +3 -3
  138. {datachain-0.34.6 → datachain-0.34.7}/tests/utils.py +5 -4
  139. datachain-0.34.6/src/datachain/hash_utils.py +0 -147
  140. datachain-0.34.6/tests/unit/test_hash_utils.py +0 -109
  141. {datachain-0.34.6 → datachain-0.34.7}/.cruft.json +0 -0
  142. {datachain-0.34.6 → datachain-0.34.7}/.gitattributes +0 -0
  143. {datachain-0.34.6 → datachain-0.34.7}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  144. {datachain-0.34.6 → datachain-0.34.7}/.github/ISSUE_TEMPLATE/empty_issue.md +0 -0
  145. {datachain-0.34.6 → datachain-0.34.7}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  146. {datachain-0.34.6 → datachain-0.34.7}/.github/codecov.yaml +0 -0
  147. {datachain-0.34.6 → datachain-0.34.7}/.github/dependabot.yml +0 -0
  148. {datachain-0.34.6 → datachain-0.34.7}/.github/workflows/benchmarks.yml +0 -0
  149. {datachain-0.34.6 → datachain-0.34.7}/.github/workflows/release.yml +0 -0
  150. {datachain-0.34.6 → datachain-0.34.7}/.github/workflows/tests-studio.yml +0 -0
  151. {datachain-0.34.6 → datachain-0.34.7}/.github/workflows/update-template.yaml +0 -0
  152. {datachain-0.34.6 → datachain-0.34.7}/.gitignore +0 -0
  153. {datachain-0.34.6 → datachain-0.34.7}/CODE_OF_CONDUCT.rst +0 -0
  154. {datachain-0.34.6 → datachain-0.34.7}/LICENSE +0 -0
  155. {datachain-0.34.6 → datachain-0.34.7}/README.rst +0 -0
  156. {datachain-0.34.6 → datachain-0.34.7}/docs/api_hooks.py +0 -0
  157. {datachain-0.34.6 → datachain-0.34.7}/docs/assets/captioned_cartoons.png +0 -0
  158. {datachain-0.34.6 → datachain-0.34.7}/docs/assets/datachain-white.svg +0 -0
  159. {datachain-0.34.6 → datachain-0.34.7}/docs/assets/datachain.svg +0 -0
  160. {datachain-0.34.6 → datachain-0.34.7}/docs/assets/webhook_dialog.png +0 -0
  161. {datachain-0.34.6 → datachain-0.34.7}/docs/assets/webhook_list.png +0 -0
  162. {datachain-0.34.6 → datachain-0.34.7}/docs/commands/auth/login.md +0 -0
  163. {datachain-0.34.6 → datachain-0.34.7}/docs/commands/auth/logout.md +0 -0
  164. {datachain-0.34.6 → datachain-0.34.7}/docs/commands/auth/team.md +0 -0
  165. {datachain-0.34.6 → datachain-0.34.7}/docs/commands/auth/token.md +0 -0
  166. {datachain-0.34.6 → datachain-0.34.7}/docs/commands/index.md +0 -0
  167. {datachain-0.34.6 → datachain-0.34.7}/docs/commands/job/cancel.md +0 -0
  168. {datachain-0.34.6 → datachain-0.34.7}/docs/commands/job/clusters.md +0 -0
  169. {datachain-0.34.6 → datachain-0.34.7}/docs/commands/job/logs.md +0 -0
  170. {datachain-0.34.6 → datachain-0.34.7}/docs/commands/job/ls.md +0 -0
  171. {datachain-0.34.6 → datachain-0.34.7}/docs/contributing.md +0 -0
  172. {datachain-0.34.6 → datachain-0.34.7}/docs/css/github-permalink-style.css +0 -0
  173. {datachain-0.34.6 → datachain-0.34.7}/docs/examples.md +0 -0
  174. {datachain-0.34.6 → datachain-0.34.7}/docs/guide/db_migrations.md +0 -0
  175. {datachain-0.34.6 → datachain-0.34.7}/docs/guide/delta.md +0 -0
  176. {datachain-0.34.6 → datachain-0.34.7}/docs/guide/env.md +0 -0
  177. {datachain-0.34.6 → datachain-0.34.7}/docs/guide/index.md +0 -0
  178. {datachain-0.34.6 → datachain-0.34.7}/docs/guide/processing.md +0 -0
  179. {datachain-0.34.6 → datachain-0.34.7}/docs/guide/remotes.md +0 -0
  180. {datachain-0.34.6 → datachain-0.34.7}/docs/guide/retry.md +0 -0
  181. {datachain-0.34.6 → datachain-0.34.7}/docs/index.md +0 -0
  182. {datachain-0.34.6 → datachain-0.34.7}/docs/overrides/main.html +0 -0
  183. {datachain-0.34.6 → datachain-0.34.7}/docs/quick-start.md +0 -0
  184. {datachain-0.34.6 → datachain-0.34.7}/docs/references/data-types/arrowrow.md +0 -0
  185. {datachain-0.34.6 → datachain-0.34.7}/docs/references/data-types/bbox.md +0 -0
  186. {datachain-0.34.6 → datachain-0.34.7}/docs/references/data-types/file.md +0 -0
  187. {datachain-0.34.6 → datachain-0.34.7}/docs/references/data-types/imagefile.md +0 -0
  188. {datachain-0.34.6 → datachain-0.34.7}/docs/references/data-types/index.md +0 -0
  189. {datachain-0.34.6 → datachain-0.34.7}/docs/references/data-types/pose.md +0 -0
  190. {datachain-0.34.6 → datachain-0.34.7}/docs/references/data-types/segment.md +0 -0
  191. {datachain-0.34.6 → datachain-0.34.7}/docs/references/data-types/tarvfile.md +0 -0
  192. {datachain-0.34.6 → datachain-0.34.7}/docs/references/data-types/textfile.md +0 -0
  193. {datachain-0.34.6 → datachain-0.34.7}/docs/references/data-types/videofile.md +0 -0
  194. {datachain-0.34.6 → datachain-0.34.7}/docs/references/datachain.md +0 -0
  195. {datachain-0.34.6 → datachain-0.34.7}/docs/references/func.md +0 -0
  196. {datachain-0.34.6 → datachain-0.34.7}/docs/references/functions/aggregate.md +0 -0
  197. {datachain-0.34.6 → datachain-0.34.7}/docs/references/functions/array.md +0 -0
  198. {datachain-0.34.6 → datachain-0.34.7}/docs/references/functions/conditional.md +0 -0
  199. {datachain-0.34.6 → datachain-0.34.7}/docs/references/functions/numeric.md +0 -0
  200. {datachain-0.34.6 → datachain-0.34.7}/docs/references/functions/path.md +0 -0
  201. {datachain-0.34.6 → datachain-0.34.7}/docs/references/functions/random.md +0 -0
  202. {datachain-0.34.6 → datachain-0.34.7}/docs/references/functions/string.md +0 -0
  203. {datachain-0.34.6 → datachain-0.34.7}/docs/references/functions/window.md +0 -0
  204. {datachain-0.34.6 → datachain-0.34.7}/docs/references/index.md +0 -0
  205. {datachain-0.34.6 → datachain-0.34.7}/docs/references/toolkit.md +0 -0
  206. {datachain-0.34.6 → datachain-0.34.7}/docs/references/torch.md +0 -0
  207. {datachain-0.34.6 → datachain-0.34.7}/docs/references/udf.md +0 -0
  208. {datachain-0.34.6 → datachain-0.34.7}/docs/studio/api/.gitkeep +0 -0
  209. {datachain-0.34.6 → datachain-0.34.7}/docs/studio/webhooks.md +0 -0
  210. {datachain-0.34.6 → datachain-0.34.7}/docs/templates/main.dot +0 -0
  211. {datachain-0.34.6 → datachain-0.34.7}/docs/templates/operation.dot +0 -0
  212. {datachain-0.34.6 → datachain-0.34.7}/docs/templates/responses.def +0 -0
  213. {datachain-0.34.6 → datachain-0.34.7}/docs/tutorials.md +0 -0
  214. {datachain-0.34.6 → datachain-0.34.7}/examples/computer_vision/iptc_exif_xmp_lib.py +0 -0
  215. {datachain-0.34.6 → datachain-0.34.7}/examples/computer_vision/llava2_image_desc_lib.py +0 -0
  216. {datachain-0.34.6 → datachain-0.34.7}/examples/computer_vision/openimage-detect.py +0 -0
  217. {datachain-0.34.6 → datachain-0.34.7}/examples/computer_vision/ultralytics-bbox.py +0 -0
  218. {datachain-0.34.6 → datachain-0.34.7}/examples/computer_vision/ultralytics-pose.py +0 -0
  219. {datachain-0.34.6 → datachain-0.34.7}/examples/computer_vision/ultralytics-segment.py +0 -0
  220. {datachain-0.34.6 → datachain-0.34.7}/examples/get_started/common_sql_functions.py +0 -0
  221. {datachain-0.34.6 → datachain-0.34.7}/examples/get_started/torch-loader.py +0 -0
  222. {datachain-0.34.6 → datachain-0.34.7}/examples/get_started/udfs/parallel.py +0 -0
  223. {datachain-0.34.6 → datachain-0.34.7}/examples/get_started/udfs/simple.py +0 -0
  224. {datachain-0.34.6 → datachain-0.34.7}/examples/get_started/udfs/stateful.py +0 -0
  225. {datachain-0.34.6 → datachain-0.34.7}/examples/incremental_processing/delta.py +0 -0
  226. {datachain-0.34.6 → datachain-0.34.7}/examples/incremental_processing/retry.py +0 -0
  227. {datachain-0.34.6 → datachain-0.34.7}/examples/incremental_processing/utils.py +0 -0
  228. {datachain-0.34.6 → datachain-0.34.7}/examples/llm_and_nlp/claude-query.py +0 -0
  229. {datachain-0.34.6 → datachain-0.34.7}/examples/llm_and_nlp/hf-dataset-llm-eval.py +0 -0
  230. {datachain-0.34.6 → datachain-0.34.7}/examples/multimodal/audio-to-text.py +0 -0
  231. {datachain-0.34.6 → datachain-0.34.7}/examples/multimodal/clip_inference.py +0 -0
  232. {datachain-0.34.6 → datachain-0.34.7}/examples/multimodal/hf_pipeline.py +0 -0
  233. {datachain-0.34.6 → datachain-0.34.7}/examples/multimodal/openai_image_desc_lib.py +0 -0
  234. {datachain-0.34.6 → datachain-0.34.7}/examples/multimodal/wds.py +0 -0
  235. {datachain-0.34.6 → datachain-0.34.7}/examples/multimodal/wds_filtered.py +0 -0
  236. {datachain-0.34.6 → datachain-0.34.7}/mkdocs.yml +0 -0
  237. {datachain-0.34.6 → datachain-0.34.7}/noxfile.py +0 -0
  238. {datachain-0.34.6 → datachain-0.34.7}/setup.cfg +0 -0
  239. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/__init__.py +0 -0
  240. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/__main__.py +0 -0
  241. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/catalog/__init__.py +0 -0
  242. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/catalog/datasource.py +0 -0
  243. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/commands/__init__.py +0 -0
  244. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/commands/du.py +0 -0
  245. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/commands/index.py +0 -0
  246. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/commands/misc.py +0 -0
  247. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/parser/__init__.py +0 -0
  248. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/cli/parser/studio.py +0 -0
  249. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/client/__init__.py +0 -0
  250. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/client/fileslice.py +0 -0
  251. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/client/hf.py +0 -0
  252. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/data_storage/__init__.py +0 -0
  253. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/data_storage/job.py +0 -0
  254. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/data_storage/serializer.py +0 -0
  255. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/error.py +0 -0
  256. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/fs/__init__.py +0 -0
  257. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/fs/reference.py +0 -0
  258. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/fs/utils.py +0 -0
  259. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/__init__.py +0 -0
  260. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/path.py +0 -0
  261. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/random.py +0 -0
  262. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/func/window.py +0 -0
  263. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/__init__.py +0 -0
  264. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/convert/__init__.py +0 -0
  265. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/convert/flatten.py +0 -0
  266. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/convert/sql_to_python.py +0 -0
  267. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/convert/unflatten.py +0 -0
  268. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/dc/__init__.py +0 -0
  269. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/tar.py +0 -0
  270. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/lib/utils.py +0 -0
  271. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/model/__init__.py +0 -0
  272. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/model/pose.py +0 -0
  273. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/model/segment.py +0 -0
  274. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/model/ultralytics/__init__.py +0 -0
  275. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/model/ultralytics/bbox.py +0 -0
  276. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/model/ultralytics/pose.py +0 -0
  277. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/model/ultralytics/segment.py +0 -0
  278. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/model/utils.py +0 -0
  279. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/nodes_fetcher.py +0 -0
  280. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/progress.py +0 -0
  281. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/py.typed +0 -0
  282. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/__init__.py +0 -0
  283. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/query/queue.py +0 -0
  284. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/remote/__init__.py +0 -0
  285. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/semver.py +0 -0
  286. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/__init__.py +0 -0
  287. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/default/__init__.py +0 -0
  288. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/default/base.py +0 -0
  289. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/functions/__init__.py +0 -0
  290. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/functions/aggregate.py +0 -0
  291. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/functions/array.py +0 -0
  292. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/functions/conditional.py +0 -0
  293. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/functions/numeric.py +0 -0
  294. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/functions/path.py +0 -0
  295. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/functions/random.py +0 -0
  296. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/functions/string.py +0 -0
  297. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/postgresql_dialect.py +0 -0
  298. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/postgresql_types.py +0 -0
  299. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/selectable.py +0 -0
  300. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/sqlite/__init__.py +0 -0
  301. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/sqlite/types.py +0 -0
  302. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/sqlite/vector.py +0 -0
  303. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/types.py +0 -0
  304. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/sql/utils.py +0 -0
  305. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/telemetry.py +0 -0
  306. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/toolkit/__init__.py +0 -0
  307. {datachain-0.34.6 → datachain-0.34.7}/src/datachain/torch/__init__.py +0 -0
  308. {datachain-0.34.6 → datachain-0.34.7}/src/datachain.egg-info/SOURCES.txt +0 -0
  309. {datachain-0.34.6 → datachain-0.34.7}/src/datachain.egg-info/dependency_links.txt +0 -0
  310. {datachain-0.34.6 → datachain-0.34.7}/src/datachain.egg-info/entry_points.txt +0 -0
  311. {datachain-0.34.6 → datachain-0.34.7}/src/datachain.egg-info/requires.txt +0 -0
  312. {datachain-0.34.6 → datachain-0.34.7}/src/datachain.egg-info/top_level.txt +0 -0
  313. {datachain-0.34.6 → datachain-0.34.7}/tests/__init__.py +0 -0
  314. {datachain-0.34.6 → datachain-0.34.7}/tests/benchmarks/__init__.py +0 -0
  315. {datachain-0.34.6 → datachain-0.34.7}/tests/benchmarks/conftest.py +0 -0
  316. {datachain-0.34.6 → datachain-0.34.7}/tests/benchmarks/datasets/.dvc/.gitignore +0 -0
  317. {datachain-0.34.6 → datachain-0.34.7}/tests/benchmarks/datasets/.dvc/config +0 -0
  318. {datachain-0.34.6 → datachain-0.34.7}/tests/benchmarks/datasets/.gitignore +0 -0
  319. {datachain-0.34.6 → datachain-0.34.7}/tests/benchmarks/datasets/laion-tiny.npz.dvc +0 -0
  320. {datachain-0.34.6 → datachain-0.34.7}/tests/benchmarks/test_datachain.py +0 -0
  321. {datachain-0.34.6 → datachain-0.34.7}/tests/benchmarks/test_ls.py +0 -0
  322. {datachain-0.34.6 → datachain-0.34.7}/tests/benchmarks/test_version.py +0 -0
  323. {datachain-0.34.6 → datachain-0.34.7}/tests/conftest.py +0 -0
  324. {datachain-0.34.6 → datachain-0.34.7}/tests/data.py +0 -0
  325. {datachain-0.34.6 → datachain-0.34.7}/tests/examples/__init__.py +0 -0
  326. {datachain-0.34.6 → datachain-0.34.7}/tests/examples/test_wds_e2e.py +0 -0
  327. {datachain-0.34.6 → datachain-0.34.7}/tests/examples/wds_data.py +0 -0
  328. {datachain-0.34.6 → datachain-0.34.7}/tests/func/__init__.py +0 -0
  329. {datachain-0.34.6 → datachain-0.34.7}/tests/func/data/Big_Buck_Bunny_360_10s_1MB.mp4 +0 -0
  330. {datachain-0.34.6 → datachain-0.34.7}/tests/func/data/lena.jpg +0 -0
  331. {datachain-0.34.6 → datachain-0.34.7}/tests/func/fake-service-account-credentials.json +0 -0
  332. {datachain-0.34.6 → datachain-0.34.7}/tests/func/functions/__init__.py +0 -0
  333. {datachain-0.34.6 → datachain-0.34.7}/tests/func/functions/test_aggregate.py +0 -0
  334. {datachain-0.34.6 → datachain-0.34.7}/tests/func/functions/test_numeric.py +0 -0
  335. {datachain-0.34.6 → datachain-0.34.7}/tests/func/functions/test_path.py +0 -0
  336. {datachain-0.34.6 → datachain-0.34.7}/tests/func/functions/test_random.py +0 -0
  337. {datachain-0.34.6 → datachain-0.34.7}/tests/func/functions/test_string.py +0 -0
  338. {datachain-0.34.6 → datachain-0.34.7}/tests/func/model/__init__.py +0 -0
  339. {datachain-0.34.6 → datachain-0.34.7}/tests/func/model/data/running-mask0.png +0 -0
  340. {datachain-0.34.6 → datachain-0.34.7}/tests/func/model/data/running-mask1.png +0 -0
  341. {datachain-0.34.6 → datachain-0.34.7}/tests/func/model/data/running.jpg +0 -0
  342. {datachain-0.34.6 → datachain-0.34.7}/tests/func/model/data/ships.jpg +0 -0
  343. {datachain-0.34.6 → datachain-0.34.7}/tests/func/model/test_yolo.py +0 -0
  344. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_audio.py +0 -0
  345. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_client.py +0 -0
  346. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_cloud_transfer.py +0 -0
  347. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_datachain_merge.py +0 -0
  348. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_datasets.py +0 -0
  349. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_delta.py +0 -0
  350. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_file.py +0 -0
  351. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_hidden_field.py +0 -0
  352. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_image.py +0 -0
  353. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_ls.py +0 -0
  354. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_meta_formats.py +0 -0
  355. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_metastore.py +0 -0
  356. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_metrics.py +0 -0
  357. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_mutate.py +0 -0
  358. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_pull.py +0 -0
  359. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_pytorch.py +0 -0
  360. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_query.py +0 -0
  361. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_read_database.py +0 -0
  362. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_read_dataset_remote.py +0 -0
  363. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_read_dataset_version_specifiers.py +0 -0
  364. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_retry.py +0 -0
  365. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_session.py +0 -0
  366. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_storage_pattern.py +0 -0
  367. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_studio_datetime_parsing.py +0 -0
  368. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_to_database.py +0 -0
  369. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_toolkit.py +0 -0
  370. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_union.py +0 -0
  371. {datachain-0.34.6 → datachain-0.34.7}/tests/func/test_video.py +0 -0
  372. {datachain-0.34.6 → datachain-0.34.7}/tests/scripts/feature_class.py +0 -0
  373. {datachain-0.34.6 → datachain-0.34.7}/tests/scripts/feature_class_exception.py +0 -0
  374. {datachain-0.34.6 → datachain-0.34.7}/tests/scripts/name_len_slow.py +0 -0
  375. {datachain-0.34.6 → datachain-0.34.7}/tests/test_atomicity.py +0 -0
  376. {datachain-0.34.6 → datachain-0.34.7}/tests/test_cli_e2e.py +0 -0
  377. {datachain-0.34.6 → datachain-0.34.7}/tests/test_cli_studio.py +0 -0
  378. {datachain-0.34.6 → datachain-0.34.7}/tests/test_import_time.py +0 -0
  379. {datachain-0.34.6 → datachain-0.34.7}/tests/test_query_e2e.py +0 -0
  380. {datachain-0.34.6 → datachain-0.34.7}/tests/test_telemetry.py +0 -0
  381. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/__init__.py +0 -0
  382. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/__init__.py +0 -0
  383. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/conftest.py +0 -0
  384. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_audio.py +0 -0
  385. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_checkpoints.py +0 -0
  386. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_clip.py +0 -0
  387. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_datachain_bootstrap.py +0 -0
  388. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_diff.py +0 -0
  389. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_feature_utils.py +0 -0
  390. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_file.py +0 -0
  391. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_image.py +0 -0
  392. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_listing_info.py +0 -0
  393. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_namespace.py +0 -0
  394. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_partition_by.py +0 -0
  395. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_project.py +0 -0
  396. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_schema.py +0 -0
  397. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_settings.py +0 -0
  398. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_sql_to_python.py +0 -0
  399. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_storage_pattern.py +0 -0
  400. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_text.py +0 -0
  401. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_udf.py +0 -0
  402. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/lib/test_webdataset.py +0 -0
  403. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/model/__init__.py +0 -0
  404. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/model/test_bbox.py +0 -0
  405. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/model/test_pose.py +0 -0
  406. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/model/test_segment.py +0 -0
  407. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/model/test_utils.py +0 -0
  408. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/sql/__init__.py +0 -0
  409. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/sql/sqlite/__init__.py +0 -0
  410. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/sql/sqlite/test_types.py +0 -0
  411. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/sql/sqlite/test_utils.py +0 -0
  412. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/sql/test_array.py +0 -0
  413. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/sql/test_conditional.py +0 -0
  414. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/sql/test_path.py +0 -0
  415. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/sql/test_random.py +0 -0
  416. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/sql/test_selectable.py +0 -0
  417. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/sql/test_string.py +0 -0
  418. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_asyn.py +0 -0
  419. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_cache.py +0 -0
  420. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_catalog.py +0 -0
  421. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_catalog_loader.py +0 -0
  422. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_cli_datasets.py +0 -0
  423. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_cli_parsing.py +0 -0
  424. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_client.py +0 -0
  425. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_client_gcs.py +0 -0
  426. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_client_http.py +0 -0
  427. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_client_s3.py +0 -0
  428. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_config.py +0 -0
  429. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_data_storage.py +0 -0
  430. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_database_engine.py +0 -0
  431. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_dataset.py +0 -0
  432. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_fileslice.py +0 -0
  433. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_func.py +0 -0
  434. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_listing.py +0 -0
  435. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_metastore.py +0 -0
  436. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_module_exports.py +0 -0
  437. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_pytorch.py +0 -0
  438. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_query_metrics.py +0 -0
  439. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_query_params.py +0 -0
  440. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_script_meta.py +0 -0
  441. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_semver.py +0 -0
  442. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_session.py +0 -0
  443. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_utils.py +0 -0
  444. {datachain-0.34.6 → datachain-0.34.7}/tests/unit/test_warehouse.py +0 -0
@@ -23,10 +23,10 @@ jobs:
23
23
  fetch-depth: 0
24
24
  ref: ${{ github.event.pull_request.head.sha || github.ref }}
25
25
 
26
- - name: Set up Python 3.9
26
+ - name: Set up Python 3.10
27
27
  uses: actions/setup-python@v6
28
28
  with:
29
- python-version: '3.9'
29
+ python-version: '3.10'
30
30
 
31
31
  - name: Setup uv
32
32
  uses: astral-sh/setup-uv@v6
@@ -60,14 +60,14 @@ jobs:
60
60
  fail-fast: false
61
61
  matrix:
62
62
  os: [ubuntu-latest-8-cores]
63
- pyv: ['3.9', '3.10', '3.11', '3.12', '3.13']
63
+ pyv: ['3.10', '3.11', '3.12', '3.13']
64
64
  include:
65
65
  - os: macos-latest
66
- pyv: '3.9'
66
+ pyv: '3.10'
67
67
  - os: macos-latest
68
68
  pyv: '3.13'
69
69
  - os: windows-latest
70
- pyv: '3.9'
70
+ pyv: '3.10'
71
71
  - os: windows-latest
72
72
  pyv: '3.13'
73
73
 
@@ -166,15 +166,15 @@ jobs:
166
166
  fail-fast: false
167
167
  matrix:
168
168
  os: [ubuntu-latest, windows-latest]
169
- pyv: ['3.9', '3.13']
169
+ pyv: ['3.10', '3.13']
170
170
  group: ['get_started', 'computer_vision', 'multimodal']
171
171
  exclude:
172
- - {os: ubuntu-latest, pyv: '3.9', group: 'multimodal'}
172
+ - {os: ubuntu-latest, pyv: '3.10', group: 'multimodal'}
173
173
  - {os: ubuntu-latest, pyv: '3.13', group: 'multimodal'}
174
174
  include:
175
175
  # HF runs against actual API - thus run it only once
176
176
  - {os: ubuntu-latest, pyv: "3.13", group: llm_and_nlp}
177
- - {os: ubuntu-latest-4-cores, pyv: "3.9", group: multimodal}
177
+ - {os: ubuntu-latest-4-cores, pyv: "3.10", group: multimodal}
178
178
  - {os: ubuntu-latest-4-cores, pyv: "3.13", group: multimodal}
179
179
 
180
180
  steps:
@@ -24,7 +24,7 @@ repos:
24
24
  - id: trailing-whitespace
25
25
  exclude: '^LICENSES/'
26
26
  - repo: https://github.com/astral-sh/ruff-pre-commit
27
- rev: 'v0.13.2'
27
+ rev: 'v0.13.3'
28
28
  hooks:
29
29
  - id: ruff
30
30
  args: [--fix, --exit-non-zero-on-fix]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datachain
3
- Version: 0.34.6
3
+ Version: 0.34.7
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
@@ -8,13 +8,12 @@ Project-URL: Documentation, https://datachain.dvc.ai
8
8
  Project-URL: Issues, https://github.com/iterative/datachain/issues
9
9
  Project-URL: Source, https://github.com/iterative/datachain
10
10
  Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.9
12
11
  Classifier: Programming Language :: Python :: 3.10
13
12
  Classifier: Programming Language :: Python :: 3.11
14
13
  Classifier: Programming Language :: Python :: 3.12
15
14
  Classifier: Programming Language :: Python :: 3.13
16
15
  Classifier: Development Status :: 2 - Pre-Alpha
17
- Requires-Python: >=3.9
16
+ Requires-Python: >=3.10
18
17
  Description-Content-Type: text/x-rst
19
18
  License-File: LICENSE
20
19
  Requires-Dist: pyyaml
@@ -35,7 +35,7 @@ This command runs a job in Studio using the specified query file. You can config
35
35
  * `--credentials-name CREDENTIALS_NAME` - Name of the credentials to use for the job
36
36
  * `--workers WORKERS` - Number of workers for the job
37
37
  * `--files FILES` - Additional files to include in the job
38
- * `--python-version PYTHON_VERSION` - Python version for the job (e.g., 3.9, 3.10, 3.11)
38
+ * `--python-version PYTHON_VERSION` - Python version for the job (e.g., 3.10, 3.11, 3.12, 3.13)
39
39
  * `--repository REPOSITORY` - Repository URL to clone before running the job
40
40
  * `--req-file REQ_FILE` - Python requirements file
41
41
  * `--req REQ` - Python package requirements
@@ -168,7 +168,7 @@ Use `delete_namespace` to remove an empty namespace or an empty project within a
168
168
  ### Signature
169
169
 
170
170
  ```python
171
- def delete_namespace(name: str, session: Optional[Session]) -> None:
171
+ def delete_namespace(name: str, session: Session | None) -> None:
172
172
  ```
173
173
 
174
174
  - **`<namespace>`** — deletes the namespace (must contain no projects or datasets).
@@ -1,5 +1,4 @@
1
1
  import os
2
- from typing import Optional
3
2
 
4
3
  import datachain as dc
5
4
  from datachain import DataModel
@@ -15,10 +14,10 @@ class LicenseModel(DataModel):
15
14
 
16
15
  # Sample model for static CSV model
17
16
  class ChatDialog(DataModel):
18
- id: Optional[int] = None
19
- count: Optional[int] = None
20
- sender: Optional[str] = None
21
- text: Optional[str] = None
17
+ id: int | None = None
18
+ count: int | None = None
19
+ sender: str | None = None
20
+ text: str | None = None
22
21
 
23
22
 
24
23
  def main():
@@ -7,8 +7,6 @@ The example keeps things minimal: we persist a tiny dataset, run a parallel map
7
7
  that returns a nested DataModel, and display the result.
8
8
  """
9
9
 
10
- from typing import Optional
11
-
12
10
  from pydantic import Field
13
11
 
14
12
  import datachain as dc
@@ -17,12 +15,12 @@ import datachain as dc
17
15
  class Metric(dc.DataModel):
18
16
  """Represents a single computed metric with quality metadata."""
19
17
 
20
- value: Optional[float] = Field(default=None, description="Computed metric value")
21
- confidence: Optional[float] = Field(
18
+ value: float | None = Field(default=None, description="Computed metric value")
19
+ confidence: float | None = Field(
22
20
  default=None, description="Confidence / quality score"
23
21
  )
24
- status: Optional[str] = Field(default=None, description="Processing status label")
25
- metric_error: Optional[str] = Field(
22
+ status: str | None = Field(default=None, description="Processing status label")
23
+ metric_error: str | None = Field(
26
24
  default=None, description="Error message if metric computation failed"
27
25
  )
28
26
 
@@ -11,14 +11,13 @@ license-files = ["LICENSE"]
11
11
  authors = [{name = "Dmitry Petrov", email = "support@dvc.org"}]
12
12
  classifiers = [
13
13
  "Programming Language :: Python :: 3",
14
- "Programming Language :: Python :: 3.9",
15
14
  "Programming Language :: Python :: 3.10",
16
15
  "Programming Language :: Python :: 3.11",
17
16
  "Programming Language :: Python :: 3.12",
18
17
  "Programming Language :: Python :: 3.13",
19
18
  "Development Status :: 2 - Pre-Alpha"
20
19
  ]
21
- requires-python = ">=3.9"
20
+ requires-python = ">=3.10"
22
21
  dynamic = ["version"]
23
22
  dependencies = [
24
23
  "pyyaml",
@@ -314,10 +313,13 @@ max-complexity = 15
314
313
 
315
314
  [tool.ruff.lint.per-file-ignores]
316
315
  "examples/**" = ["INP001"]
316
+ "src/datachain/lib/convert/python_to_sql.py" = ["UP035"]
317
+ "src/datachain/lib/signal_schema.py" = ["UP035"]
317
318
  "!src/datachain/lib/dc.py" = ["D"]
318
319
  "tests/scripts/**" = ["INP001"]
319
320
  "tests/**" = ["DTZ"]
320
321
  "tests/examples/wds_data.py" = ["E501"]
322
+ "tests/unit/lib/test_signal_schema.py" = ["UP006", "UP007", "UP035", "UP045"]
321
323
 
322
324
  [tool.ruff.lint.pydocstyle]
323
325
  convention = "google"
@@ -3,6 +3,7 @@ import threading
3
3
  from collections.abc import (
4
4
  AsyncIterable,
5
5
  Awaitable,
6
+ Callable,
6
7
  Coroutine,
7
8
  Generator,
8
9
  Iterable,
@@ -10,7 +11,7 @@ from collections.abc import (
10
11
  )
11
12
  from concurrent.futures import ThreadPoolExecutor, wait
12
13
  from heapq import heappop, heappush
13
- from typing import Any, Callable, Generic, Optional, TypeVar
14
+ from typing import Any, Generic, TypeVar
14
15
 
15
16
  from fsspec.asyn import get_loop
16
17
 
@@ -49,7 +50,7 @@ class AsyncMapper(Generic[InputT, ResultT]):
49
50
  iterable: Iterable[InputT],
50
51
  *,
51
52
  workers: int = ASYNC_WORKERS,
52
- loop: Optional[asyncio.AbstractEventLoop] = None,
53
+ loop: asyncio.AbstractEventLoop | None = None,
53
54
  ):
54
55
  self.func = func
55
56
  self.iterable = iterable
@@ -107,9 +108,7 @@ class AsyncMapper(Generic[InputT, ResultT]):
107
108
 
108
109
  async def init(self) -> None:
109
110
  self.work_queue = asyncio.Queue(2 * self.workers)
110
- self.result_queue: asyncio.Queue[Optional[ResultT]] = asyncio.Queue(
111
- self.workers
112
- )
111
+ self.result_queue: asyncio.Queue[ResultT | None] = asyncio.Queue(self.workers)
113
112
 
114
113
  async def run(self) -> None:
115
114
  producer = self.start_task(self.produce())
@@ -149,10 +148,10 @@ class AsyncMapper(Generic[InputT, ResultT]):
149
148
  if exc:
150
149
  raise exc
151
150
 
152
- async def _pop_result(self) -> Optional[ResultT]:
151
+ async def _pop_result(self) -> ResultT | None:
153
152
  return await self.result_queue.get()
154
153
 
155
- def next_result(self, timeout=None) -> Optional[ResultT]:
154
+ def next_result(self, timeout=None) -> ResultT | None:
156
155
  """
157
156
  Return the next available result.
158
157
 
@@ -212,17 +211,17 @@ class OrderedMapper(AsyncMapper[InputT, ResultT]):
212
211
  iterable: Iterable[InputT],
213
212
  *,
214
213
  workers: int = ASYNC_WORKERS,
215
- loop: Optional[asyncio.AbstractEventLoop] = None,
214
+ loop: asyncio.AbstractEventLoop | None = None,
216
215
  ):
217
216
  super().__init__(func, iterable, workers=workers, loop=loop)
218
217
  self._waiters: dict[int, Any] = {}
219
- self._getters: dict[int, asyncio.Future[Optional[ResultT]]] = {}
220
- self.heap: list[tuple[int, Optional[ResultT]]] = []
218
+ self._getters: dict[int, asyncio.Future[ResultT | None]] = {}
219
+ self.heap: list[tuple[int, ResultT | None]] = []
221
220
  self._next_yield = 0
222
221
  self._items_seen = 0
223
222
  self._window = 2 * workers
224
223
 
225
- def _push_result(self, i: int, result: Optional[ResultT]) -> None:
224
+ def _push_result(self, i: int, result: ResultT | None) -> None:
226
225
  if i in self._getters:
227
226
  future = self._getters.pop(i)
228
227
  future.set_result(result)
@@ -243,7 +242,7 @@ class OrderedMapper(AsyncMapper[InputT, ResultT]):
243
242
  async def init(self) -> None:
244
243
  self.work_queue = asyncio.Queue(2 * self.workers)
245
244
 
246
- async def _pop_result(self) -> Optional[ResultT]:
245
+ async def _pop_result(self) -> ResultT | None:
247
246
  if self.heap and self.heap[0][0] == self._next_yield:
248
247
  _i, out = heappop(self.heap)
249
248
  else:
@@ -2,7 +2,7 @@ import os
2
2
  from collections.abc import Iterator
3
3
  from contextlib import contextmanager
4
4
  from tempfile import mkdtemp
5
- from typing import TYPE_CHECKING, Optional
5
+ from typing import TYPE_CHECKING
6
6
 
7
7
  from dvc_data.hashfile.db.local import LocalHashFileDB
8
8
  from dvc_objects.fs.local import LocalFileSystem
@@ -22,14 +22,14 @@ def try_scandir(path):
22
22
  pass
23
23
 
24
24
 
25
- def get_temp_cache(tmp_dir: str, prefix: Optional[str] = None) -> "Cache":
25
+ def get_temp_cache(tmp_dir: str, prefix: str | None = None) -> "Cache":
26
26
  cache_dir = mkdtemp(prefix=prefix, dir=tmp_dir)
27
27
  return Cache(cache_dir, tmp_dir=tmp_dir)
28
28
 
29
29
 
30
30
  @contextmanager
31
31
  def temporary_cache(
32
- tmp_dir: str, prefix: Optional[str] = None, delete: bool = True
32
+ tmp_dir: str, prefix: str | None = None, delete: bool = True
33
33
  ) -> Iterator["Cache"]:
34
34
  cache = get_temp_cache(tmp_dir, prefix=prefix)
35
35
  try:
@@ -58,7 +58,7 @@ class Cache: # noqa: PLW1641
58
58
  def tmp_dir(self):
59
59
  return self.odb.tmp_dir
60
60
 
61
- def get_path(self, file: "File") -> Optional[str]:
61
+ def get_path(self, file: "File") -> str | None:
62
62
  if self.contains(file):
63
63
  return self.path_from_checksum(file.get_hash())
64
64
  return None
@@ -74,7 +74,7 @@ class Cache: # noqa: PLW1641
74
74
  self.odb.delete(file.get_hash())
75
75
 
76
76
  async def download(
77
- self, file: "File", client: "Client", callback: Optional[Callback] = None
77
+ self, file: "File", client: "Client", callback: Callback | None = None
78
78
  ) -> None:
79
79
  from dvc_objects.fs.utils import tmp_fname
80
80