deltacat 1.1.25__py3-none-any.whl → 1.1.27__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
deltacat/__init__.py CHANGED
@@ -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.25"
47
+ __version__ = "1.1.27"
48
48
 
49
49
 
50
50
  __all__ = [
@@ -227,7 +227,6 @@ def _run_hash_and_merge(
227
227
  previous_compacted_delta_manifest: Optional[Manifest],
228
228
  compacted_partition: Partition,
229
229
  ) -> List[MergeResult]:
230
- created_obj_ids = set()
231
230
  telemetry_time_hb = 0
232
231
  total_input_records_count = np.int64(0)
233
232
  total_hb_record_count = np.int64(0)
@@ -289,7 +288,6 @@ def _run_hash_and_merge(
289
288
  hb_result.hash_bucket_group_to_obj_id_tuple
290
289
  ):
291
290
  if object_id_size_tuple:
292
- created_obj_ids.add(object_id_size_tuple[0])
293
291
  all_hash_group_idx_to_obj_id[hash_group_index].append(
294
292
  object_id_size_tuple[0],
295
293
  )
@@ -369,10 +367,9 @@ def _run_hash_and_merge(
369
367
  )
370
368
  if params.num_rounds > 1:
371
369
  logger.info(
372
- f"Detected number of rounds to be {params.num_rounds}, "
373
- f"preparing to delete {len(created_obj_ids)} objects from object store..."
370
+ f"Detected number of rounds to be {params.num_rounds}, preparing to clear object store..."
374
371
  )
375
- params.object_store.delete_many(list(created_obj_ids))
372
+ params.object_store.clear()
376
373
  else:
377
374
  logger.info(
378
375
  f"Detected number of rounds to be {params.num_rounds}, not cleaning up object store..."
@@ -587,8 +584,11 @@ def _process_merge_results(
587
584
  f"Duplicate record count ({duplicate_hash_bucket_mat_results}) is as large "
588
585
  f"as or greater than params.num_rounds, which is {params.num_rounds}"
589
586
  )
587
+ # ensure start index is the first file index if task index is same
590
588
  hb_id_to_entry_indices_range[str(mat_result.task_index)] = (
591
- file_index,
589
+ hb_id_to_entry_indices_range.get(str(mat_result.task_index), [file_index])[
590
+ 0
591
+ ],
592
592
  file_index + mat_result.pyarrow_write_result.files,
593
593
  )
594
594
 
@@ -188,7 +188,7 @@ def _estimate_resources_required_to_process_delta_using_file_sampling(
188
188
  sampled_on_disk_size += delta.manifest.entries[entry_index].meta.content_length
189
189
  sampled_num_rows += len(tbl)
190
190
 
191
- if not sampled_on_disk_size:
191
+ if not sampled_on_disk_size or not sampled_in_memory_size:
192
192
  return EstimatedResources.of(
193
193
  memory_bytes=0,
194
194
  statistics=Statistics.of(
@@ -205,7 +205,8 @@ class MemcachedObjectStore(IObjectStore):
205
205
  except BaseException:
206
206
  # if an exception is raised then all, some, or none of the keys may have been deleted
207
207
  logger.warning(
208
- f"Failed to fully delete refs: {current_refs}", exc_info=True
208
+ f"Failed to fully delete {len(current_refs)} refs for ip: {ip}",
209
+ exc_info=True,
209
210
  )
210
211
  all_deleted = False
211
212
 
@@ -224,6 +225,7 @@ class MemcachedObjectStore(IObjectStore):
224
225
  return all_deleted
225
226
 
226
227
  def clear(self) -> bool:
228
+ start = time.monotonic()
227
229
  flushed = all(
228
230
  [
229
231
  self._get_client_by_ip(ip).flush_all(noreply=False)
@@ -231,10 +233,13 @@ class MemcachedObjectStore(IObjectStore):
231
233
  ]
232
234
  )
233
235
  self.client_cache.clear()
236
+ end = time.monotonic()
234
237
 
235
238
  if flushed:
236
239
  logger.info("Successfully cleared cache contents.")
237
240
 
241
+ logger.info(f"The total time taken to clear the cache is: {end - start}")
242
+
238
243
  return flushed
239
244
 
240
245
  def close(self) -> None:
@@ -115,6 +115,21 @@ class RedisObjectStore(IObjectStore):
115
115
 
116
116
  return num_deleted == len(refs)
117
117
 
118
+ def clear(self) -> bool:
119
+ start = time.monotonic()
120
+ current_ip = self._get_current_ip()
121
+ client = self._get_client_by_ip(current_ip)
122
+ flushed = client.flushall()
123
+ self.client_cache.clear()
124
+ end = time.monotonic()
125
+
126
+ if flushed:
127
+ logger.info("Successfully cleared cache contents.")
128
+
129
+ logger.info(f"The total time taken to clear the cache is: {end - start}")
130
+
131
+ return flushed
132
+
118
133
  def _get_client_by_ip(self, ip_address: str):
119
134
  if ip_address in self.client_cache:
120
135
  return self.client_cache[ip_address]
@@ -437,6 +437,43 @@ class TestEstimateResourcesRequiredToProcessDelta:
437
437
  == parquet_delta_with_manifest.meta.content_length
438
438
  )
439
439
 
440
+ def test_parquet_delta_when_file_sampling_and_arrow_size_zero(
441
+ self,
442
+ local_deltacat_storage_kwargs,
443
+ parquet_delta_with_manifest: Delta,
444
+ monkeypatch,
445
+ ):
446
+ params = EstimateResourcesParams.of(
447
+ resource_estimation_method=ResourceEstimationMethod.FILE_SAMPLING,
448
+ max_files_to_sample=2,
449
+ )
450
+
451
+ def mock_func(*args, **kwargs):
452
+ class MockedValue:
453
+ nbytes = 0
454
+
455
+ def __len__(self):
456
+ return 0
457
+
458
+ return MockedValue()
459
+
460
+ monkeypatch.setattr(ds, "download_delta_manifest_entry", mock_func)
461
+
462
+ result = estimate_resources_required_to_process_delta(
463
+ delta=parquet_delta_with_manifest,
464
+ operation_type=OperationType.PYARROW_DOWNLOAD,
465
+ deltacat_storage=ds,
466
+ deltacat_storage_kwargs=local_deltacat_storage_kwargs,
467
+ estimate_resources_params=params,
468
+ )
469
+
470
+ assert parquet_delta_with_manifest.manifest is not None
471
+ assert result.memory_bytes == 0
472
+ assert (
473
+ result.statistics.on_disk_size_bytes
474
+ == parquet_delta_with_manifest.meta.content_length
475
+ )
476
+
440
477
  def test_delta_manifest_utsv_when_file_sampling(
441
478
  self, local_deltacat_storage_kwargs, utsv_delta_with_manifest: Delta
442
479
  ):
@@ -328,6 +328,16 @@ def test_compact_partition_incremental(
328
328
  **compaction_audit_obj
329
329
  )
330
330
 
331
+ # assert if RCF covers all files
332
+ if compactor_version != CompactorVersion.V1.value:
333
+ previous_end = None
334
+ for start, end in round_completion_info.hb_index_to_entry_range.values():
335
+ assert (previous_end is None and start == 0) or start == previous_end
336
+ previous_end = end
337
+ assert (
338
+ previous_end == round_completion_info.compacted_pyarrow_write_result.files
339
+ )
340
+
331
341
  tables = ds.download_delta(
332
342
  compacted_delta_locator, storage_type=StorageType.LOCAL, **ds_mock_kwargs
333
343
  )
@@ -290,7 +290,7 @@ def test_compact_partition_rebase_multiple_rounds_same_source_and_destination(
290
290
  execute_compaction_result_spy = mocker.spy(
291
291
  ExecutionCompactionResult, "__init__"
292
292
  )
293
- object_store_delete_many_spy = mocker.spy(FileObjectStore, "delete_many")
293
+ object_store_clear_spy = mocker.spy(FileObjectStore, "clear")
294
294
 
295
295
  # execute
296
296
  rcf_file_s3_uri = benchmark(compact_partition_func, compact_partition_params)
@@ -309,6 +309,16 @@ def test_compact_partition_rebase_multiple_rounds_same_source_and_destination(
309
309
  **compaction_audit_obj
310
310
  )
311
311
 
312
+ # assert if RCF covers all files
313
+ # multiple rounds feature is only supported in V2 compactor
314
+ previous_end = None
315
+ for start, end in round_completion_info.hb_index_to_entry_range.values():
316
+ assert (previous_end is None and start == 0) or start == previous_end
317
+ previous_end = end
318
+ assert (
319
+ previous_end == round_completion_info.compacted_pyarrow_write_result.files
320
+ )
321
+
312
322
  # Assert not in-place compacted
313
323
  assert (
314
324
  execute_compaction_result_spy.call_args.args[-1] is False
@@ -339,8 +349,5 @@ def test_compact_partition_rebase_multiple_rounds_same_source_and_destination(
339
349
  if assert_compaction_audit:
340
350
  if not assert_compaction_audit(compactor_version, compaction_audit):
341
351
  assert False, "Compaction audit assertion failed"
342
- assert os.listdir(test_dir) == []
343
- assert (
344
- object_store_delete_many_spy.call_count
345
- ), "Object store was never cleaned up!"
352
+ assert object_store_clear_spy.call_count, "Object store was never cleaned up!"
346
353
  return
@@ -299,6 +299,17 @@ def test_compact_partition_rebase_same_source_and_destination(
299
299
  round_completion_info.compaction_audit_url
300
300
  )
301
301
 
302
+ # assert if RCF covers all files
303
+ if compactor_version != CompactorVersion.V1.value:
304
+ previous_end = None
305
+ for start, end in round_completion_info.hb_index_to_entry_range.values():
306
+ assert (previous_end is None and start == 0) or start == previous_end
307
+ previous_end = end
308
+ assert (
309
+ previous_end
310
+ == round_completion_info.compacted_pyarrow_write_result.files
311
+ )
312
+
302
313
  compaction_audit_obj: Dict[str, Any] = read_s3_contents(
303
314
  s3_resource, audit_bucket, audit_key
304
315
  )
@@ -355,6 +355,16 @@ def test_compact_partition_rebase_then_incremental(
355
355
  compacted_delta_locator_incremental: DeltaLocator = (
356
356
  round_completion_info.compacted_delta_locator
357
357
  )
358
+ # assert if RCF covers all files
359
+ if compactor_version != CompactorVersion.V1.value:
360
+ previous_end = None
361
+ for start, end in round_completion_info.hb_index_to_entry_range.values():
362
+ assert (previous_end is None and start == 0) or start == previous_end
363
+ previous_end = end
364
+ assert (
365
+ previous_end == round_completion_info.compacted_pyarrow_write_result.files
366
+ )
367
+
358
368
  audit_bucket, audit_key = round_completion_info.compaction_audit_url.replace(
359
369
  "s3://", ""
360
370
  ).split("/", 1)
@@ -121,3 +121,15 @@ class TestRedisObjectStore(unittest.TestCase):
121
121
 
122
122
  self.assertTrue(delete_success)
123
123
  self.assertEqual(2, mock_client.Redis.return_value.delete.call_count)
124
+
125
+ @mock.patch("deltacat.io.redis_object_store.redis")
126
+ def test_clear_sanity(self, mock_client):
127
+ # setup
128
+ mock_client.Redis.return_value.flushall.side_effect = [True]
129
+
130
+ # action
131
+ clear_success = self.object_store.clear()
132
+
133
+ # assert
134
+ self.assertTrue(clear_success)
135
+ self.assertEqual(1, mock_client.Redis.return_value.flushall.call_count)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deltacat
3
- Version: 1.1.25
3
+ Version: 1.1.27
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
@@ -1,4 +1,4 @@
1
- deltacat/__init__.py,sha256=1MH_WEz9I4j_9AC7Kk7iVAsQYS47ksuSkSWGvo895Go,1778
1
+ deltacat/__init__.py,sha256=NNgt1N6a4dwztCKl6C7klF3mQEn-S-sBHNZPKPqRHko,1778
2
2
  deltacat/constants.py,sha256=TUJLXUJ9xq1Ryil72yLkKR8EDH_Irp5wUg56QstbRNE,2181
3
3
  deltacat/exceptions.py,sha256=7sjk3BuMY5Oo-6OvAfHncZx_OcvtEL47BblWr2F7waE,12740
4
4
  deltacat/logs.py,sha256=EQSDin1deehzz5xlLV1_TrFJrO_IBZ9Ahp7MdL-4cK8,9363
@@ -66,7 +66,7 @@ deltacat/compute/compactor_v2/model/merge_file_group.py,sha256=1o86t9lc3K6ZvtViV
66
66
  deltacat/compute/compactor_v2/model/merge_input.py,sha256=-SxTE0e67z2V7MiMEVz5aMu4E0k8h3-vqohvUUOC0do,5659
67
67
  deltacat/compute/compactor_v2/model/merge_result.py,sha256=_IZTCStpb4UKiRCJYA3g6EhAqjrw0t9vmoDAN8kIK-Y,436
68
68
  deltacat/compute/compactor_v2/private/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
- deltacat/compute/compactor_v2/private/compaction_utils.py,sha256=AuzysedzCyapfNf1pfqsZe6mZw121lx6h6NTyLB-pyM,30930
69
+ deltacat/compute/compactor_v2/private/compaction_utils.py,sha256=fMWXg1SCIIgjk9p_OFYrcm760dOKNbFO1Lj3_JI3GCY,30929
70
70
  deltacat/compute/compactor_v2/steps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
71
  deltacat/compute/compactor_v2/steps/hash_bucket.py,sha256=1R5xLUkl7GqL1nY-apAgY1czKDEHjIVYSRi9qLOMass,6726
72
72
  deltacat/compute/compactor_v2/steps/merge.py,sha256=LpktsDPfj7Of6RgUw9w1f3Y3OBkPDjvtyXjzFaIDoSo,21771
@@ -85,7 +85,7 @@ deltacat/compute/merge_on_read/model/merge_on_read_params.py,sha256=Q51znagh8PtL
85
85
  deltacat/compute/merge_on_read/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
86
  deltacat/compute/merge_on_read/utils/delta.py,sha256=e4BtOHa5XPpUnR4r0HqBKjXckBsTI8qBwdUWwpJfkWQ,1367
87
87
  deltacat/compute/resource_estimation/__init__.py,sha256=4bfBXcq-VAt9JCmjvj3yAmn0lEHVGdGsUCCoMGxjEqA,799
88
- deltacat/compute/resource_estimation/delta.py,sha256=Ei4v9UYhtcT5P-wNEMAg0E4mYl0z5FpSkaTufVoGD18,9492
88
+ deltacat/compute/resource_estimation/delta.py,sha256=8oRy1rgGUimwMqPB5At81AS-AsjPHdcvLHzJ9TW8RpM,9522
89
89
  deltacat/compute/resource_estimation/manifest.py,sha256=gSqOyIda-pYq3vRsKFq3IiZvwhV3mMqrWPtsmUH9dD8,13035
90
90
  deltacat/compute/resource_estimation/model.py,sha256=psyagFXdpLGt8DfDqy7c8DWiuXCacr0Swe5f0M7DdO4,5465
91
91
  deltacat/compute/resource_estimation/parquet.py,sha256=5_apma4EKbKcm-nfV73-qN2nfnCeyhFW23ZHX3jz0Kw,3158
@@ -100,11 +100,11 @@ deltacat/compute/stats/models/stats_result.py,sha256=XQAlmzhUqRmg4jzEMUAOqcYn1HU
100
100
  deltacat/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
101
  deltacat/io/dataset.py,sha256=pFU5UfK-fD9C4fIeffJtrA6yVQSgAx2UPbxzQ4GMFL8,3203
102
102
  deltacat/io/file_object_store.py,sha256=YoNL3Qla8uLOHaWnyBmIgotjSGAy3Td3Tumah0kk73Y,1868
103
- deltacat/io/memcached_object_store.py,sha256=qMhrziKKQlPt7qmI5OKuIGeXRKP_LD4wPNvWBUelE5A,10812
103
+ deltacat/io/memcached_object_store.py,sha256=C96t77-4BQe0XZ4vC76Ygi2o1POUoMN4t4BiyPmulz0,10997
104
104
  deltacat/io/object_store.py,sha256=z3Crt8TLyLyoRunOuXAri373TQZKFoz66QHpxGOV82U,1910
105
105
  deltacat/io/ray_plasma_object_store.py,sha256=TyoUPWybE_cSISZ2SQa3YfD93QWMp0r82-6WnoVSmzk,905
106
106
  deltacat/io/read_api.py,sha256=BhkjL3xjY-fsa62AA9Yv20_88uTskn4_Bv2W6VmMXVA,7023
107
- deltacat/io/redis_object_store.py,sha256=ZXkJIrx7uHnnAayD-FG1BiB5xxDjMch9GO-YUkPVwqU,4410
107
+ deltacat/io/redis_object_store.py,sha256=OkbQNq1DUVYA7eupmZTF-9OvXUDTOl6WtEifonA5teg,4862
108
108
  deltacat/io/s3_object_store.py,sha256=IxvLUvyQZ1w1oYwN9RvRgmKR0Dw56-GggYJw1UCyhBg,1911
109
109
  deltacat/io/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
110
  deltacat/io/aws/redshift/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -137,11 +137,11 @@ deltacat/tests/compute/compact_partition_multiple_rounds_test_cases.py,sha256=kW
137
137
  deltacat/tests/compute/compact_partition_rebase_test_cases.py,sha256=8HVr3EIFYFqNaJoqeCuj9xIBjM4Ch2bx-mJcO4BRrLo,16839
138
138
  deltacat/tests/compute/compact_partition_rebase_then_incremental_test_cases.py,sha256=l_6-pAKOsRY3NbtfHsYmEaJEkq6IJueYuLsjyJxNgz4,81564
139
139
  deltacat/tests/compute/compact_partition_test_cases.py,sha256=R9eiKvxCLqcoHjAx3iOogdnXZEO9TvLbRf0wA7bcJN4,26170
140
- deltacat/tests/compute/test_compact_partition_incremental.py,sha256=Z0hyQGhMZjCaOn1Vk4qUbgDiS7HDhtdNeFQyG1PJhqA,14559
141
- deltacat/tests/compute/test_compact_partition_multiple_rounds.py,sha256=XOkpB5r-6lyDbqSIens8loaj86HG29PoNrHAOlIMqTM,12587
140
+ deltacat/tests/compute/test_compact_partition_incremental.py,sha256=lkfAraOJmEmieesf7b1BqlfTS26YjYM5xXOXoTMrsos,14989
141
+ deltacat/tests/compute/test_compact_partition_multiple_rounds.py,sha256=xXBA66TTfARR90m5KQs31nmiokuMy9iGQt7Z9evyG7M,12950
142
142
  deltacat/tests/compute/test_compact_partition_params.py,sha256=Dm5eLyHo8oGMeO3XBbpj1rZqHtPZ1hAB7z2qvzc4Lxk,8497
143
- deltacat/tests/compute/test_compact_partition_rebase.py,sha256=ztSiLgC2OpU4yz81vz-4xWzvZyrLGojtzomsW4q7Bl8,12626
144
- deltacat/tests/compute/test_compact_partition_rebase_then_incremental.py,sha256=CHHfNFEJW8S1We7NE1Gg6EaoKEWnaOMRxWrLyirrahc,14643
143
+ deltacat/tests/compute/test_compact_partition_rebase.py,sha256=DNcpmnBo5QoZ23BiIhJCC3zaDK0xClZLUb2-ZEEp5s4,13108
144
+ deltacat/tests/compute/test_compact_partition_rebase_then_incremental.py,sha256=Rxen3QGIaxVPa8lcO7NDMRxQ0aBjrOKn46LK5ZsfQTo,15073
145
145
  deltacat/tests/compute/test_util_common.py,sha256=0mEHo38bgH64y0XZ_zgUL_aZgQMgJOSTlOYvIJxG_MM,11825
146
146
  deltacat/tests/compute/test_util_constant.py,sha256=4o-W3E7r7jhFl1A3OFLLrdKnwcF46zx4lEIDY8ONJ3c,929
147
147
  deltacat/tests/compute/test_util_create_table_deltas_repo.py,sha256=Q3HJj1fjoe2JwRUOW8KEjbTqPIIoP2o_T3ZGH6SJnCM,13244
@@ -157,7 +157,7 @@ deltacat/tests/compute/compactor_v2/test_hashlib.py,sha256=8csF2hFWtBvY2MbX3-6ip
157
157
  deltacat/tests/compute/compactor_v2/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
158
  deltacat/tests/compute/compactor_v2/utils/test_task_options.py,sha256=37DkR1u_XwhedV9cGed6FFuJTC0XmuiowHJIa_Op6uA,865
159
159
  deltacat/tests/compute/resource_estimation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
- deltacat/tests/compute/resource_estimation/test_delta.py,sha256=LyzRitBrasQa35Bq7rHTQInaOelSWOSoC0_dyjgpNuE,24505
160
+ deltacat/tests/compute/resource_estimation/test_delta.py,sha256=HCL2oUnCqm0E26T3HLJjMhoAsHTJIWPYGwIKRgM_H7E,25712
161
161
  deltacat/tests/compute/resource_estimation/test_manifest.py,sha256=yrMvqDjolExdRf6Vtg5XaKDuaKz9ok15PCZ7_aJOYrI,32893
162
162
  deltacat/tests/compute/resource_estimation/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
163
  deltacat/tests/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -165,7 +165,7 @@ deltacat/tests/io/test_cloudpickle_bug_fix.py,sha256=qnYJg_S-nsLai77a4_I3Qs2Jtr_
165
165
  deltacat/tests/io/test_file_object_store.py,sha256=bjORXnHe7Ea733XUUO0S2Su_oqSwGuO84TlIfoNO6qA,3587
166
166
  deltacat/tests/io/test_memcached_object_store.py,sha256=0EIaU5MHiEmIEkA4x5qUXFY9TE6TJ7V2RGH827cu3AU,9512
167
167
  deltacat/tests/io/test_ray_plasma_object_store.py,sha256=-wJZP6lRtEOogR25wjEiIBGz_lpvWVihwlZ5GqandZU,1911
168
- deltacat/tests/io/test_redis_object_store.py,sha256=YpMsMFT6ltmJHlpAdmlxLK91KjCN8YFMaQrpJ6dcR6E,4595
168
+ deltacat/tests/io/test_redis_object_store.py,sha256=4fCxb7PAqYixPbQZEPDwsDU3BEKfOkYxkhAI7V5Zdfc,4988
169
169
  deltacat/tests/io/test_s3_object_store.py,sha256=I8AbyrPfS32CAYvRHtn_OanL-XPpAnJeuCuhD-u9irQ,2270
170
170
  deltacat/tests/local_deltacat_storage/__init__.py,sha256=5T9ubNIS42-BotEH0yrUiWEU92feW7lkoSA1-wMeAnQ,40104
171
171
  deltacat/tests/local_deltacat_storage/exceptions.py,sha256=oxZ0psmrEO0M6P2r8gHQ2E8E-Y8UBfUCBUIwfuHcx38,251
@@ -210,8 +210,8 @@ deltacat/utils/ray_utils/concurrency.py,sha256=JDVwMiQWrmuSlyCWAoiq9ctoJ0XADEfDD
210
210
  deltacat/utils/ray_utils/dataset.py,sha256=waHdtH0c835a-2t51HYRHnulfC0_zBxx8mFSAPvPSPM,3274
211
211
  deltacat/utils/ray_utils/performance.py,sha256=d7JFM7vTXHzkGx9qNQcZzUWajnqINvYRwaM088_FpsE,464
212
212
  deltacat/utils/ray_utils/runtime.py,sha256=rB0A-tU9WZHz0J11LzJdANYtL397YyuemcA1l-K9dAw,5029
213
- deltacat-1.1.25.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
214
- deltacat-1.1.25.dist-info/METADATA,sha256=LmlqMBpzFVM6OsK2r3A5aqCTEq_peBcgFmjivhJJS5c,1733
215
- deltacat-1.1.25.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
216
- deltacat-1.1.25.dist-info/top_level.txt,sha256=RWdIcid4Bv2i2ozLVh-70kJpyB61xEKXod9XXGpiono,9
217
- deltacat-1.1.25.dist-info/RECORD,,
213
+ deltacat-1.1.27.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
214
+ deltacat-1.1.27.dist-info/METADATA,sha256=VL7sWG3lO3cV3tzwTiCTgpm7h0K5Dh3GtKiqojgSgHI,1733
215
+ deltacat-1.1.27.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
216
+ deltacat-1.1.27.dist-info/top_level.txt,sha256=RWdIcid4Bv2i2ozLVh-70kJpyB61xEKXod9XXGpiono,9
217
+ deltacat-1.1.27.dist-info/RECORD,,