deltacat 1.1.31__tar.gz → 1.1.32__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 (224) hide show
  1. {deltacat-1.1.31/deltacat.egg-info → deltacat-1.1.32}/PKG-INFO +1 -1
  2. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/__init__.py +1 -1
  3. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/test_pyarrow.py +106 -4
  4. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/pyarrow.py +11 -5
  5. {deltacat-1.1.31 → deltacat-1.1.32/deltacat.egg-info}/PKG-INFO +1 -1
  6. {deltacat-1.1.31 → deltacat-1.1.32}/LICENSE +0 -0
  7. {deltacat-1.1.31 → deltacat-1.1.32}/MANIFEST.in +0 -0
  8. {deltacat-1.1.31 → deltacat-1.1.32}/README.md +0 -0
  9. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/aws/__init__.py +0 -0
  10. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/aws/clients.py +0 -0
  11. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/aws/constants.py +0 -0
  12. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/aws/redshift/__init__.py +0 -0
  13. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/aws/redshift/model/__init__.py +0 -0
  14. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/aws/redshift/model/manifest.py +0 -0
  15. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/aws/s3u.py +0 -0
  16. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/benchmarking/__init__.py +0 -0
  17. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/benchmarking/benchmark_parquet_reads.py +0 -0
  18. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/benchmarking/conftest.py +0 -0
  19. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/catalog/__init__.py +0 -0
  20. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/catalog/default_catalog_impl/__init__.py +0 -0
  21. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/catalog/delegate.py +0 -0
  22. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/catalog/interface.py +0 -0
  23. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/catalog/model/__init__.py +0 -0
  24. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/catalog/model/catalog.py +0 -0
  25. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/catalog/model/table_definition.py +0 -0
  26. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/__init__.py +0 -0
  27. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/__init__.py +0 -0
  28. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/compaction_session.py +0 -0
  29. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/__init__.py +0 -0
  30. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/compact_partition_params.py +0 -0
  31. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/compaction_session_audit_info.py +0 -0
  32. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/compactor_version.py +0 -0
  33. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/dedupe_result.py +0 -0
  34. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/delta_annotated.py +0 -0
  35. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/delta_file_envelope.py +0 -0
  36. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/delta_file_locator.py +0 -0
  37. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/hash_bucket_result.py +0 -0
  38. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/materialize_result.py +0 -0
  39. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/primary_key_index.py +0 -0
  40. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/pyarrow_write_result.py +0 -0
  41. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/repartition_result.py +0 -0
  42. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/round_completion_info.py +0 -0
  43. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/model/table_object_store.py +0 -0
  44. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/repartition_session.py +0 -0
  45. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/steps/__init__.py +0 -0
  46. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/steps/dedupe.py +0 -0
  47. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/steps/hash_bucket.py +0 -0
  48. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/steps/materialize.py +0 -0
  49. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/steps/repartition.py +0 -0
  50. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/utils/__init__.py +0 -0
  51. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/utils/io.py +0 -0
  52. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/utils/primary_key_index.py +0 -0
  53. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/utils/round_completion_file.py +0 -0
  54. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/utils/sort_key.py +0 -0
  55. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor/utils/system_columns.py +0 -0
  56. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/__init__.py +0 -0
  57. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/compaction_session.py +0 -0
  58. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/constants.py +0 -0
  59. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/deletes/__init__.py +0 -0
  60. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/deletes/delete_file_envelope.py +0 -0
  61. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/deletes/delete_strategy.py +0 -0
  62. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/deletes/delete_strategy_equality_delete.py +0 -0
  63. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/deletes/model.py +0 -0
  64. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/deletes/utils.py +0 -0
  65. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/model/__init__.py +0 -0
  66. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/model/evaluate_compaction_result.py +0 -0
  67. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/model/hash_bucket_input.py +0 -0
  68. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/model/hash_bucket_result.py +0 -0
  69. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/model/merge_file_group.py +0 -0
  70. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/model/merge_input.py +0 -0
  71. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/model/merge_result.py +0 -0
  72. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/private/__init__.py +0 -0
  73. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/private/compaction_utils.py +0 -0
  74. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/steps/__init__.py +0 -0
  75. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/steps/hash_bucket.py +0 -0
  76. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/steps/merge.py +0 -0
  77. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/utils/__init__.py +0 -0
  78. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/utils/content_type_params.py +0 -0
  79. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/utils/dedupe.py +0 -0
  80. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/utils/delta.py +0 -0
  81. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/utils/io.py +0 -0
  82. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/utils/merge.py +0 -0
  83. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/utils/primary_key_index.py +0 -0
  84. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/compactor_v2/utils/task_options.py +0 -0
  85. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/merge_on_read/__init__.py +0 -0
  86. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/merge_on_read/daft.py +0 -0
  87. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/merge_on_read/model/__init__.py +0 -0
  88. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/merge_on_read/model/merge_on_read_params.py +0 -0
  89. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/merge_on_read/utils/__init__.py +0 -0
  90. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/merge_on_read/utils/delta.py +0 -0
  91. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/resource_estimation/__init__.py +0 -0
  92. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/resource_estimation/delta.py +0 -0
  93. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/resource_estimation/manifest.py +0 -0
  94. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/resource_estimation/model.py +0 -0
  95. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/resource_estimation/parquet.py +0 -0
  96. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/stats/__init__.py +0 -0
  97. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/stats/models/__init__.py +0 -0
  98. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/stats/models/delta_column_stats.py +0 -0
  99. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/stats/models/delta_stats.py +0 -0
  100. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/stats/models/delta_stats_cache_result.py +0 -0
  101. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/stats/models/manifest_entry_stats.py +0 -0
  102. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/stats/models/stats_result.py +0 -0
  103. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/compute/stats/types.py +0 -0
  104. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/constants.py +0 -0
  105. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/exceptions.py +0 -0
  106. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/__init__.py +0 -0
  107. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/aws/__init__.py +0 -0
  108. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/aws/redshift/__init__.py +0 -0
  109. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/dataset.py +0 -0
  110. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/file_object_store.py +0 -0
  111. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/memcached_object_store.py +0 -0
  112. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/object_store.py +0 -0
  113. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/ray_plasma_object_store.py +0 -0
  114. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/read_api.py +0 -0
  115. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/redis_object_store.py +0 -0
  116. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/io/s3_object_store.py +0 -0
  117. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/logs.py +0 -0
  118. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/__init__.py +0 -0
  119. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/interface.py +0 -0
  120. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/__init__.py +0 -0
  121. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/delete_parameters.py +0 -0
  122. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/delta.py +0 -0
  123. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/list_result.py +0 -0
  124. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/locator.py +0 -0
  125. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/namespace.py +0 -0
  126. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/partition.py +0 -0
  127. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/partition_spec.py +0 -0
  128. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/sort_key.py +0 -0
  129. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/stream.py +0 -0
  130. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/table.py +0 -0
  131. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/table_version.py +0 -0
  132. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/transform.py +0 -0
  133. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/storage/model/types.py +0 -0
  134. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/__init__.py +0 -0
  135. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/aws/__init__.py +0 -0
  136. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/aws/test_clients.py +0 -0
  137. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/aws/test_s3u.py +0 -0
  138. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/catalog/__init__.py +0 -0
  139. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/catalog/test_default_catalog_impl.py +0 -0
  140. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/__init__.py +0 -0
  141. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compact_partition_multiple_rounds_test_cases.py +0 -0
  142. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compact_partition_rebase_test_cases.py +0 -0
  143. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compact_partition_rebase_then_incremental_test_cases.py +0 -0
  144. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compact_partition_test_cases.py +0 -0
  145. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor/__init__.py +0 -0
  146. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor/steps/__init__.py +0 -0
  147. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor/steps/test_repartition.py +0 -0
  148. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor/utils/__init__.py +0 -0
  149. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor/utils/test_io.py +0 -0
  150. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor/utils/test_round_completion_file.py +0 -0
  151. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor_v2/__init__.py +0 -0
  152. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor_v2/test_compaction_session.py +0 -0
  153. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor_v2/test_hashlib.py +0 -0
  154. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor_v2/utils/__init__.py +0 -0
  155. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor_v2/utils/test_primary_key_index.py +0 -0
  156. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/compactor_v2/utils/test_task_options.py +0 -0
  157. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/resource_estimation/__init__.py +0 -0
  158. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/resource_estimation/data/__init__.py +0 -0
  159. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/resource_estimation/test_delta.py +0 -0
  160. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/resource_estimation/test_manifest.py +0 -0
  161. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/test_compact_partition_incremental.py +0 -0
  162. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/test_compact_partition_multiple_rounds.py +0 -0
  163. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/test_compact_partition_params.py +0 -0
  164. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/test_compact_partition_rebase.py +0 -0
  165. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/test_compact_partition_rebase_then_incremental.py +0 -0
  166. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/test_util_common.py +0 -0
  167. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/test_util_constant.py +0 -0
  168. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/compute/test_util_create_table_deltas_repo.py +0 -0
  169. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/io/__init__.py +0 -0
  170. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/io/test_cloudpickle_bug_fix.py +0 -0
  171. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/io/test_file_object_store.py +0 -0
  172. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/io/test_memcached_object_store.py +0 -0
  173. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/io/test_ray_plasma_object_store.py +0 -0
  174. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/io/test_redis_object_store.py +0 -0
  175. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/io/test_s3_object_store.py +0 -0
  176. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/local_deltacat_storage/__init__.py +0 -0
  177. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/local_deltacat_storage/exceptions.py +0 -0
  178. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/test_exceptions.py +0 -0
  179. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/test_logs.py +0 -0
  180. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/test_utils/__init__.py +0 -0
  181. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/test_utils/constants.py +0 -0
  182. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/test_utils/pyarrow.py +0 -0
  183. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/test_utils/storage.py +0 -0
  184. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/test_utils/utils.py +0 -0
  185. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/__init__.py +0 -0
  186. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/data/__init__.py +0 -0
  187. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/ray_utils/__init__.py +0 -0
  188. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/ray_utils/test_concurrency.py +0 -0
  189. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/ray_utils/test_dataset.py +0 -0
  190. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/test_cloudpickle.py +0 -0
  191. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/test_daft.py +0 -0
  192. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/test_metrics.py +0 -0
  193. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/test_placement.py +0 -0
  194. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/test_record_batch_tables.py +0 -0
  195. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/tests/utils/test_resources.py +0 -0
  196. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/types/__init__.py +0 -0
  197. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/types/media.py +0 -0
  198. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/types/partial_download.py +0 -0
  199. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/types/tables.py +0 -0
  200. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/__init__.py +0 -0
  201. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/arguments.py +0 -0
  202. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/cloudpickle.py +0 -0
  203. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/common.py +0 -0
  204. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/daft.py +0 -0
  205. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/metrics.py +0 -0
  206. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/numpy.py +0 -0
  207. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/pandas.py +0 -0
  208. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/performance.py +0 -0
  209. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/placement.py +0 -0
  210. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/ray_utils/__init__.py +0 -0
  211. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/ray_utils/collections.py +0 -0
  212. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/ray_utils/concurrency.py +0 -0
  213. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/ray_utils/dataset.py +0 -0
  214. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/ray_utils/performance.py +0 -0
  215. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/ray_utils/runtime.py +0 -0
  216. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/resources.py +0 -0
  217. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/s3fs.py +0 -0
  218. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat/utils/schema.py +0 -0
  219. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat.egg-info/SOURCES.txt +0 -0
  220. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat.egg-info/dependency_links.txt +0 -0
  221. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat.egg-info/requires.txt +0 -0
  222. {deltacat-1.1.31 → deltacat-1.1.32}/deltacat.egg-info/top_level.txt +0 -0
  223. {deltacat-1.1.31 → deltacat-1.1.32}/setup.cfg +0 -0
  224. {deltacat-1.1.31 → deltacat-1.1.32}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deltacat
