deltacat 0.2.1__py3-none-any.whl → 0.2.3__py3-none-any.whl
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.
- deltacat/__init__.py +1 -1
- deltacat/compute/compactor/model/compaction_session_audit_info.py +17 -14
- deltacat/compute/compactor_v2/utils/primary_key_index.py +4 -0
- deltacat/io/memcached_object_store.py +24 -15
- deltacat/io/object_store.py +7 -0
- deltacat/tests/compute/compact_partition_test_cases.py +54 -4
- deltacat/tests/local_deltacat_storage/__init__.py +16 -0
- deltacat/tests/test_utils/storage.py +34 -0
- {deltacat-0.2.1.dist-info → deltacat-0.2.3.dist-info}/METADATA +1 -1
- {deltacat-0.2.1.dist-info → deltacat-0.2.3.dist-info}/RECORD +13 -12
- {deltacat-0.2.1.dist-info → deltacat-0.2.3.dist-info}/LICENSE +0 -0
- {deltacat-0.2.1.dist-info → deltacat-0.2.3.dist-info}/WHEEL +0 -0
- {deltacat-0.2.1.dist-info → deltacat-0.2.3.dist-info}/top_level.txt +0 -0
deltacat/__init__.py
CHANGED
@@ -796,13 +796,6 @@ class CompactionSessionAuditInfo(dict):
|
|
796
796
|
Saves the stats by calling individual setters and returns the cluster telemetry time.
|
797
797
|
"""
|
798
798
|
|
799
|
-
last_task_completed_at = max(
|
800
|
-
result.task_completed_at for result in task_results
|
801
|
-
)
|
802
|
-
|
803
|
-
self[f"{step_name}ResultWaitTimeInSeconds"] = (
|
804
|
-
task_results_retrieved_at - last_task_completed_at.item()
|
805
|
-
)
|
806
799
|
self[f"{step_name}TimeInSeconds"] = task_time_in_seconds
|
807
800
|
self[f"{step_name}InvokeTimeInSeconds"] = invoke_time_in_seconds
|
808
801
|
|
@@ -827,15 +820,25 @@ class CompactionSessionAuditInfo(dict):
|
|
827
820
|
f"{step_name}PostObjectStoreMemoryUsedBytes"
|
828
821
|
] = cluster_utilization_after_task.used_object_store_memory_bytes
|
829
822
|
|
830
|
-
|
831
|
-
|
832
|
-
|
823
|
+
telemetry_time = 0
|
824
|
+
if task_results:
|
825
|
+
last_task_completed_at = max(
|
826
|
+
result.task_completed_at for result in task_results
|
827
|
+
)
|
833
828
|
|
834
|
-
|
835
|
-
|
836
|
-
|
829
|
+
self[f"{step_name}ResultWaitTimeInSeconds"] = (
|
830
|
+
task_results_retrieved_at - last_task_completed_at.item()
|
831
|
+
)
|
832
|
+
|
833
|
+
peak_task_memory = max(
|
834
|
+
result.peak_memory_usage_bytes for result in task_results
|
835
|
+
)
|
836
|
+
|
837
|
+
telemetry_time = sum(
|
838
|
+
result.telemetry_time_in_seconds for result in task_results
|
839
|
+
)
|
837
840
|
|
838
|
-
|
841
|
+
self[f"{step_name}TaskPeakMemoryUsedBytes"] = peak_task_memory.item()
|
839
842
|
|
840
843
|
return cluster_util_after_task_latency + telemetry_time
|
841
844
|
|
@@ -317,6 +317,10 @@ def group_hash_bucket_indices(
|
|
317
317
|
hash_group_to_num_rows[hb_group],
|
318
318
|
)
|
319
319
|
del object_ref
|
320
|
+
|
321
|
+
_, close_latency = timed_invocation(object_store.close)
|
322
|
+
logger.info(f"Active connections to the object store closed in {close_latency}")
|
323
|
+
|
320
324
|
return hash_bucket_group_to_obj_id_size_tuple
|
321
325
|
|
322
326
|
|
@@ -29,24 +29,22 @@ class MemcachedObjectStore(IObjectStore):
|
|
29
29
|
port: Optional[int] = 11212,
|
30
30
|
connect_timeout: float = CONNECT_TIMEOUT,
|
31
31
|
timeout: float = FETCH_TIMEOUT,
|
32
|
+
noreply: bool = False,
|
32
33
|
) -> None:
|
33
34
|
self.client_cache = {}
|
34
35
|
self.current_ip = None
|
35
36
|
self.SEPARATOR = "_"
|
36
37
|
self.port = port
|
37
38
|
self.storage_node_ips = storage_node_ips
|
38
|
-
self.hasher =
|
39
|
+
self.hasher = RendezvousHash(nodes=self.storage_node_ips, seed=0)
|
39
40
|
self.connect_timeout = connect_timeout
|
40
41
|
self.timeout = timeout
|
41
|
-
|
42
|
+
self.noreply = noreply
|
43
|
+
logger.info(
|
44
|
+
f"The storage node IPs: {self.storage_node_ips} with noreply: {self.noreply}"
|
45
|
+
)
|
42
46
|
super().__init__()
|
43
47
|
|
44
|
-
def initialize_hasher(self):
|
45
|
-
if not self.hasher and self.storage_node_ips:
|
46
|
-
self.hasher = RendezvousHash()
|
47
|
-
for n in self.storage_node_ips:
|
48
|
-
self.hasher.add_node(n)
|
49
|
-
|
50
48
|
def put_many(self, objects: List[object], *args, **kwargs) -> List[Any]:
|
51
49
|
input = defaultdict(dict)
|
52
50
|
result = []
|
@@ -59,7 +57,7 @@ class MemcachedObjectStore(IObjectStore):
|
|
59
57
|
result.append(ref)
|
60
58
|
for create_ref_ip, uid_to_object in input.items():
|
61
59
|
client = self._get_client_by_ip(create_ref_ip)
|
62
|
-
if client.set_many(uid_to_object, noreply=
|
60
|
+
if client.set_many(uid_to_object, noreply=self.noreply):
|
63
61
|
raise RuntimeError("Unable to write few keys to cache")
|
64
62
|
|
65
63
|
return result
|
@@ -71,10 +69,15 @@ class MemcachedObjectStore(IObjectStore):
|
|
71
69
|
ref = self._create_ref(uid, create_ref_ip)
|
72
70
|
client = self._get_client_by_ip(create_ref_ip)
|
73
71
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
72
|
+
try:
|
73
|
+
if client.set(uid.__str__(), serialized, noreply=self.noreply):
|
74
|
+
return ref
|
75
|
+
else:
|
76
|
+
raise RuntimeError(f"Unable to write {ref} to cache")
|
77
|
+
except BaseException as e:
|
78
|
+
raise RuntimeError(
|
79
|
+
f"Received {e} while writing ref={ref} and obj size={len(serialized)}"
|
80
|
+
)
|
78
81
|
|
79
82
|
def get_many(self, refs: List[Any], *args, **kwargs) -> List[object]:
|
80
83
|
result = []
|
@@ -90,7 +93,7 @@ class MemcachedObjectStore(IObjectStore):
|
|
90
93
|
cache_result = client.get_many(uids)
|
91
94
|
assert len(cache_result) == len(
|
92
95
|
uids
|
93
|
-
), f"Not all values were returned from cache as {len(cache_result)} != {len(uids)}"
|
96
|
+
), f"Not all values were returned from cache from {ip} as {len(cache_result)} != {len(uids)}"
|
94
97
|
|
95
98
|
values = cache_result.values()
|
96
99
|
total_bytes = 0
|
@@ -117,11 +120,16 @@ class MemcachedObjectStore(IObjectStore):
|
|
117
120
|
serialized = client.get(uid)
|
118
121
|
return cloudpickle.loads(serialized)
|
119
122
|
|
123
|
+
def close(self) -> None:
|
124
|
+
for client in self.client_cache.values():
|
125
|
+
client.close()
|
126
|
+
|
127
|
+
self.client_cache.clear()
|
128
|
+
|
120
129
|
def _create_ref(self, uid, ip) -> str:
|
121
130
|
return f"{uid}{self.SEPARATOR}{ip}"
|
122
131
|
|
123
132
|
def _get_storage_node_ip(self, key: str):
|
124
|
-
self.initialize_hasher()
|
125
133
|
storage_node_ip = self.hasher.get_node(key)
|
126
134
|
return storage_node_ip
|
127
135
|
|
@@ -149,6 +157,7 @@ class MemcachedObjectStore(IObjectStore):
|
|
149
157
|
retry_delay=1,
|
150
158
|
retry_for=[
|
151
159
|
MemcacheUnexpectedCloseError,
|
160
|
+
ConnectionRefusedError,
|
152
161
|
ConnectionResetError,
|
153
162
|
BrokenPipeError,
|
154
163
|
TimeoutError,
|
deltacat/io/object_store.py
CHANGED
@@ -49,3 +49,10 @@ class IObjectStore:
|
|
49
49
|
"""
|
50
50
|
Clears the object store and all the associated data in it.
|
51
51
|
"""
|
52
|
+
|
53
|
+
def close(self, *args, **kwargs) -> None:
|
54
|
+
...
|
55
|
+
"""
|
56
|
+
Closes all the active connections to object store without clearing
|
57
|
+
the data in the object store.
|
58
|
+
"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import pyarrow as pa
|
2
2
|
import string
|
3
|
-
from typing import Callable, Dict, List, Optional, Set, Tuple
|
3
|
+
from typing import Callable, Dict, List, Optional, Set, Tuple, Union
|
4
4
|
from deltacat.tests.compute.test_util_common import (
|
5
5
|
offer_iso8601_timestamp_list,
|
6
6
|
PartitionKey,
|
@@ -72,7 +72,7 @@ class BaseCompactorTestCase:
|
|
72
72
|
sort_keys: List[Optional[SortKey]]
|
73
73
|
partition_keys: Optional[List[PartitionKey]]
|
74
74
|
partition_values: List[Optional[str]]
|
75
|
-
input_deltas: List[pa.Array]
|
75
|
+
input_deltas: Union[List[pa.Array], pa.Table]
|
76
76
|
input_deltas_delta_type: DeltaType
|
77
77
|
expected_terminal_compact_partition_result: pa.Table
|
78
78
|
do_create_placement_group: bool
|
@@ -104,11 +104,16 @@ class RebaseThenIncrementalCompactionTestCaseParams(BaseCompactorTestCase):
|
|
104
104
|
rebase_expected_compact_partition_result: pa.Table - expected table after rebase compaction runs. An output that is asserted on in Rebase then Incremental unit tests
|
105
105
|
"""
|
106
106
|
|
107
|
-
incremental_deltas: pa.Table
|
107
|
+
incremental_deltas: Optional[pa.Table]
|
108
108
|
incremental_deltas_delta_type: DeltaType
|
109
109
|
rebase_expected_compact_partition_result: pa.Table
|
110
110
|
|
111
111
|
|
112
|
+
@dataclass(frozen=True)
|
113
|
+
class NoRCFOutputCompactionTestCaseParams(BaseCompactorTestCase):
|
114
|
+
pass
|
115
|
+
|
116
|
+
|
112
117
|
def with_compactor_version_func_test_param(
|
113
118
|
test_cases: Dict[str, BaseCompactorTestCase] = None
|
114
119
|
):
|
@@ -1085,10 +1090,55 @@ REBASE_THEN_INCREMENTAL_TEST_CASES = {
|
|
1085
1090
|
drop_duplicates=False,
|
1086
1091
|
skip_enabled_compact_partition_drivers=[CompactorVersion.V1],
|
1087
1092
|
),
|
1093
|
+
"14-rebase-then-empty-incremental-delta": RebaseThenIncrementalCompactionTestCaseParams(
|
1094
|
+
primary_keys={"pk_col_1"},
|
1095
|
+
sort_keys=[
|
1096
|
+
SortKey.of(key_name="sk_col_1"),
|
1097
|
+
SortKey.of(key_name="sk_col_2"),
|
1098
|
+
],
|
1099
|
+
partition_keys=[PartitionKey.of("region_id", PartitionKeyType.INT)],
|
1100
|
+
partition_values=["1"],
|
1101
|
+
input_deltas=pa.Table.from_arrays(
|
1102
|
+
[
|
1103
|
+
pa.array([str(i) for i in range(10)]),
|
1104
|
+
pa.array([i for i in range(0, 10)]),
|
1105
|
+
pa.array(["foo"] * 10),
|
1106
|
+
pa.array([i / 10 for i in range(10, 20)]),
|
1107
|
+
],
|
1108
|
+
names=["pk_col_1", "sk_col_1", "sk_col_2", "col_1"],
|
1109
|
+
),
|
1110
|
+
input_deltas_delta_type=DeltaType.UPSERT,
|
1111
|
+
rebase_expected_compact_partition_result=pa.Table.from_arrays(
|
1112
|
+
[
|
1113
|
+
pa.array([str(i) for i in range(10)]),
|
1114
|
+
pa.array([i for i in range(0, 10)]),
|
1115
|
+
pa.array(["foo"] * 10),
|
1116
|
+
pa.array([i / 10 for i in range(10, 20)]),
|
1117
|
+
],
|
1118
|
+
names=["pk_col_1", "sk_col_1", "sk_col_2", "col_1"],
|
1119
|
+
),
|
1120
|
+
incremental_deltas=None,
|
1121
|
+
incremental_deltas_delta_type=DeltaType.UPSERT,
|
1122
|
+
expected_terminal_compact_partition_result=pa.Table.from_arrays(
|
1123
|
+
[
|
1124
|
+
pa.array([str(i) for i in range(10)]),
|
1125
|
+
pa.array([i for i in range(0, 10)]),
|
1126
|
+
pa.array(["foo"] * 10),
|
1127
|
+
pa.array([i / 10 for i in range(10, 20)]),
|
1128
|
+
],
|
1129
|
+
names=["pk_col_1", "sk_col_1", "sk_col_2", "col_1"],
|
1130
|
+
),
|
1131
|
+
do_create_placement_group=False,
|
1132
|
+
records_per_compacted_file=DEFAULT_MAX_RECORDS_PER_FILE,
|
1133
|
+
hash_bucket_count=1,
|
1134
|
+
read_kwargs_provider=None,
|
1135
|
+
drop_duplicates=True,
|
1136
|
+
skip_enabled_compact_partition_drivers=None,
|
1137
|
+
),
|
1088
1138
|
}
|
1089
1139
|
|
1090
|
-
INCREMENTAL_TEST_CASES = with_compactor_version_func_test_param(INCREMENTAL_TEST_CASES)
|
1091
1140
|
|
1141
|
+
INCREMENTAL_TEST_CASES = with_compactor_version_func_test_param(INCREMENTAL_TEST_CASES)
|
1092
1142
|
|
1093
1143
|
REBASE_THEN_INCREMENTAL_TEST_CASES = with_compactor_version_func_test_param(
|
1094
1144
|
REBASE_THEN_INCREMENTAL_TEST_CASES
|
@@ -6,6 +6,8 @@ import sqlite3
|
|
6
6
|
from sqlite3 import Cursor, Connection
|
7
7
|
import uuid
|
8
8
|
import io
|
9
|
+
|
10
|
+
from deltacat.tests.test_utils.storage import create_empty_delta
|
9
11
|
from deltacat.utils.common import current_time_ms
|
10
12
|
|
11
13
|
from deltacat.storage import (
|
@@ -880,6 +882,20 @@ def stage_delta(
|
|
880
882
|
manifest_entry_id = uuid.uuid4().__str__()
|
881
883
|
uri = _get_manifest_entry_uri(manifest_entry_id)
|
882
884
|
|
885
|
+
if data is None:
|
886
|
+
delta = create_empty_delta(
|
887
|
+
partition,
|
888
|
+
delta_type,
|
889
|
+
author,
|
890
|
+
properties=properties,
|
891
|
+
manifest_entry_id=manifest_entry_id,
|
892
|
+
)
|
893
|
+
cur.execute("INSERT OR IGNORE INTO data VALUES (?, ?)", (uri, None))
|
894
|
+
params = (delta.locator.canonical_string(), "staged_delta", json.dumps(delta))
|
895
|
+
cur.execute("INSERT OR IGNORE INTO deltas VALUES (?, ?, ?)", params)
|
896
|
+
con.commit()
|
897
|
+
return delta
|
898
|
+
|
883
899
|
serialized_data = None
|
884
900
|
if content_type == ContentType.PARQUET:
|
885
901
|
buffer = io.BytesIO()
|
@@ -0,0 +1,34 @@
|
|
1
|
+
from typing import Optional, Dict
|
2
|
+
|
3
|
+
from deltacat.aws.redshift import Manifest, ManifestMeta
|
4
|
+
from deltacat.storage import Partition, DeltaType, DeltaLocator, Delta
|
5
|
+
from deltacat.utils.common import current_time_ms
|
6
|
+
|
7
|
+
|
8
|
+
def create_empty_delta(
|
9
|
+
partition: Partition,
|
10
|
+
delta_type: DeltaType,
|
11
|
+
author: Optional[str],
|
12
|
+
properties: Optional[Dict[str, str]] = None,
|
13
|
+
manifest_entry_id: Optional[str] = None,
|
14
|
+
) -> Delta:
|
15
|
+
stream_position = current_time_ms()
|
16
|
+
delta_locator = DeltaLocator.of(partition.locator, stream_position=stream_position)
|
17
|
+
|
18
|
+
if manifest_entry_id:
|
19
|
+
manifest = Manifest.of(
|
20
|
+
entries=[],
|
21
|
+
author=author,
|
22
|
+
uuid=manifest_entry_id,
|
23
|
+
)
|
24
|
+
else:
|
25
|
+
manifest = None
|
26
|
+
|
27
|
+
return Delta.of(
|
28
|
+
delta_locator,
|
29
|
+
delta_type=delta_type,
|
30
|
+
meta=ManifestMeta(),
|
31
|
+
properties=properties,
|
32
|
+
manifest=manifest,
|
33
|
+
previous_stream_position=partition.stream_position,
|
34
|
+
)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
deltacat/__init__.py,sha256=
|
1
|
+
deltacat/__init__.py,sha256=kTmI32iCpdFHBXdpnyOFaK3-Vx09CdQ4ceVhQgAUA40,1777
|
2
2
|
deltacat/constants.py,sha256=_6oRI-3yp5c8J1qKGQZrt89I9-ttT_gSSvVsJ0h8Duc,1939
|
3
3
|
deltacat/exceptions.py,sha256=xqZf8CwysNYP2d39pf27OnXGStPREgBgIM-e2Tts-TI,199
|
4
4
|
deltacat/logs.py,sha256=9XWuTBoWhhAF9rAL6t9veXmnAlJHsaqk0lTxteVPqyQ,5674
|
@@ -24,7 +24,7 @@ deltacat/compute/compactor/compaction_session.py,sha256=5XxWGY8QixEjUqzVZrdRGD8B
|
|
24
24
|
deltacat/compute/compactor/repartition_session.py,sha256=f5BTTGNv365qSuTioL7QUuVm-px_l8-zz-OC_p7gXt4,7240
|
25
25
|
deltacat/compute/compactor/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
26
|
deltacat/compute/compactor/model/compact_partition_params.py,sha256=110p2Z0M0_SuVzEhUaR0-17lmdR1rXAFYhgtcIhyK7s,14281
|
27
|
-
deltacat/compute/compactor/model/compaction_session_audit_info.py,sha256=
|
27
|
+
deltacat/compute/compactor/model/compaction_session_audit_info.py,sha256=T1-RAfs2xITCL9p_4MQW0f0y_B8CYiY0LxSAjn4bxt4,31457
|
28
28
|
deltacat/compute/compactor/model/compactor_version.py,sha256=RwRvManiCxZmzjAWzm1OPDxjB1BEHu1d0fBJyGhXKxA,87
|
29
29
|
deltacat/compute/compactor/model/dedupe_result.py,sha256=1OCV944qJdLQ_-8scisVKl45ej1eRv9OV539QYZtQ-U,292
|
30
30
|
deltacat/compute/compactor/model/delta_annotated.py,sha256=NERB9rOtYg-xzBwvqGJ7_hBOzBC7g6X5M9-Cq5pbdH8,12258
|
@@ -62,7 +62,7 @@ deltacat/compute/compactor_v2/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
|
|
62
62
|
deltacat/compute/compactor_v2/utils/content_type_params.py,sha256=rNKZisxGrLQOkwX8eHUQiFoTR1V-E66pMqWigtrs618,2156
|
63
63
|
deltacat/compute/compactor_v2/utils/dedupe.py,sha256=62tFCY2iRP7I3-45GCIYs6_SJsQl8C5lBEr8gbNfbsw,1932
|
64
64
|
deltacat/compute/compactor_v2/utils/io.py,sha256=4KV13VKwEtIzkwPJLJmEnp1dMOKHSxkEOQNQVbYrcwY,5177
|
65
|
-
deltacat/compute/compactor_v2/utils/primary_key_index.py,sha256=
|
65
|
+
deltacat/compute/compactor_v2/utils/primary_key_index.py,sha256=j3i7JQyDQh1mAa_TiMZ41s5inRvIyptKzd2CRvH1qbM,11269
|
66
66
|
deltacat/compute/compactor_v2/utils/task_options.py,sha256=4exdjpJ0TKgAeN0XNZywcWYG6XdelSdGVWEh2vZ8-yM,8317
|
67
67
|
deltacat/compute/metastats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
68
|
deltacat/compute/metastats/meta_stats.py,sha256=78hN3aN5wLHUFJsZXuv2JLeqA35HZ8mLUWJDMslMj5Q,18731
|
@@ -92,8 +92,8 @@ deltacat/compute/stats/utils/manifest_stats_file.py,sha256=PtqW5Zc5e09HcfiAgvoZH
|
|
92
92
|
deltacat/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
93
93
|
deltacat/io/dataset.py,sha256=8w9sPVDpGnjjGVDWB39YSKWxq4zRv9VEfDtj7PYwjqM,3755
|
94
94
|
deltacat/io/file_object_store.py,sha256=HCFeXu9cWXPXVk54MHel_nw3-wIuzhMt2RI6jKzjRYM,1346
|
95
|
-
deltacat/io/memcached_object_store.py,sha256=
|
96
|
-
deltacat/io/object_store.py,sha256=
|
95
|
+
deltacat/io/memcached_object_store.py,sha256=bV567DAbKGt2IXbNBNcqBtT3EFopmI65FxXNUAhSBQs,5850
|
96
|
+
deltacat/io/object_store.py,sha256=X6221ZuVx8NOyKUesz8LvjvQ_4vZ6p2RWV6VISL17AY,1576
|
97
97
|
deltacat/io/ray_plasma_object_store.py,sha256=pupw7ulZY_EV5dERJDCCW_y_hzVx3Hl_uAvpQTNIh-E,705
|
98
98
|
deltacat/io/read_api.py,sha256=BhkjL3xjY-fsa62AA9Yv20_88uTskn4_Bv2W6VmMXVA,7023
|
99
99
|
deltacat/io/redis_object_store.py,sha256=f54Qw-NMCDjUmKxrrok_swt0LkVDjfmaHdbtAujnxyA,3507
|
@@ -118,7 +118,7 @@ deltacat/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
118
118
|
deltacat/tests/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
119
119
|
deltacat/tests/aws/test_clients.py,sha256=XOfY_ig5mVeuE4xr02Ut3l1PjmbzQI1eEdeN6QVrfqI,2557
|
120
120
|
deltacat/tests/compute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
121
|
-
deltacat/tests/compute/compact_partition_test_cases.py,sha256
|
121
|
+
deltacat/tests/compute/compact_partition_test_cases.py,sha256=EyZwh-7qKiMmzJT8E_V74cvle5uONYZyt89jmdAu1TI,47952
|
122
122
|
deltacat/tests/compute/test_compact_partition_incremental.py,sha256=82PYTROuqkrz8PdeNu5lHBmO77yCs2gkSjPDtQedjrQ,8677
|
123
123
|
deltacat/tests/compute/test_compact_partition_params.py,sha256=VKBBepclCII0_RF3aguuvCaJtY8RJ_QYEOZRL2S4xK8,8005
|
124
124
|
deltacat/tests/compute/test_compact_partition_rebase_then_incremental.py,sha256=7P64Lp-tiTqaVHScC3LMAtAZ7iHBAg8dDGY4DJlNrW8,12204
|
@@ -139,12 +139,13 @@ deltacat/tests/io/test_memcached_object_store.py,sha256=PNnfIGPoAOsgd5PYzXplrSOq
|
|
139
139
|
deltacat/tests/io/test_ray_plasma_object_store.py,sha256=-wJZP6lRtEOogR25wjEiIBGz_lpvWVihwlZ5GqandZU,1911
|
140
140
|
deltacat/tests/io/test_redis_object_store.py,sha256=sZrXrYjkw8u_XrvFilhBbLc8PPnZiuMKa1_Bt9ka5qs,3838
|
141
141
|
deltacat/tests/io/test_s3_object_store.py,sha256=4b7PYEfQJnYGUz6fcLFWVVyRHTlH_yd8CIaCv9l33Gg,1900
|
142
|
-
deltacat/tests/local_deltacat_storage/__init__.py,sha256=
|
142
|
+
deltacat/tests/local_deltacat_storage/__init__.py,sha256=Jv0ZVjEvFptoNTZoIFvFYisjkqY4O5HSnviUPbiTQUY,34776
|
143
143
|
deltacat/tests/stats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
144
144
|
deltacat/tests/stats/test_intervals.py,sha256=S92DgkALQ1WmbLWcxtvS7RlVGvL-XoPJKUUbkdn9_CQ,1955
|
145
145
|
deltacat/tests/test_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
146
146
|
deltacat/tests/test_utils/constants.py,sha256=zgqFmfIE5ZCtDw4NF-Y4ZEEnaPUP5nDY5768WPod0Fc,208
|
147
147
|
deltacat/tests/test_utils/pyarrow.py,sha256=EZk2Mtqiiu7Z79Lqm-hyHWbH6c-lbYnpvCn35TxVQys,1506
|
148
|
+
deltacat/tests/test_utils/storage.py,sha256=93GEn4A5WbMHWk0Ec4Bd7RxeHoSEnBfSarfWhKOSNtM,972
|
148
149
|
deltacat/tests/test_utils/utils.py,sha256=a32qEwcSSd1lvRi0aJJ4ZLnc1ZyXmoQF_K95zaQRk2M,455
|
149
150
|
deltacat/tests/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
150
151
|
deltacat/tests/utils/test_daft.py,sha256=iN6rAwGXw5F4xT2UZ72bN276hkKVD7XD4WNp5DKgm2Q,5098
|
@@ -175,8 +176,8 @@ deltacat/utils/ray_utils/concurrency.py,sha256=JDVwMiQWrmuSlyCWAoiq9ctoJ0XADEfDD
|
|
175
176
|
deltacat/utils/ray_utils/dataset.py,sha256=SIljK3UkSqQ6Ntit_iSiYt9yYjN_gGrCTX6_72XdQ3w,3244
|
176
177
|
deltacat/utils/ray_utils/performance.py,sha256=d7JFM7vTXHzkGx9qNQcZzUWajnqINvYRwaM088_FpsE,464
|
177
178
|
deltacat/utils/ray_utils/runtime.py,sha256=xOVkqL6o8qGsewGvzhMKxmCcqcFZDnNILuz5IGMgxSc,4991
|
178
|
-
deltacat-0.2.
|
179
|
-
deltacat-0.2.
|
180
|
-
deltacat-0.2.
|
181
|
-
deltacat-0.2.
|
182
|
-
deltacat-0.2.
|
179
|
+
deltacat-0.2.3.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
180
|
+
deltacat-0.2.3.dist-info/METADATA,sha256=gapTUx-a1Iy9MXzrWng_azqO2C36Q-6F1kDlysM0Cw8,1736
|
181
|
+
deltacat-0.2.3.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
182
|
+
deltacat-0.2.3.dist-info/top_level.txt,sha256=RWdIcid4Bv2i2ozLVh-70kJpyB61xEKXod9XXGpiono,9
|
183
|
+
deltacat-0.2.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|