deltacat 1.1.15__tar.gz → 1.1.16__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 (233) hide show
  1. {deltacat-1.1.15/deltacat.egg-info → deltacat-1.1.16}/PKG-INFO +1 -1
  2. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/__init__.py +1 -1
  3. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/compaction_session.py +1 -6
  4. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/private/compaction_utils.py +10 -2
  5. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor_v2/test_compaction_session.py +146 -0
  6. {deltacat-1.1.15 → deltacat-1.1.16/deltacat.egg-info}/PKG-INFO +1 -1
  7. {deltacat-1.1.15 → deltacat-1.1.16}/LICENSE +0 -0
  8. {deltacat-1.1.15 → deltacat-1.1.16}/MANIFEST.in +0 -0
  9. {deltacat-1.1.15 → deltacat-1.1.16}/README.md +0 -0
  10. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/aws/__init__.py +0 -0
  11. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/aws/clients.py +0 -0
  12. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/aws/constants.py +0 -0
  13. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/aws/redshift/__init__.py +0 -0
  14. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/aws/redshift/model/__init__.py +0 -0
  15. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/aws/redshift/model/manifest.py +0 -0
  16. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/aws/s3u.py +0 -0
  17. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/benchmarking/__init__.py +0 -0
  18. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/benchmarking/benchmark_parquet_reads.py +0 -0
  19. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/benchmarking/conftest.py +0 -0
  20. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/catalog/__init__.py +0 -0
  21. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/catalog/default_catalog_impl/__init__.py +0 -0
  22. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/catalog/delegate.py +0 -0
  23. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/catalog/interface.py +0 -0
  24. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/catalog/model/__init__.py +0 -0
  25. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/catalog/model/catalog.py +0 -0
  26. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/catalog/model/table_definition.py +0 -0
  27. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/__init__.py +0 -0
  28. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/__init__.py +0 -0
  29. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/compaction_session.py +0 -0
  30. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/__init__.py +0 -0
  31. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/compact_partition_params.py +0 -0
  32. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/compaction_session_audit_info.py +0 -0
  33. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/compactor_version.py +0 -0
  34. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/dedupe_result.py +0 -0
  35. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/delta_annotated.py +0 -0
  36. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/delta_file_envelope.py +0 -0
  37. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/delta_file_locator.py +0 -0
  38. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/hash_bucket_result.py +0 -0
  39. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/materialize_result.py +0 -0
  40. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/primary_key_index.py +0 -0
  41. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/pyarrow_write_result.py +0 -0
  42. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/repartition_result.py +0 -0
  43. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/round_completion_info.py +0 -0
  44. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/model/table_object_store.py +0 -0
  45. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/repartition_session.py +0 -0
  46. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/steps/__init__.py +0 -0
  47. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/steps/dedupe.py +0 -0
  48. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/steps/hash_bucket.py +0 -0
  49. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/steps/materialize.py +0 -0
  50. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/steps/repartition.py +0 -0
  51. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/utils/__init__.py +0 -0
  52. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/utils/io.py +0 -0
  53. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/utils/primary_key_index.py +0 -0
  54. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/utils/round_completion_file.py +0 -0
  55. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/utils/sort_key.py +0 -0
  56. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor/utils/system_columns.py +0 -0
  57. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/__init__.py +0 -0
  58. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/constants.py +0 -0
  59. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/deletes/__init__.py +0 -0
  60. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/deletes/delete_file_envelope.py +0 -0
  61. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/deletes/delete_strategy.py +0 -0
  62. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/deletes/delete_strategy_equality_delete.py +0 -0
  63. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/deletes/model.py +0 -0
  64. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/deletes/utils.py +0 -0
  65. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/model/__init__.py +0 -0
  66. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/model/evaluate_compaction_result.py +0 -0
  67. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/model/hash_bucket_input.py +0 -0
  68. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/model/hash_bucket_result.py +0 -0
  69. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/model/merge_file_group.py +0 -0
  70. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/model/merge_input.py +0 -0
  71. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/model/merge_result.py +0 -0
  72. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/private/__init__.py +0 -0
  73. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/steps/__init__.py +0 -0
  74. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/steps/hash_bucket.py +0 -0
  75. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/steps/merge.py +0 -0
  76. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/utils/__init__.py +0 -0
  77. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/utils/content_type_params.py +0 -0
  78. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/utils/dedupe.py +0 -0
  79. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/utils/delta.py +0 -0
  80. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/utils/io.py +0 -0
  81. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/utils/merge.py +0 -0
  82. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/utils/primary_key_index.py +0 -0
  83. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/compactor_v2/utils/task_options.py +0 -0
  84. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/merge_on_read/__init__.py +0 -0
  85. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/merge_on_read/daft.py +0 -0
  86. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/merge_on_read/model/__init__.py +0 -0
  87. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/merge_on_read/model/merge_on_read_params.py +0 -0
  88. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/merge_on_read/utils/__init__.py +0 -0
  89. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/merge_on_read/utils/delta.py +0 -0
  90. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/__init__.py +0 -0
  91. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/config/__init__.py +0 -0
  92. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/meta_stats.py +0 -0
  93. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/model/__init__.py +0 -0
  94. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/model/partition_stats_dict.py +0 -0
  95. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/model/stats_cluster_size_estimator.py +0 -0
  96. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/stats.py +0 -0
  97. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/utils/__init__.py +0 -0
  98. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/utils/constants.py +0 -0
  99. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/utils/io.py +0 -0
  100. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/utils/pyarrow_memory_estimation_function.py +0 -0
  101. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/metastats/utils/ray_utils.py +0 -0
  102. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/__init__.py +0 -0
  103. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/basic.py +0 -0
  104. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/models/__init__.py +0 -0
  105. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/models/delta_column_stats.py +0 -0
  106. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/models/delta_stats.py +0 -0
  107. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/models/delta_stats_cache_result.py +0 -0
  108. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/models/manifest_entry_stats.py +0 -0
  109. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/models/stats_result.py +0 -0
  110. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/types.py +0 -0
  111. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/utils/__init__.py +0 -0
  112. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/utils/intervals.py +0 -0
  113. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/utils/io.py +0 -0
  114. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/compute/stats/utils/manifest_stats_file.py +0 -0
  115. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/constants.py +0 -0
  116. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/exceptions.py +0 -0
  117. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/__init__.py +0 -0
  118. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/aws/__init__.py +0 -0
  119. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/aws/redshift/__init__.py +0 -0
  120. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/dataset.py +0 -0
  121. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/file_object_store.py +0 -0
  122. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/memcached_object_store.py +0 -0
  123. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/object_store.py +0 -0
  124. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/ray_plasma_object_store.py +0 -0
  125. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/read_api.py +0 -0
  126. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/redis_object_store.py +0 -0
  127. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/io/s3_object_store.py +0 -0
  128. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/logs.py +0 -0
  129. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/__init__.py +0 -0
  130. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/interface.py +0 -0
  131. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/__init__.py +0 -0
  132. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/delete_parameters.py +0 -0
  133. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/delta.py +0 -0
  134. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/list_result.py +0 -0
  135. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/locator.py +0 -0
  136. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/namespace.py +0 -0
  137. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/partition.py +0 -0
  138. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/partition_spec.py +0 -0
  139. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/sort_key.py +0 -0
  140. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/stream.py +0 -0
  141. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/table.py +0 -0
  142. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/table_version.py +0 -0
  143. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/transform.py +0 -0
  144. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/storage/model/types.py +0 -0
  145. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/__init__.py +0 -0
  146. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/aws/__init__.py +0 -0
  147. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/aws/test_clients.py +0 -0
  148. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/aws/test_s3u.py +0 -0
  149. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/catalog/__init__.py +0 -0
  150. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/catalog/test_default_catalog_impl.py +0 -0
  151. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/__init__.py +0 -0
  152. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compact_partition_multiple_rounds_test_cases.py +0 -0
  153. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compact_partition_rebase_test_cases.py +0 -0
  154. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compact_partition_rebase_then_incremental_test_cases.py +0 -0
  155. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compact_partition_test_cases.py +0 -0
  156. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor/__init__.py +0 -0
  157. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor/steps/__init__.py +0 -0
  158. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor/steps/test_repartition.py +0 -0
  159. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor/utils/__init__.py +0 -0
  160. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor/utils/test_io.py +0 -0
  161. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor/utils/test_round_completion_file.py +0 -0
  162. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor_v2/__init__.py +0 -0
  163. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor_v2/test_hashlib.py +0 -0
  164. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor_v2/utils/__init__.py +0 -0
  165. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/compactor_v2/utils/test_task_options.py +0 -0
  166. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/test_compact_partition_incremental.py +0 -0
  167. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/test_compact_partition_multiple_rounds.py +0 -0
  168. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/test_compact_partition_params.py +0 -0
  169. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/test_compact_partition_rebase.py +0 -0
  170. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/test_compact_partition_rebase_then_incremental.py +0 -0
  171. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/test_util_common.py +0 -0
  172. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/test_util_constant.py +0 -0
  173. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/compute/test_util_create_table_deltas_repo.py +0 -0
  174. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/io/__init__.py +0 -0
  175. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/io/test_cloudpickle_bug_fix.py +0 -0
  176. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/io/test_file_object_store.py +0 -0
  177. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/io/test_memcached_object_store.py +0 -0
  178. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/io/test_ray_plasma_object_store.py +0 -0
  179. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/io/test_redis_object_store.py +0 -0
  180. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/io/test_s3_object_store.py +0 -0
  181. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/local_deltacat_storage/__init__.py +0 -0
  182. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/local_deltacat_storage/exceptions.py +0 -0
  183. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/stats/__init__.py +0 -0
  184. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/stats/test_intervals.py +0 -0
  185. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/test_exceptions.py +0 -0
  186. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/test_logs.py +0 -0
  187. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/test_utils/__init__.py +0 -0
  188. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/test_utils/constants.py +0 -0
  189. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/test_utils/pyarrow.py +0 -0
  190. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/test_utils/storage.py +0 -0
  191. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/test_utils/utils.py +0 -0
  192. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/__init__.py +0 -0
  193. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/data/__init__.py +0 -0
  194. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/ray_utils/__init__.py +0 -0
  195. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/ray_utils/test_concurrency.py +0 -0
  196. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/ray_utils/test_dataset.py +0 -0
  197. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/test_cloudpickle.py +0 -0
  198. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/test_daft.py +0 -0
  199. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/test_metrics.py +0 -0
  200. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/test_placement.py +0 -0
  201. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/test_pyarrow.py +0 -0
  202. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/test_record_batch_tables.py +0 -0
  203. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/tests/utils/test_resources.py +0 -0
  204. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/types/__init__.py +0 -0
  205. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/types/media.py +0 -0
  206. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/types/partial_download.py +0 -0
  207. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/types/tables.py +0 -0
  208. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/__init__.py +0 -0
  209. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/arguments.py +0 -0
  210. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/cloudpickle.py +0 -0
  211. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/common.py +0 -0
  212. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/daft.py +0 -0
  213. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/metrics.py +0 -0
  214. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/numpy.py +0 -0
  215. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/pandas.py +0 -0
  216. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/performance.py +0 -0
  217. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/placement.py +0 -0
  218. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/pyarrow.py +0 -0
  219. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/ray_utils/__init__.py +0 -0
  220. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/ray_utils/collections.py +0 -0
  221. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/ray_utils/concurrency.py +0 -0
  222. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/ray_utils/dataset.py +0 -0
  223. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/ray_utils/performance.py +0 -0
  224. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/ray_utils/runtime.py +0 -0
  225. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/resources.py +0 -0
  226. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/s3fs.py +0 -0
  227. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat/utils/schema.py +0 -0
  228. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat.egg-info/SOURCES.txt +0 -0
  229. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat.egg-info/dependency_links.txt +0 -0
  230. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat.egg-info/requires.txt +0 -0
  231. {deltacat-1.1.15 → deltacat-1.1.16}/deltacat.egg-info/top_level.txt +0 -0
  232. {deltacat-1.1.15 → deltacat-1.1.16}/setup.cfg +0 -0
  233. {deltacat-1.1.15 → deltacat-1.1.16}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deltacat