3
- Version: 1.1.31
3
+ Version: 1.1.32
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.31"
47
+ __version__ = "1.1.32"
48
48
 
49
49
 
50
50
  __all__ = [
@@ -2,9 +2,12 @@ from unittest import TestCase
2
2
  from deltacat.utils.pyarrow import (
3
3
  s3_partial_parquet_file_to_table,
4
4
  pyarrow_read_csv,
5
+ ContentTypeValidationError,
5
6
  content_type_to_reader_kwargs,
6
7
  _add_column_kwargs,
8
+ logger,
7
9
  s3_file_to_table,
10
+ s3_file_to_parquet,
8
11
  ReadKwargsProviderPyArrowSchemaOverride,
9
12
  RAISE_ON_EMPTY_CSV_KWARG,
10
13
  RAISE_ON_DECIMAL_OVERFLOW,
@@ -435,7 +438,7 @@ class TestReadCSV(TestCase):
435
438
  pa.lib.ArrowInvalid,
436
439
  lambda: pyarrow_read_csv(
437
440
  OVERFLOWING_DECIMAL_PRECISION_UTSV_PATH,
438
- **{**kwargs, RAISE_ON_DECIMAL_OVERFLOW: True}
441
+ **{**kwargs, RAISE_ON_DECIMAL_OVERFLOW: True},
439
442
  ),
440
443
  )
441
444
 
@@ -479,7 +482,7 @@ class TestReadCSV(TestCase):
479
482
  pa.lib.ArrowInvalid,
480
483
  lambda: pyarrow_read_csv(
481
484
  OVERFLOWING_DECIMAL_SCALE_UTSV_PATH,
482
- **{**kwargs, RAISE_ON_DECIMAL_OVERFLOW: True}
485
+ **{**kwargs, RAISE_ON_DECIMAL_OVERFLOW: True},
483
486
  ),
484
487
  )
