deltacat 1.1.10__tar.gz → 1.1.12__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.
Files changed (229) hide show
  1. {deltacat-1.1.10/deltacat.egg-info → deltacat-1.1.12}/PKG-INFO +1 -1
  2. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/__init__.py +1 -1
  3. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/utils/primary_key_index.py +1 -1
  4. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/exceptions.py +5 -2
  5. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor/utils/test_round_completion_file.py +22 -0
  6. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/test_daft.py +38 -0
  7. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/test_pyarrow.py +63 -0
  8. {deltacat-1.1.10 → deltacat-1.1.12/deltacat.egg-info}/PKG-INFO +1 -1
  9. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat.egg-info/requires.txt +2 -2
  10. {deltacat-1.1.10 → deltacat-1.1.12}/setup.py +2 -2
  11. {deltacat-1.1.10 → deltacat-1.1.12}/LICENSE +0 -0
  12. {deltacat-1.1.10 → deltacat-1.1.12}/MANIFEST.in +0 -0
  13. {deltacat-1.1.10 → deltacat-1.1.12}/README.md +0 -0
  14. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/aws/__init__.py +0 -0
  15. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/aws/clients.py +0 -0
  16. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/aws/constants.py +0 -0
  17. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/aws/redshift/__init__.py +0 -0
  18. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/aws/redshift/model/__init__.py +0 -0
  19. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/aws/redshift/model/manifest.py +0 -0
  20. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/aws/s3u.py +0 -0
  21. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/benchmarking/__init__.py +0 -0
  22. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/benchmarking/benchmark_parquet_reads.py +0 -0
  23. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/benchmarking/conftest.py +0 -0
  24. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/catalog/__init__.py +0 -0
  25. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/catalog/default_catalog_impl/__init__.py +0 -0
  26. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/catalog/delegate.py +0 -0
  27. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/catalog/interface.py +0 -0
  28. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/catalog/model/__init__.py +0 -0
  29. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/catalog/model/catalog.py +0 -0
  30. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/catalog/model/table_definition.py +0 -0
  31. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/__init__.py +0 -0
  32. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/__init__.py +0 -0
  33. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/compaction_session.py +0 -0
  34. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/__init__.py +0 -0
  35. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/compact_partition_params.py +0 -0
  36. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/compaction_session_audit_info.py +0 -0
  37. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/compactor_version.py +0 -0
  38. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/dedupe_result.py +0 -0
  39. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/delta_annotated.py +0 -0
  40. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/delta_file_envelope.py +0 -0
  41. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/delta_file_locator.py +0 -0
  42. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/hash_bucket_result.py +0 -0
  43. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/materialize_result.py +0 -0
  44. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/primary_key_index.py +0 -0
  45. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/pyarrow_write_result.py +0 -0
  46. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/repartition_result.py +0 -0
  47. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/round_completion_info.py +0 -0
  48. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/model/table_object_store.py +0 -0
  49. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/repartition_session.py +0 -0
  50. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/steps/__init__.py +0 -0
  51. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/steps/dedupe.py +0 -0
  52. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/steps/hash_bucket.py +0 -0
  53. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/steps/materialize.py +0 -0
  54. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/steps/repartition.py +0 -0
  55. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/utils/__init__.py +0 -0
  56. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/utils/io.py +0 -0
  57. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/utils/primary_key_index.py +0 -0
  58. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/utils/round_completion_file.py +0 -0
  59. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/utils/sort_key.py +0 -0
  60. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor/utils/system_columns.py +0 -0
  61. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/__init__.py +0 -0
  62. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/compaction_session.py +0 -0
  63. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/constants.py +0 -0
  64. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/deletes/__init__.py +0 -0
  65. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/deletes/delete_file_envelope.py +0 -0
  66. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/deletes/delete_strategy.py +0 -0
  67. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/deletes/delete_strategy_equality_delete.py +0 -0
  68. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/deletes/model.py +0 -0
  69. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/deletes/utils.py +0 -0
  70. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/model/__init__.py +0 -0
  71. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/model/evaluate_compaction_result.py +0 -0
  72. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/model/hash_bucket_input.py +0 -0
  73. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/model/hash_bucket_result.py +0 -0
  74. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/model/merge_file_group.py +0 -0
  75. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/model/merge_input.py +0 -0
  76. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/model/merge_result.py +0 -0
  77. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/steps/__init__.py +0 -0
  78. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/steps/hash_bucket.py +0 -0
  79. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/steps/merge.py +0 -0
  80. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/utils/__init__.py +0 -0
  81. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/utils/content_type_params.py +0 -0
  82. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/utils/dedupe.py +0 -0
  83. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/utils/delta.py +0 -0
  84. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/utils/io.py +0 -0
  85. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/utils/merge.py +0 -0
  86. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/compactor_v2/utils/task_options.py +0 -0
  87. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/merge_on_read/__init__.py +0 -0
  88. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/merge_on_read/daft.py +0 -0
  89. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/merge_on_read/model/__init__.py +0 -0
  90. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/merge_on_read/model/merge_on_read_params.py +0 -0
  91. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/merge_on_read/utils/__init__.py +0 -0
  92. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/merge_on_read/utils/delta.py +0 -0
  93. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/__init__.py +0 -0
  94. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/config/__init__.py +0 -0
  95. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/meta_stats.py +0 -0
  96. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/model/__init__.py +0 -0
  97. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/model/partition_stats_dict.py +0 -0
  98. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/model/stats_cluster_size_estimator.py +0 -0
  99. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/stats.py +0 -0
  100. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/utils/__init__.py +0 -0
  101. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/utils/constants.py +0 -0
  102. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/utils/io.py +0 -0
  103. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/utils/pyarrow_memory_estimation_function.py +0 -0
  104. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/metastats/utils/ray_utils.py +0 -0
  105. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/__init__.py +0 -0
  106. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/basic.py +0 -0
  107. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/models/__init__.py +0 -0
  108. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/models/delta_column_stats.py +0 -0
  109. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/models/delta_stats.py +0 -0
  110. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/models/delta_stats_cache_result.py +0 -0
  111. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/models/manifest_entry_stats.py +0 -0
  112. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/models/stats_result.py +0 -0
  113. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/types.py +0 -0
  114. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/utils/__init__.py +0 -0
  115. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/utils/intervals.py +0 -0
  116. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/utils/io.py +0 -0
  117. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/compute/stats/utils/manifest_stats_file.py +0 -0
  118. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/constants.py +0 -0
  119. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/__init__.py +0 -0
  120. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/aws/__init__.py +0 -0
  121. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/aws/redshift/__init__.py +0 -0
  122. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/dataset.py +0 -0
  123. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/file_object_store.py +0 -0
  124. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/memcached_object_store.py +0 -0
  125. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/object_store.py +0 -0
  126. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/ray_plasma_object_store.py +0 -0
  127. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/read_api.py +0 -0
  128. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/redis_object_store.py +0 -0
  129. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/io/s3_object_store.py +0 -0
  130. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/logs.py +0 -0
  131. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/__init__.py +0 -0
  132. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/interface.py +0 -0
  133. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/__init__.py +0 -0
  134. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/delete_parameters.py +0 -0
  135. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/delta.py +0 -0
  136. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/list_result.py +0 -0
  137. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/locator.py +0 -0
  138. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/namespace.py +0 -0
  139. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/partition.py +0 -0
  140. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/partition_spec.py +0 -0
  141. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/sort_key.py +0 -0
  142. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/stream.py +0 -0
  143. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/table.py +0 -0
  144. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/table_version.py +0 -0
  145. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/transform.py +0 -0
  146. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/storage/model/types.py +0 -0
  147. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/__init__.py +0 -0
  148. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/aws/__init__.py +0 -0
  149. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/aws/test_clients.py +0 -0
  150. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/aws/test_s3u.py +0 -0
  151. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/catalog/__init__.py +0 -0
  152. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/catalog/test_default_catalog_impl.py +0 -0
  153. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/__init__.py +0 -0
  154. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compact_partition_rebase_test_cases.py +0 -0
  155. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compact_partition_rebase_then_incremental_test_cases.py +0 -0
  156. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compact_partition_test_cases.py +0 -0
  157. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor/__init__.py +0 -0
  158. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor/steps/__init__.py +0 -0
  159. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor/steps/test_repartition.py +0 -0
  160. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor/utils/__init__.py +0 -0
  161. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor/utils/test_io.py +0 -0
  162. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor_v2/__init__.py +0 -0
  163. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor_v2/test_compaction_session.py +0 -0
  164. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor_v2/test_hashlib.py +0 -0
  165. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor_v2/utils/__init__.py +0 -0
  166. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/compactor_v2/utils/test_task_options.py +0 -0
  167. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/test_compact_partition_incremental.py +0 -0
  168. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/test_compact_partition_params.py +0 -0
  169. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/test_compact_partition_rebase.py +0 -0
  170. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/test_compact_partition_rebase_then_incremental.py +0 -0
  171. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/test_util_common.py +0 -0
  172. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/test_util_constant.py +0 -0
  173. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/compute/test_util_create_table_deltas_repo.py +0 -0
  174. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/io/__init__.py +0 -0
  175. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/io/test_cloudpickle_bug_fix.py +0 -0
  176. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/io/test_file_object_store.py +0 -0
  177. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/io/test_memcached_object_store.py +0 -0
  178. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/io/test_ray_plasma_object_store.py +0 -0
  179. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/io/test_redis_object_store.py +0 -0
  180. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/io/test_s3_object_store.py +0 -0
  181. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/local_deltacat_storage/__init__.py +0 -0
  182. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/local_deltacat_storage/exceptions.py +0 -0
  183. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/stats/__init__.py +0 -0
  184. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/stats/test_intervals.py +0 -0
  185. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/test_exceptions.py +0 -0
  186. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/test_logs.py +0 -0
  187. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/test_utils/__init__.py +0 -0
  188. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/test_utils/constants.py +0 -0
  189. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/test_utils/pyarrow.py +0 -0
  190. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/test_utils/storage.py +0 -0
  191. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/test_utils/utils.py +0 -0
  192. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/__init__.py +0 -0
  193. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/data/__init__.py +0 -0
  194. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/ray_utils/__init__.py +0 -0
  195. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/ray_utils/test_concurrency.py +0 -0
  196. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/ray_utils/test_dataset.py +0 -0
  197. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/test_cloudpickle.py +0 -0
  198. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/test_metrics.py +0 -0
  199. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/test_placement.py +0 -0
  200. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/test_record_batch_tables.py +0 -0
  201. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/tests/utils/test_resources.py +0 -0
  202. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/types/__init__.py +0 -0
  203. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/types/media.py +0 -0
  204. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/types/partial_download.py +0 -0
  205. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/types/tables.py +0 -0
  206. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/__init__.py +0 -0
  207. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/arguments.py +0 -0
  208. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/cloudpickle.py +0 -0
  209. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/common.py +0 -0
  210. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/daft.py +0 -0
  211. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/metrics.py +0 -0
  212. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/numpy.py +0 -0
  213. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/pandas.py +0 -0
  214. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/performance.py +0 -0
  215. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/placement.py +0 -0
  216. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/pyarrow.py +0 -0
  217. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/ray_utils/__init__.py +0 -0
  218. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/ray_utils/collections.py +0 -0
  219. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/ray_utils/concurrency.py +0 -0
  220. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/ray_utils/dataset.py +0 -0
  221. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/ray_utils/performance.py +0 -0
  222. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/ray_utils/runtime.py +0 -0
  223. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/resources.py +0 -0
  224. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/s3fs.py +0 -0
  225. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat/utils/schema.py +0 -0
  226. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat.egg-info/SOURCES.txt +0 -0
  227. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat.egg-info/dependency_links.txt +0 -0
  228. {deltacat-1.1.10 → deltacat-1.1.12}/deltacat.egg-info/top_level.txt +0 -0
  229. {deltacat-1.1.10 → deltacat-1.1.12}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deltacat