3
- Version: 1.1.15
3
+ Version: 1.1.16
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.15"
47
+ __version__ = "1.1.16"
48
48
 
49
49
 
50
50
  __all__ = [
@@ -43,7 +43,6 @@ from deltacat.compute.compactor_v2.private.compaction_utils import (
43
43
  _stage_new_partition,
44
44
  _run_hash_and_merge,
45
45
  _process_merge_results,
46
- _upload_compaction_audit,
47
46
  _write_new_round_completion_file,
48
47
  _commit_compaction_result,
49
48
  )
@@ -201,11 +200,6 @@ def _execute_compaction(
201
200
 
202
201
  compaction_audit.save_round_completion_stats(mat_results)
203
202
 
204
- _upload_compaction_audit(
205
- params,
206
- compaction_audit,
207
- round_completion_info,
208
- )
209
203
  compaction_result: ExecutionCompactionResult = _write_new_round_completion_file(
210
204
  params,
211
205
  compaction_audit,
@@ -215,5 +209,6 @@ def _execute_compaction(
215
209
  rcf_source_partition_locator,
216
210
  new_compacted_delta_locator,
217
211
  pyarrow_write_result,
212
+ round_completion_info,
218
213
  )
219
214
  return compaction_result
@@ -365,6 +365,7 @@ def _run_hash_and_merge(
365
365
  if mutable_compaction_audit.telemetry_time_in_seconds
366
366
  else 0.0
367
367
  )
368
+
368
369
  mutable_compaction_audit.set_telemetry_time_in_seconds(
369
370
  telemetry_this_round + previous_telemetry
370
371
  )
@@ -598,10 +599,10 @@ def _process_merge_results(
598
599
  return merged_delta, mat_results, hb_id_to_entry_indices_range
599
600
 
600
601
 
601
- def _upload_compaction_audit(
602
+ def _update_and_upload_compaction_audit(
602
603
  params: CompactPartitionParams,
603
604
  mutable_compaction_audit: CompactionSessionAuditInfo,
604
- round_completion_info: RoundCompletionInfo,
605
+ round_completion_info: Optional[RoundCompletionInfo] = None,
605
606
  ) -> None:
606
607
 
607
608
  # After all incremental delta related calculations, we update
@@ -637,6 +638,7 @@ def _write_new_round_completion_file(
637
638
  rcf_source_partition_locator: rcf.PartitionLocator,
638
639
  new_compacted_delta_locator: DeltaLocator,
639
640
  pyarrow_write_result: PyArrowWriteResult,
641
+ prev_round_completion_info: Optional[RoundCompletionInfo] = None,
640
642
  ) -> ExecutionCompactionResult:
641
643
  input_inflation = None
642
644
  input_average_record_size_bytes = None
@@ -664,6 +666,12 @@ def _write_new_round_completion_file(
664
666
  f" and average record size={input_average_record_size_bytes}"
665
667
  )
666
668
 
669
+ _update_and_upload_compaction_audit(
670
+ params,
671
+ mutable_compaction_audit,
672
+ prev_round_completion_info,
673
+ )
674
+
667
675
  new_round_completion_info = RoundCompletionInfo.of(
668
676
  high_watermark=params.last_stream_position_to_compact,
669
677
  compacted_delta_locator=new_compacted_delta_locator,
@@ -87,6 +87,7 @@ class TestCompactionSession:
87
87
  INCREMENTAL_FILE_PATH = (
88
88
  "deltacat/tests/compute/compactor_v2/data/incremental_source_date_pk.csv"
89
89
  )
90
+ ERROR_RATE = 0.05
90
91
 
91
92
  def test_compact_partition_when_no_input_deltas_to_compact(
92
93
  self, local_deltacat_storage_kwargs
@@ -253,3 +254,148 @@ class TestCompactionSession:
253
254
  # as it should be running incremental
254
255
  assert compaction_audit.uniform_deltas_created == 1
255
256
  assert compaction_audit.input_records == 6
257
+
258
+ def test_compact_partition_when_incremental_then_rcf_stats_accurate(
259
+ self, s3_resource, local_deltacat_storage_kwargs
260
+ ):
261
+ """
262
+ A test case which asserts the RCF stats are correctly generated for
263
+ a rebase and incremental use-case.
264
+ """
265
+
266
+ # setup
267
+ staged_source = stage_partition_from_file_paths(
268
+ self.NAMESPACE, ["source"], **local_deltacat_storage_kwargs
269
+ )
270
+
271
+ source_delta = commit_delta_to_staged_partition(
272
+ staged_source, [self.BACKFILL_FILE_PATH], **local_deltacat_storage_kwargs
273
+ )
274
+
275
+ staged_dest = stage_partition_from_file_paths(
276
+ self.NAMESPACE, ["destination"], **local_deltacat_storage_kwargs
277
+ )
278
+ dest_partition = ds.commit_partition(
279
+ staged_dest, **local_deltacat_storage_kwargs
280
+ )
281
+
282
+ # action
283
+ rcf_url = compact_partition(
284
+ CompactPartitionParams.of(
285
+ {
286
+ "compaction_artifact_s3_bucket": TEST_S3_RCF_BUCKET_NAME,
287
+ "compacted_file_content_type": ContentType.PARQUET,
288
+ "dd_max_parallelism_ratio": 1.0,
289
+ "deltacat_storage": ds,
290
+ "deltacat_storage_kwargs": local_deltacat_storage_kwargs,
291
+ "destination_partition_locator": dest_partition.locator,
292
+ "drop_duplicates": True,
293
+ "hash_bucket_count": 2,
294
+ "last_stream_position_to_compact": source_delta.stream_position,
295
+ "list_deltas_kwargs": {
296
+ **local_deltacat_storage_kwargs,
297
+ **{"equivalent_table_types": []},
298
+ },
299
+ "primary_keys": ["pk"],
300
+ "rebase_source_partition_locator": source_delta.partition_locator,
301
+ "rebase_source_partition_high_watermark": source_delta.stream_position,
302
+ "records_per_compacted_file": 4000,
303
+ "s3_client_kwargs": {},
304
+ "source_partition_locator": source_delta.partition_locator,
305
+ }
306
+ )
307
+ )
308
+
309
+ backfill_rcf = get_rcf(s3_resource, rcf_url)
310
+ _, compaction_audit_key = backfill_rcf.compaction_audit_url.strip(
311
+ "s3://"
312
+ ).split("/", 1)
313
+ compaction_audit = CompactionSessionAuditInfo(
314
+ **read_s3_contents(
315
+ s3_resource, TEST_S3_RCF_BUCKET_NAME, compaction_audit_key
316
+ )
317
+ )
318
+
319
+ assert abs(backfill_rcf.input_inflation - 0.05235042735042735) <= 1e-5
320
+ assert abs(backfill_rcf.input_average_record_size_bytes - 12.25) <= 1e-5
321
+
322
+ assert compaction_audit.input_records == 4
323
+ assert compaction_audit.records_deduped == 0
324
+ assert compaction_audit.records_deleted == 0
325
+ assert compaction_audit.untouched_file_count == 0
326
+ assert compaction_audit.untouched_record_count == 0
327
+ assert compaction_audit.untouched_size_bytes == 0
328
+ assert compaction_audit.untouched_file_ratio == 0
329
+ assert compaction_audit.uniform_deltas_created == 1
330
+ assert compaction_audit.hash_bucket_count == 2
331
+ assert compaction_audit.input_file_count == 1
332
+ assert compaction_audit.output_file_count == 2
333
+ assert abs(compaction_audit.output_size_bytes - 1832) / 1832 <= self.ERROR_RATE
334
+ assert abs(compaction_audit.input_size_bytes - 936) / 936 <= self.ERROR_RATE
335
+
336
+ # Now run an incremental compaction and verify if the previous RCF was read properly.
337
+ new_source_delta = commit_delta_to_partition(
338
+ source_delta.partition_locator,
339
+ [self.INCREMENTAL_FILE_PATH],
340
+ **local_deltacat_storage_kwargs,
341
+ )
342
+
343
+ new_destination_partition = ds.get_partition(
344
+ dest_partition.stream_locator, [], **local_deltacat_storage_kwargs
345
+ )
346
+
347
+ new_rcf_url = compact_partition(
348
+ CompactPartitionParams.of(
349
+ {
350
+ "compaction_artifact_s3_bucket": TEST_S3_RCF_BUCKET_NAME,
351
+ "compacted_file_content_type": ContentType.PARQUET,
352
+ "dd_max_parallelism_ratio": 1.0,
353
+ "deltacat_storage": ds,
354
+ "deltacat_storage_kwargs": local_deltacat_storage_kwargs,
355
+ "destination_partition_locator": new_destination_partition.locator,
356
+ "drop_duplicates": True,
357
+ "hash_bucket_count": 2,
358
+ "last_stream_position_to_compact": new_source_delta.stream_position,
359
+ "list_deltas_kwargs": {
360
+ **local_deltacat_storage_kwargs,
361
+ **{"equivalent_table_types": []},
362
+ },
363
+ "primary_keys": ["pk"],
364
+ "rebase_source_partition_locator": None,
365
+ "rebase_source_partition_high_watermark": None,
366
+ "records_per_compacted_file": 4000,
367
+ "s3_client_kwargs": {},
368
+ "source_partition_locator": new_source_delta.partition_locator,
369
+ }
370
+ )
371
+ )
372
+
373
+ new_rcf = get_rcf(s3_resource, new_rcf_url)
374
+ _, compaction_audit_key = new_rcf.compaction_audit_url.strip("s3://").split(
375
+ "/", 1
376
+ )
377
+ compaction_audit = CompactionSessionAuditInfo(
378
+ **read_s3_contents(
379
+ s3_resource, TEST_S3_RCF_BUCKET_NAME, compaction_audit_key
380
+ )
381
+ )
382
+
383
+ # as it should be running incremental
384
+ assert abs(new_rcf.input_inflation - 0.027292576419213975) <= 1e-5
385
+ assert abs(new_rcf.input_average_record_size_bytes - 12.5) <= 1e-5
386
+
387
+ assert compaction_audit.input_records == 6
388
+ assert compaction_audit.records_deduped == 1
389
+ assert compaction_audit.records_deleted == 0
390
+ assert compaction_audit.untouched_file_count == 1
391
+ assert compaction_audit.untouched_record_count == 2
392
+ assert (
393
+ abs(compaction_audit.untouched_size_bytes - 916) / 916 <= self.ERROR_RATE
394
+ ) # 5% error
395
+ assert abs(compaction_audit.untouched_file_ratio - 50) <= 1e-5
396
+ assert compaction_audit.uniform_deltas_created == 1
397
+ assert compaction_audit.hash_bucket_count == 2
398
+ assert compaction_audit.input_file_count == 3
399
+ assert compaction_audit.output_file_count == 2
400
+ assert abs(compaction_audit.output_size_bytes - 1843) / 1843 <= self.ERROR_RATE
401
+ assert abs(compaction_audit.input_size_bytes - 2748) / 2748 <= self.ERROR_RATE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deltacat
3
- Version: 1.1.15
3
+ Version: 1.1.16
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
File without changes
File without changes
File without changes
File without changes
File without changes