485
488
 
@@ -590,7 +593,7 @@ class TestReadCSV(TestCase):
590
593
  pa.lib.ArrowNotImplementedError,
591
594
  lambda: pyarrow_read_csv(
592
595
  OVERFLOWING_DECIMAL_SCALE_UTSV_PATH,
593
- **{**kwargs, RAISE_ON_DECIMAL_OVERFLOW: True}
596
+ **{**kwargs, RAISE_ON_DECIMAL_OVERFLOW: True},
594
597
  ),
595
598
  )
596
599
 
@@ -818,8 +821,11 @@ class TestS3FileToTable(TestCase):
818
821
  schema = pa.schema(
819
822
  [("is_active", pa.string()), ("ship_datetime_utc", pa.timestamp("us"))]
820
823
  )
821
-
822
824
  # OVERRIDE_CONTENT_ENCODING_FOR_PARQUET_KWARG has no effect on uTSV files
825
+ pa_kwargs_provider = lambda content_type, kwargs: {
826
+ "reader_type": "pyarrow",
827
+ **kwargs,
828
+ }
823
829
  pa_kwargs_provider = lambda content_type, kwargs: {
824
830
  "reader_type": "pyarrow",
825
831
  OVERRIDE_CONTENT_ENCODING_FOR_PARQUET_KWARG: ContentEncoding.IDENTITY.value,
@@ -864,3 +870,99 @@ class TestS3FileToTable(TestCase):
864
870
  schema = result.schema
865
871
  schema_index = schema.get_field_index("n_legs")
866
872
  self.assertEqual(schema.field(schema_index).type, "int64")
873
+
874
+
875
+ class TestS3FileToParquet(TestCase):
876
+ def test_s3_file_to_parquet_sanity(self):
877
+ test_s3_url = PARQUET_FILE_PATH
878
+ test_content_type = ContentType.PARQUET.value
879
+ test_content_encoding = ContentEncoding.IDENTITY.value
880
+ pa_kwargs_provider = lambda content_type, kwargs: {
881
+ "reader_type": "pyarrow",
882
+ **kwargs,
883
+ }
884
+ with self.assertLogs(logger=logger.name, level="DEBUG") as cm:
885
+ result_parquet_file: ParquetFile = s3_file_to_parquet(
886
+ test_s3_url,
887
+ test_content_type,
888
+ test_content_encoding,
889
+ ["n_legs", "animal"],
890
+ ["n_legs"],
891
+ pa_read_func_kwargs_provider=pa_kwargs_provider,
892
+ )
893
+ log_message_log_args = cm.records[0].getMessage()
894
+ log_message_presanitize_kwargs = cm.records[1].getMessage()
895
+ self.assertIn(
896
+ f"Reading {test_s3_url} to PyArrow ParquetFile. Content type: {test_content_type}. Encoding: {test_content_encoding}",
897
+ log_message_log_args,
898
+ )
899
+ self.assertIn("{'reader_type': 'pyarrow'}", log_message_presanitize_kwargs)
900
+ for index, field in enumerate(result_parquet_file.schema_arrow):
901
+ self.assertEqual(
902
+ field.name, result_parquet_file.schema_arrow.field(index).name
903
+ )
904
+ self.assertEqual(result_parquet_file.schema_arrow.field(0).type, "int64")
905
+
906
+ def test_s3_file_to_parquet_when_parquet_gzip_encoding_and_overridden_returns_success(
907
+ self,
908
+ ):
909
+ test_s3_url = PARQUET_FILE_PATH
910
+ test_content_type = ContentType.PARQUET.value
911
+ test_content_encoding = ContentEncoding.GZIP.value
912
+ pa_kwargs_provider = lambda content_type, kwargs: {
913
+ "reader_type": "pyarrow",
914
+ OVERRIDE_CONTENT_ENCODING_FOR_PARQUET_KWARG: ContentEncoding.IDENTITY.value,
915
+ **kwargs,
916
+ }
917
+ with self.assertLogs(logger=logger.name, level="DEBUG") as cm:
918
+ result_parquet_file: ParquetFile = s3_file_to_parquet(
919
+ test_s3_url,
920
+ test_content_type,
921
+ test_content_encoding,
922
+ ["n_legs", "animal"],
923
+ ["n_legs"],
924
+ pa_read_func_kwargs_provider=pa_kwargs_provider,
925
+ )
926
+ log_message_log_args = cm.records[0].getMessage()
927
+ log_message_log_new_content_encoding = cm.records[1].getMessage()
928
+ log_message_presanitize_kwargs = cm.records[2].getMessage()
929
+ self.assertIn(
930
+ f"Reading {test_s3_url} to PyArrow ParquetFile. Content type: {test_content_type}. Encoding: {test_content_encoding}",
931
+ log_message_log_args,
932
+ )
933
+ self.assertIn(
934
+ f"Overriding {test_s3_url} content encoding from {ContentEncoding.GZIP.value} to {ContentEncoding.IDENTITY.value}",
935
+ log_message_log_new_content_encoding,
936
+ )
937
+ self.assertIn("{'reader_type': 'pyarrow'}", log_message_presanitize_kwargs)
938
+ for index, field in enumerate(result_parquet_file.schema_arrow):
939
+ self.assertEqual(
940
+ field.name, result_parquet_file.schema_arrow.field(index).name
941
+ )
942
+ self.assertEqual(result_parquet_file.schema_arrow.field(0).type, "int64")
943
+
944
+ def test_s3_file_to_parquet_when_parquet_gzip_encoding_not_overridden_throws_error(
945
+ self,
946
+ ):
947
+ test_s3_url = PARQUET_FILE_PATH
948
+ test_content_type = ContentType.PARQUET.value
949
+ test_content_encoding = ContentEncoding.GZIP.value
950
+ pa_kwargs_provider = lambda content_type, kwargs: {
951
+ "reader_type": "pyarrow",
952
+ **kwargs,
953
+ }
954
+ with self.assertRaises(ContentTypeValidationError):
955
+ with self.assertLogs(logger=logger.name, level="DEBUG") as cm:
956
+ s3_file_to_parquet(
957
+ test_s3_url,
958
+ test_content_type,
959
+ test_content_encoding,
960
+ ["n_legs", "animal"],
961
+ ["n_legs"],
962
+ pa_read_func_kwargs_provider=pa_kwargs_provider,
963
+ )
964
+ log_message_log_args = cm.records[0].getMessage()
965
+ self.assertIn(
966
+ f"Reading {test_s3_url} to PyArrow ParquetFile. Content type: {test_content_type}. Encoding: {test_content_encoding}",
967
+ log_message_log_args,
968
+ )
@@ -617,7 +617,18 @@ def s3_file_to_parquet(
617
617
  f"Reading {s3_url} to PyArrow ParquetFile. "
618
618
  f"Content type: {content_type}. Encoding: {content_encoding}"
619
619
  )
620
+ kwargs = {}
621
+ if pa_read_func_kwargs_provider:
622
+ kwargs = pa_read_func_kwargs_provider(content_type, kwargs)
620
623
 
624
+ if OVERRIDE_CONTENT_ENCODING_FOR_PARQUET_KWARG in kwargs:
625
+ new_content_encoding = kwargs.pop(OVERRIDE_CONTENT_ENCODING_FOR_PARQUET_KWARG)
626
+ if content_type == ContentType.PARQUET.value:
627
+ logger.debug(
628
+ f"Overriding {s3_url} content encoding from {content_encoding} "
629
+ f"to {new_content_encoding}"
630
+ )
631
+ content_encoding = new_content_encoding
621
632
  if (
622
633
  content_type != ContentType.PARQUET.value
623
634
  or content_encoding != ContentEncoding.IDENTITY
@@ -630,15 +641,10 @@ def s3_file_to_parquet(
630
641
  if s3_client_kwargs is None:
631
642
  s3_client_kwargs = {}
632
643
 
633
- kwargs = {}
634
-
635
644
  if s3_url.startswith("s3://"):
636
645
  s3_file_system = create_s3_file_system(s3_client_kwargs)
637
646
  kwargs["filesystem"] = s3_file_system
638
647
 
639
- if pa_read_func_kwargs_provider:
640
- kwargs = pa_read_func_kwargs_provider(content_type, kwargs)
641
-
642
648
  logger.debug(f"Pre-sanitize kwargs for {s3_url}: {kwargs}")
643
649
 
644
650
  kwargs = sanitize_kwargs_to_callable(ParquetFile.__init__, kwargs)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deltacat
3
- Version: 1.1.31
3
+ Version: 1.1.32
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
File without changes
File without changes