3
- Version: 1.1.10
3
+ Version: 1.1.12
4
4
  Summary: A scalable, fast, ACID-compliant Data Catalog powered by Ray.
5
5
  Home-page: https://github.com/ray-project/deltacat
6
6
  Author: Ray Team
@@ -44,7 +44,7 @@ from deltacat.types.tables import TableWriteMode
44
44
 
45
45
  deltacat.logs.configure_deltacat_logger(logging.getLogger(__name__))
46
46
 
47
- __version__ = "1.1.10"
47
+ __version__ = "1.1.12"
48
48
 
49
49
 
50
50
  __all__ = [
@@ -162,7 +162,7 @@ def group_by_pk_hash_bucket(
162
162
  len(new_tables) == 1
163
163
  ), f"Expected only 1 table in the result but found {len(new_tables)}"
164
164
 
165
- table = generate_pk_hash_column([table], primary_keys, requires_hash=True)[0]
165
+ table = new_tables[0]
166
166
 
167
167
  # group hash bucket record indices
168
168
  result = group_record_indices_by_hash_bucket(
@@ -213,11 +213,14 @@ def categorize_errors(func: Callable):
213
213
  except BaseException as e:
214
214
  deltacat_storage = None
215
215
  deltacat_storage_kwargs = {}
216
+ all_args = args
216
217
  if kwargs:
217
218
  deltacat_storage = kwargs.get(DELTACAT_STORAGE_PARAM)
218
219
  deltacat_storage_kwargs = kwargs.get(DELTACAT_STORAGE_KWARGS_PARAM, {})
219
- if not deltacat_storage and args:
220
- for arg in args:
220
+ all_args = all_args + tuple(kwargs.values())
221
+
222
+ if not deltacat_storage and all_args:
223
+ for arg in all_args:
221
224
  if (
222
225
  isinstance(arg, dict)
223
226
  and arg.get(DELTACAT_STORAGE_PARAM) is not None
@@ -179,6 +179,28 @@ class TestReadWriteRoundCompletionFile:
179
179
 
180
180
  assert rcf == expected_rcf_2
181
181
 
182
+ def test_read_when_none_destination_partition_id(self):
183
+
184
+ source_locator = get_test_partition_locator("source")
185
+ destination_locator = get_test_partition_locator(None)
186
+
187
+ expected_rcf = RoundCompletionInfo.of(
188
+ high_watermark=122,
189
+ compacted_delta_locator={},
190
+ compacted_pyarrow_write_result={},
191
+ sort_keys_bit_width=12,
192
+ )
193
+
194
+ write_round_completion_file(
195
+ RCF_BUCKET_NAME, source_locator, destination_locator, expected_rcf
196
+ )
197
+
198
+ rcf = read_round_completion_file(
199
+ RCF_BUCKET_NAME, source_locator, destination_locator
200
+ )
201
+
202
+ assert rcf == expected_rcf
203
+
182
204
  def test_write_when_custom_url_is_passed(self):
183
205
  """
184
206
  This test case tests the backward compatibility by successfully
@@ -104,6 +104,44 @@ class TestDaftS3FileToTable(unittest.TestCase):
104
104
  self.assertEqual(table.schema.field("MISSING").type, pa.string())
105
105
  self.assertEqual(table.num_rows, 100)
106
106
 
107
+ def test_read_from_s3_single_column_with_schema_extra_cols_column_names(self):
108
+ schema = pa.schema([("a", pa.int8()), ("MISSING", pa.string())])
109
+ pa_read_func_kwargs_provider = ReadKwargsProviderPyArrowSchemaOverride(
110
+ schema=schema
111
+ )
112
+ table = daft_s3_file_to_table(
113
+ self.MVP_PATH,
114
+ content_encoding=ContentEncoding.IDENTITY.value,
115
+ content_type=ContentType.PARQUET.value,
116
+ column_names=["a", "MISSING"],
117
+ pa_read_func_kwargs_provider=pa_read_func_kwargs_provider,
118
+ )
119
+ self.assertEqual(
120
+ table.schema.names, ["a", "MISSING"]
121
+ ) # NOTE: "MISSING" is padded as a null array
122
+ self.assertEqual(table.schema.field("a").type, pa.int8())
123
+ self.assertEqual(table.schema.field("MISSING").type, pa.string())
124
+ self.assertEqual(table.num_rows, 100)
125
+
126
+ def test_read_from_s3_single_column_with_schema_only_missing_col(self):
127
+ schema = pa.schema([("a", pa.int8()), ("MISSING", pa.string())])
128
+ pa_read_func_kwargs_provider = ReadKwargsProviderPyArrowSchemaOverride(
129
+ schema=schema
130
+ )
131
+ table = daft_s3_file_to_table(
132
+ self.MVP_PATH,
133
+ content_encoding=ContentEncoding.IDENTITY.value,
134
+ content_type=ContentType.PARQUET.value,
135
+ include_columns=["MISSING"],
136
+ column_names=["a", "MISSING"],
137
+ pa_read_func_kwargs_provider=pa_read_func_kwargs_provider,
138
+ )
139
+ self.assertEqual(
140
+ table.schema.names, ["MISSING"]
141
+ ) # NOTE: "MISSING" is padded as a null array
142
+ self.assertEqual(table.schema.field("MISSING").type, pa.string())
143
+ self.assertEqual(table.num_rows, 0)
144
+
107
145
  def test_read_from_s3_single_column_with_row_groups(self):
108
146
 
109
147
  metadata = pq.read_metadata(self.MVP_PATH)
@@ -85,6 +85,43 @@ class TestS3PartialParquetFileToTable(TestCase):
85
85
  self.assertEqual(result_schema.field(2).type, "int64")
86
86
  self.assertEqual(result_schema.field(2).name, "MISSING")
87
87
 
88
+ def test_s3_partial_parquet_file_to_table_when_schema_missing_columns(self):
89
+
90
+ pq_file = ParquetFile(PARQUET_FILE_PATH)
91
+ partial_parquet_params = PartialParquetParameters.of(
92
+ pq_metadata=pq_file.metadata
93
+ )
94
+ # only first row group to be downloaded
95
+ partial_parquet_params.row_groups_to_download.pop()
96
+
97
+ schema = pa.schema(
98
+ [
99
+ pa.field("n_legs", pa.string()),
100
+ pa.field("animal", pa.string()),
101
+ # NOTE: This field is not in the parquet file, but will be added on as an all-null column
102
+ pa.field("MISSING", pa.int64()),
103
+ ]
104
+ )
105
+
106
+ pa_kwargs_provider = lambda content_type, kwargs: {"schema": schema}
107
+
108
+ result = s3_partial_parquet_file_to_table(
109
+ PARQUET_FILE_PATH,
110
+ ContentType.PARQUET.value,
111
+ ContentEncoding.IDENTITY.value,
112
+ pa_read_func_kwargs_provider=pa_kwargs_provider,
113
+ partial_file_download_params=partial_parquet_params,
114
+ column_names=["n_legs", "animal", "MISSING"],
115
+ include_columns=["MISSING"],
116
+ )
117
+
118
+ self.assertEqual(len(result), 0)
119
+ self.assertEqual(len(result.column_names), 1)
120
+
121
+ result_schema = result.schema
122
+ self.assertEqual(result_schema.field(0).type, "int64")
123
+ self.assertEqual(result_schema.field(0).name, "MISSING")
124
+
88
125
  def test_s3_partial_parquet_file_to_table_when_schema_passed_with_include_columns(
89
126
  self,
90
127
  ):
@@ -234,6 +271,32 @@ class TestReadCSV(TestCase):
234
271
  lambda: pyarrow_read_csv(NON_EMPTY_VALID_UTSV_PATH, **kwargs),
235
272
  )
236
273
 
274
+ def test_read_csv_when_excess_columns_included(self):
275
+
276
+ schema = pa.schema(
277
+ [
278
+ ("is_active", pa.string()),
279
+ ("ship_datetime_utc", pa.timestamp("us")),
280
+ ("MISSING", pa.string()),
281
+ ]
282
+ )
283
+ kwargs = content_type_to_reader_kwargs(ContentType.UNESCAPED_TSV.value)
284
+ _add_column_kwargs(
285
+ ContentType.UNESCAPED_TSV.value,
286
+ ["is_active", "ship_datetime_utc", "MISSING"],
287
+ ["is_active", "ship_datetime_utc", "MISSING"],
288
+ kwargs,
289
+ )
290
+
291
+ read_kwargs_provider = ReadKwargsProviderPyArrowSchemaOverride(schema=schema)
292
+
293
+ kwargs = read_kwargs_provider(ContentType.UNESCAPED_TSV.value, kwargs)
294
+
295
+ self.assertRaises(
296
+ pa.lib.ArrowInvalid,
297
+ lambda: pyarrow_read_csv(NON_EMPTY_VALID_UTSV_PATH, **kwargs),
298
+ )
299
+
237
300
  def test_read_csv_when_empty_csv_sanity(self):
238
301
 
239
302
  schema = pa.schema(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deltacat
3
- Version: 1.1.10
3
+ Version: 1.1.12
4
4
  Summary: A scalable, fast, ACID-compliant Data Catalog powered by Ray.
5
5
  Home-page: https://github.com/ray-project/deltacat
6
6
  Author: Ray Team
@@ -4,11 +4,11 @@ numpy==1.21.5
4
4
  pandas==1.3.5
5
5
  pyarrow==12.0.1
6
6
  pydantic==1.10.4
7
- ray[default]>=2.20.0
7
+ ray>=2.20.0
8
8
  s3fs==2024.5.0
9
9
  tenacity==8.1.0
10
10
  typing-extensions==4.4.0
11
11
  pymemcache==4.0.0
12
12
  redis==4.6.0
13
- getdaft==0.2.27
13
+ getdaft==0.2.31
14
14
  schedule==1.2.0
@@ -41,13 +41,13 @@ setuptools.setup(
41
41
  "pandas == 1.3.5",
42
42
  "pyarrow == 12.0.1",
43
43
  "pydantic == 1.10.4",
44
- "ray[default] >= 2.20.0",
44
+ "ray >= 2.20.0",
45
45
  "s3fs == 2024.5.0",
46
46
  "tenacity == 8.1.0",
47
47
  "typing-extensions == 4.4.0",
48
48
  "pymemcache == 4.0.0",
49
49
  "redis == 4.6.0",
50
- "getdaft == 0.2.27",
50
+ "getdaft == 0.2.31",
51
51
  "schedule == 1.2.0",
52
52
  ],
53
53
  setup_requires=["wheel"],
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes