maxframe 0.1.0b5__cp311-cp311-macosx_11_0_arm64.whl → 1.0.0rc1__cp311-cp311-macosx_11_0_arm64.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.
Potentially problematic release.
This version of maxframe might be problematic. Click here for more details.
- maxframe/_utils.cpython-311-darwin.so +0 -0
- maxframe/codegen.py +10 -2
- maxframe/config/config.py +4 -0
- maxframe/core/__init__.py +0 -3
- maxframe/core/entity/__init__.py +1 -8
- maxframe/core/entity/objects.py +3 -45
- maxframe/core/graph/core.cpython-311-darwin.so +0 -0
- maxframe/core/graph/core.pyx +4 -4
- maxframe/dataframe/datastore/tests/__init__.py +13 -0
- maxframe/dataframe/datastore/tests/test_to_odps.py +48 -0
- maxframe/dataframe/datastore/to_odps.py +21 -0
- maxframe/dataframe/indexing/align.py +1 -1
- maxframe/dataframe/misc/apply.py +2 -0
- maxframe/dataframe/misc/memory_usage.py +2 -2
- maxframe/dataframe/misc/tests/test_misc.py +23 -0
- maxframe/dataframe/statistics/corr.py +3 -3
- maxframe/errors.py +13 -0
- maxframe/extension.py +12 -0
- maxframe/lib/mmh3.cpython-311-darwin.so +0 -0
- maxframe/lib/mmh3.pyi +43 -0
- maxframe/lib/wrapped_pickle.py +2 -1
- maxframe/protocol.py +108 -10
- maxframe/serialization/core.cpython-311-darwin.so +0 -0
- maxframe/serialization/core.pxd +3 -0
- maxframe/serialization/core.pyi +3 -0
- maxframe/serialization/core.pyx +54 -25
- maxframe/serialization/exception.py +1 -1
- maxframe/serialization/pandas.py +7 -2
- maxframe/serialization/serializables/core.py +119 -12
- maxframe/serialization/serializables/tests/test_serializable.py +46 -4
- maxframe/tensor/arithmetic/tests/test_arithmetic.py +1 -1
- maxframe/tensor/base/atleast_1d.py +1 -1
- maxframe/tensor/base/unique.py +1 -1
- maxframe/tensor/reduction/count_nonzero.py +1 -1
- maxframe/tests/test_protocol.py +34 -0
- maxframe/tests/test_utils.py +0 -12
- maxframe/tests/utils.py +2 -2
- maxframe/utils.py +16 -13
- {maxframe-0.1.0b5.dist-info → maxframe-1.0.0rc1.dist-info}/METADATA +2 -2
- {maxframe-0.1.0b5.dist-info → maxframe-1.0.0rc1.dist-info}/RECORD +46 -44
- maxframe_client/__init__.py +0 -1
- maxframe_client/session/odps.py +45 -5
- maxframe_client/session/task.py +41 -20
- maxframe_client/tests/test_session.py +36 -0
- maxframe_client/clients/spe.py +0 -104
- {maxframe-0.1.0b5.dist-info → maxframe-1.0.0rc1.dist-info}/WHEEL +0 -0
- {maxframe-0.1.0b5.dist-info → maxframe-1.0.0rc1.dist-info}/top_level.txt +0 -0
|
@@ -94,6 +94,11 @@ class MySimpleSerializable(Serializable):
|
|
|
94
94
|
_ref_val = ReferenceField("ref_val", "MySimpleSerializable")
|
|
95
95
|
|
|
96
96
|
|
|
97
|
+
class MySubSerializable(MySimpleSerializable):
|
|
98
|
+
_m_int_val = Int64Field("m_int_val", default=250)
|
|
99
|
+
_m_str_val = StringField("m_str_val", default="SUB_STR")
|
|
100
|
+
|
|
101
|
+
|
|
97
102
|
class MySerializable(Serializable):
|
|
98
103
|
_id = IdentityField("id")
|
|
99
104
|
_any_val = AnyField("any_val")
|
|
@@ -141,7 +146,7 @@ class MySerializable(Serializable):
|
|
|
141
146
|
|
|
142
147
|
|
|
143
148
|
@pytest.mark.parametrize("set_is_ci", [False, True], indirect=True)
|
|
144
|
-
@switch_unpickle
|
|
149
|
+
@switch_unpickle(forbidden=False)
|
|
145
150
|
def test_serializable(set_is_ci):
|
|
146
151
|
my_serializable = MySerializable(
|
|
147
152
|
_id="1",
|
|
@@ -165,7 +170,9 @@ def test_serializable(set_is_ci):
|
|
|
165
170
|
_key_val=MyHasKey("aaa"),
|
|
166
171
|
_ndarray_val=np.random.rand(4, 3),
|
|
167
172
|
_datetime64_val=pd.Timestamp(123),
|
|
168
|
-
_timedelta64_val=pd.Timedelta(
|
|
173
|
+
_timedelta64_val=pd.Timedelta(
|
|
174
|
+
days=1, seconds=123, microseconds=345, nanoseconds=132
|
|
175
|
+
),
|
|
169
176
|
_datatype_val=np.dtype(np.int32),
|
|
170
177
|
_index_val=pd.Index([1, 2]),
|
|
171
178
|
_series_val=pd.Series(["a", "b"]),
|
|
@@ -187,9 +194,44 @@ def test_serializable(set_is_ci):
|
|
|
187
194
|
_assert_serializable_eq(my_serializable, my_serializable2)
|
|
188
195
|
|
|
189
196
|
|
|
197
|
+
@pytest.mark.parametrize("set_is_ci", [False, True], indirect=True)
|
|
198
|
+
@switch_unpickle
|
|
199
|
+
def test_compatible_serializable(set_is_ci):
|
|
200
|
+
global MySimpleSerializable, MySubSerializable
|
|
201
|
+
|
|
202
|
+
old_base, old_sub = MySimpleSerializable, MySubSerializable
|
|
203
|
+
|
|
204
|
+
try:
|
|
205
|
+
my_sub_serializable = MySubSerializable(
|
|
206
|
+
_id="id_val",
|
|
207
|
+
_list_val=["abcd", "wxyz"],
|
|
208
|
+
_ref_val=MyHasKey(),
|
|
209
|
+
_m_int_val=3412,
|
|
210
|
+
_m_str_val="dfgghj",
|
|
211
|
+
)
|
|
212
|
+
header, buffers = serialize(my_sub_serializable)
|
|
213
|
+
|
|
214
|
+
class MySimpleSerializable(Serializable):
|
|
215
|
+
_id = IdentityField("id")
|
|
216
|
+
_int_val = Int64Field("int_val", default=1000)
|
|
217
|
+
_list_val = ListField("list_val", default_factory=list)
|
|
218
|
+
_ref_val = ReferenceField("ref_val", "MySimpleSerializable")
|
|
219
|
+
_dict_val = DictField("dict_val")
|
|
220
|
+
|
|
221
|
+
class MySubSerializable(MySimpleSerializable):
|
|
222
|
+
_m_int_val = Int64Field("m_int_val", default=250)
|
|
223
|
+
_m_str_val = StringField("m_str_val", default="SUB_STR")
|
|
224
|
+
|
|
225
|
+
my_sub_serializable2 = deserialize(header, buffers)
|
|
226
|
+
assert type(my_sub_serializable) is not type(my_sub_serializable2)
|
|
227
|
+
_assert_serializable_eq(my_sub_serializable, my_sub_serializable2)
|
|
228
|
+
finally:
|
|
229
|
+
MySimpleSerializable, MySubSerializable = old_base, old_sub
|
|
230
|
+
|
|
231
|
+
|
|
190
232
|
def _assert_serializable_eq(my_serializable, my_serializable2):
|
|
191
233
|
for field_name, field in my_serializable._FIELDS.items():
|
|
192
|
-
if not hasattr(my_serializable, field.
|
|
234
|
+
if not hasattr(my_serializable, field.name):
|
|
193
235
|
continue
|
|
194
236
|
expect_value = getattr(my_serializable, field_name)
|
|
195
237
|
actual_value = getattr(my_serializable2, field_name)
|
|
@@ -208,7 +250,7 @@ def _assert_serializable_eq(my_serializable, my_serializable2):
|
|
|
208
250
|
elif callable(expect_value):
|
|
209
251
|
assert expect_value(1) == actual_value(1)
|
|
210
252
|
else:
|
|
211
|
-
assert expect_value == actual_value
|
|
253
|
+
assert expect_value == actual_value, f"Field {field_name}"
|
|
212
254
|
|
|
213
255
|
|
|
214
256
|
@pytest.mark.parametrize("set_is_ci", [True], indirect=True)
|
|
@@ -252,7 +252,7 @@ def test_compare():
|
|
|
252
252
|
|
|
253
253
|
def test_frexp():
|
|
254
254
|
t1 = ones((3, 4, 5), chunk_size=2)
|
|
255
|
-
t2 = empty((3, 4, 5), dtype=np.
|
|
255
|
+
t2 = empty((3, 4, 5), dtype=np.dtype(float), chunk_size=2)
|
|
256
256
|
op_type = type(t1.op)
|
|
257
257
|
|
|
258
258
|
o1, o2 = frexp(t1)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
# Copyright 1999-
|
|
3
|
+
# Copyright 1999-2024 Alibaba Group Holding Ltd.
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
# you may not use this file except in compliance with the License.
|
maxframe/tensor/base/unique.py
CHANGED
maxframe/tests/test_protocol.py
CHANGED
|
@@ -85,6 +85,40 @@ def test_error_info_json_serialize():
|
|
|
85
85
|
deserial_err_info.reraise()
|
|
86
86
|
|
|
87
87
|
|
|
88
|
+
class CannotPickleException(Exception):
|
|
89
|
+
def __reduce__(self):
|
|
90
|
+
raise ValueError
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class CannotUnpickleException(Exception):
|
|
94
|
+
@classmethod
|
|
95
|
+
def load_from_pk(cls, _):
|
|
96
|
+
raise ValueError
|
|
97
|
+
|
|
98
|
+
def __reduce__(self):
|
|
99
|
+
return type(self).load_from_pk, (0,)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def test_error_info_fallback_json_serialize():
|
|
103
|
+
try:
|
|
104
|
+
raise CannotPickleException
|
|
105
|
+
except CannotPickleException as ex:
|
|
106
|
+
err_info1 = ErrorInfo.from_exception(ex)
|
|
107
|
+
|
|
108
|
+
try:
|
|
109
|
+
raise CannotUnpickleException
|
|
110
|
+
except CannotUnpickleException as ex:
|
|
111
|
+
err_info2 = ErrorInfo.from_exception(ex)
|
|
112
|
+
|
|
113
|
+
for err_info in (err_info1, err_info2):
|
|
114
|
+
deserial_err_info = ErrorInfo.from_json(err_info.to_json())
|
|
115
|
+
assert deserial_err_info.raw_error_source is None
|
|
116
|
+
assert deserial_err_info.raw_error_data is None
|
|
117
|
+
|
|
118
|
+
with pytest.raises(RemoteException):
|
|
119
|
+
deserial_err_info.reraise()
|
|
120
|
+
|
|
121
|
+
|
|
88
122
|
def test_dag_info_json_serialize():
|
|
89
123
|
try:
|
|
90
124
|
raise ValueError("ERR_DATA")
|
maxframe/tests/test_utils.py
CHANGED
|
@@ -288,15 +288,6 @@ def test_estimate_pandas_size():
|
|
|
288
288
|
df2 = pd.DataFrame(np.random.rand(1000, 10))
|
|
289
289
|
assert utils.estimate_pandas_size(df2) == sys.getsizeof(df2)
|
|
290
290
|
|
|
291
|
-
df3 = pd.DataFrame(
|
|
292
|
-
{
|
|
293
|
-
"A": np.random.choice(["abcd", "def", "gh"], size=(1000,)),
|
|
294
|
-
"B": np.random.rand(1000),
|
|
295
|
-
"C": np.random.rand(1000),
|
|
296
|
-
}
|
|
297
|
-
)
|
|
298
|
-
assert utils.estimate_pandas_size(df3) != sys.getsizeof(df3)
|
|
299
|
-
|
|
300
291
|
s1 = pd.Series(np.random.rand(1000))
|
|
301
292
|
assert utils.estimate_pandas_size(s1) == sys.getsizeof(s1)
|
|
302
293
|
|
|
@@ -307,7 +298,6 @@ def test_estimate_pandas_size():
|
|
|
307
298
|
assert utils.estimate_pandas_size(s2) == sys.getsizeof(s2)
|
|
308
299
|
|
|
309
300
|
s3 = pd.Series(np.random.choice(["abcd", "def", "gh"], size=(1000,)))
|
|
310
|
-
assert utils.estimate_pandas_size(s3) != sys.getsizeof(s3)
|
|
311
301
|
assert (
|
|
312
302
|
pytest.approx(utils.estimate_pandas_size(s3) / sys.getsizeof(s3), abs=0.5) == 1
|
|
313
303
|
)
|
|
@@ -318,7 +308,6 @@ def test_estimate_pandas_size():
|
|
|
318
308
|
assert utils.estimate_pandas_size(idx1) == sys.getsizeof(idx1)
|
|
319
309
|
|
|
320
310
|
string_idx = pd.Index(np.random.choice(["a", "bb", "cc"], size=(1000,)))
|
|
321
|
-
assert utils.estimate_pandas_size(string_idx) != sys.getsizeof(string_idx)
|
|
322
311
|
assert (
|
|
323
312
|
pytest.approx(
|
|
324
313
|
utils.estimate_pandas_size(string_idx) / sys.getsizeof(string_idx), abs=0.5
|
|
@@ -338,7 +327,6 @@ def test_estimate_pandas_size():
|
|
|
338
327
|
},
|
|
339
328
|
index=idx2,
|
|
340
329
|
)
|
|
341
|
-
assert utils.estimate_pandas_size(df4) != sys.getsizeof(df4)
|
|
342
330
|
assert (
|
|
343
331
|
pytest.approx(utils.estimate_pandas_size(df4) / sys.getsizeof(df4), abs=0.5)
|
|
344
332
|
== 1
|
maxframe/tests/utils.py
CHANGED
|
@@ -25,7 +25,7 @@ import pytest
|
|
|
25
25
|
from tornado import netutil
|
|
26
26
|
|
|
27
27
|
from ..core import Tileable, TileableGraph
|
|
28
|
-
from ..utils import lazy_import
|
|
28
|
+
from ..utils import create_event, lazy_import
|
|
29
29
|
|
|
30
30
|
try:
|
|
31
31
|
from flaky import flaky
|
|
@@ -102,7 +102,7 @@ def run_app_in_thread(app_func):
|
|
|
102
102
|
def fixture_func(*args, **kwargs):
|
|
103
103
|
app_loop = asyncio.new_event_loop()
|
|
104
104
|
q = queue.Queue()
|
|
105
|
-
exit_event =
|
|
105
|
+
exit_event = create_event(app_loop)
|
|
106
106
|
app_thread = Thread(
|
|
107
107
|
name="TestAppThread",
|
|
108
108
|
target=app_thread_func,
|
maxframe/utils.py
CHANGED
|
@@ -33,7 +33,6 @@ import sys
|
|
|
33
33
|
import threading
|
|
34
34
|
import time
|
|
35
35
|
import tokenize as pytokenize
|
|
36
|
-
import traceback
|
|
37
36
|
import types
|
|
38
37
|
import weakref
|
|
39
38
|
import zlib
|
|
@@ -396,18 +395,6 @@ def build_tileable_dir_name(tileable_key: str) -> str:
|
|
|
396
395
|
return m.hexdigest()
|
|
397
396
|
|
|
398
397
|
|
|
399
|
-
def extract_messages_and_stacks(exc: Exception) -> Tuple[List[str], List[str]]:
|
|
400
|
-
cur_exc = exc
|
|
401
|
-
messages, stacks = [], []
|
|
402
|
-
while True:
|
|
403
|
-
messages.append(str(cur_exc))
|
|
404
|
-
stacks.append("".join(traceback.format_tb(cur_exc.__traceback__)))
|
|
405
|
-
if exc.__cause__ is None:
|
|
406
|
-
break
|
|
407
|
-
cur_exc = exc.__cause__
|
|
408
|
-
return messages, stacks
|
|
409
|
-
|
|
410
|
-
|
|
411
398
|
async def wait_http_response(
|
|
412
399
|
url: str, *, request_timeout: TimeoutType = None, **kwargs
|
|
413
400
|
) -> httpclient.HTTPResponse:
|
|
@@ -449,6 +436,21 @@ async def to_thread_pool(func, *args, pool=None, **kwargs):
|
|
|
449
436
|
return await loop.run_in_executor(pool, func_call)
|
|
450
437
|
|
|
451
438
|
|
|
439
|
+
def create_event(loop: asyncio.AbstractEventLoop) -> asyncio.Event:
|
|
440
|
+
"""
|
|
441
|
+
Create an asyncio.Event in a certain event loop.
|
|
442
|
+
"""
|
|
443
|
+
if sys.version_info[1] < 10 or loop is None:
|
|
444
|
+
return asyncio.Event(loop=loop)
|
|
445
|
+
|
|
446
|
+
# From Python3.10 the loop parameter has been removed. We should work around here.
|
|
447
|
+
old_loop = asyncio.get_running_loop()
|
|
448
|
+
asyncio.set_event_loop(loop)
|
|
449
|
+
event = asyncio.Event()
|
|
450
|
+
asyncio.set_event_loop(old_loop)
|
|
451
|
+
return event
|
|
452
|
+
|
|
453
|
+
|
|
452
454
|
class ToThreadCancelledError(asyncio.CancelledError):
|
|
453
455
|
def __init__(self, *args, result=None):
|
|
454
456
|
super().__init__(*args)
|
|
@@ -519,6 +521,7 @@ def config_odps_default_options():
|
|
|
519
521
|
"metaservice.client.cache.enable": "false",
|
|
520
522
|
"odps.sql.session.result.cache.enable": "false",
|
|
521
523
|
"odps.sql.submit.mode": "script",
|
|
524
|
+
"odps.sql.job.max.time.hours": 72,
|
|
522
525
|
}
|
|
523
526
|
|
|
524
527
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: maxframe
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0rc1
|
|
4
4
|
Summary: MaxFrame operator-based data analyze framework
|
|
5
|
-
Requires-Dist: numpy
|
|
5
|
+
Requires-Dist: numpy <2.0.0,>=1.19.0
|
|
6
6
|
Requires-Dist: pandas >=1.0.0
|
|
7
7
|
Requires-Dist: pyodps >=0.11.6.1
|
|
8
8
|
Requires-Dist: scipy >=1.0
|
|
@@ -1,38 +1,37 @@
|
|
|
1
|
-
maxframe-0.
|
|
2
|
-
maxframe-0.
|
|
3
|
-
maxframe-0.
|
|
4
|
-
maxframe-0.
|
|
1
|
+
maxframe-1.0.0rc1.dist-info/RECORD,,
|
|
2
|
+
maxframe-1.0.0rc1.dist-info/WHEEL,sha256=sieEctgmsyAnWfDYOiunmkigyyjGmYuUaApm_YItwoI,110
|
|
3
|
+
maxframe-1.0.0rc1.dist-info/top_level.txt,sha256=64x-fc2q59c_vXwNUkehyjF1vb8JWqFSdYmUqIFqoTM,31
|
|
4
|
+
maxframe-1.0.0rc1.dist-info/METADATA,sha256=YbKuyerj5kotQU8UiyPs2KY_OjKcsM4bhm2R9eZJVmg,3053
|
|
5
5
|
maxframe_client/conftest.py,sha256=7cwy2sFy5snEaxvtMvxfYFUnG6WtYC_9XxVrwJxOpcU,643
|
|
6
|
-
maxframe_client/__init__.py,sha256=
|
|
6
|
+
maxframe_client/__init__.py,sha256=0_6MYIqksNc-B0hORLb0yqNQUhtqdFD7TGg39bQ-_NI,689
|
|
7
7
|
maxframe_client/fetcher.py,sha256=p2hsVE2ihvhtuVCAaJhKccCiebl5f6BBPN6KIXOO0jo,8949
|
|
8
8
|
maxframe_client/clients/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
9
|
-
maxframe_client/clients/spe.py,sha256=ArZMNQ7olicI4O1JO7CyRP7-hb60DF71ZKCTO0N39uE,3593
|
|
10
9
|
maxframe_client/clients/framedriver.py,sha256=Rn09529D2qBTgNGc0oCY0l7b3FgzT87TqS1nujGQaHw,4463
|
|
11
|
-
maxframe_client/tests/test_session.py,sha256=
|
|
10
|
+
maxframe_client/tests/test_session.py,sha256=F6cT1Lgudm2KHK6YpxpxiDveJdHGChRc4jhuEvDBP6k,9325
|
|
12
11
|
maxframe_client/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
13
12
|
maxframe_client/tests/test_fetcher.py,sha256=q7kYCznM6WSxx9TCbHrxs7Zy1L2a5zu9D-Pi1XNgQzg,3516
|
|
14
|
-
maxframe_client/session/task.py,sha256=
|
|
13
|
+
maxframe_client/session/task.py,sha256=v0tnS2QtkiNt7D47l_3QjXOqNqlkD7NGL8dJ_h4Fr_E,11101
|
|
15
14
|
maxframe_client/session/graph.py,sha256=nwILNOIVaIf4E3xWffTAAlRsKRYU_zGW3oVO10du8Xw,4351
|
|
16
15
|
maxframe_client/session/__init__.py,sha256=KPqhSlAJiuUz8TC-z5o7mHDVXzLSqWwrZ33zNni7piY,832
|
|
17
16
|
maxframe_client/session/consts.py,sha256=R37BxDF3kgCy0qmDdwLaH5jB7mb7SzfYV6g9yHBKAwk,1344
|
|
18
|
-
maxframe_client/session/odps.py,sha256=
|
|
17
|
+
maxframe_client/session/odps.py,sha256=26UjVEIxrTpYtfHxdd-h1aF4OL9TD38UE6aqWeE_8pA,19363
|
|
19
18
|
maxframe_client/session/tests/test_task.py,sha256=lDdw3gToaM3xSaRXEmHUoAo2h0id7t4v_VvpdKxQAao,3279
|
|
20
19
|
maxframe_client/session/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
21
20
|
maxframe/_utils.pyx,sha256=I4kmfhNr-xXK2ak22dr4Vwahzn-JmTaYctbL3y9_UBQ,17017
|
|
22
21
|
maxframe/conftest.py,sha256=ZzwKhGp7LAVpzQYJkniwIUQqIegcaDQAhyzDyU2qld4,4264
|
|
23
|
-
maxframe/_utils.cpython-311-darwin.so,sha256=
|
|
22
|
+
maxframe/_utils.cpython-311-darwin.so,sha256=KdCLmxyo9OvCQOV5kPmtDuKob-AlozqAASg8WiAt4pk,387984
|
|
24
23
|
maxframe/opcodes.py,sha256=1Da6d3a82mecIHmnyZve4gSH_KN-q3Snl0nSygue2Ng,10191
|
|
25
24
|
maxframe/env.py,sha256=_K499f7giN7Iu9f39iI9p_naaEDoJ0rx8dInbzqFOVI,1402
|
|
26
25
|
maxframe/mixin.py,sha256=HBAeWYGb7N6ZIgkA-YpkKiSY1GetcEVNTuMb0ieznBs,3524
|
|
27
|
-
maxframe/protocol.py,sha256=
|
|
26
|
+
maxframe/protocol.py,sha256=VfJNsUYPUwJ73ZpMMMranrN9F2pAJPmcZYuHcSAXQRs,17817
|
|
28
27
|
maxframe/session.py,sha256=o2jp5NQP1pVMkp4AujN_3DB1HffZ0rMd5EbYZiLJxls,36205
|
|
29
28
|
maxframe/__init__.py,sha256=SqTFS_1o2HDuVY1mhS0ELlqDuM-biwM_MN0EYGkJLf0,1004
|
|
30
|
-
maxframe/utils.py,sha256=
|
|
31
|
-
maxframe/extension.py,sha256=
|
|
32
|
-
maxframe/errors.py,sha256=
|
|
29
|
+
maxframe/utils.py,sha256=E9BbGYrwW4JMCM6BweUESSnGrZGQ7JZvnnFemvKOSoQ,34372
|
|
30
|
+
maxframe/extension.py,sha256=F5XTYzW5hNw0AIQz3d6u6Yk7adDdiV4c-HD7bF0X1FI,2659
|
|
31
|
+
maxframe/errors.py,sha256=vHcpVrKRHmoZPa6IwsdDT-jOZUTlhCp8c0e8F2C-5uU,966
|
|
33
32
|
maxframe/udf.py,sha256=-FzQCuV0GNyo3SH1r3rPQ3QMAydhYtE7KI8ff4Mv_PU,4288
|
|
34
33
|
maxframe/typing_.py,sha256=fzHETru3IOZAJwU9I7n_ib3wHuQRJ9XFVmAk7WpqkMo,1096
|
|
35
|
-
maxframe/codegen.py,sha256=
|
|
34
|
+
maxframe/codegen.py,sha256=qO5Q8XbqIVGvWphyIqR6eimboIsbVV7KEBLH7e9sIYY,17809
|
|
36
35
|
maxframe/_utils.pxd,sha256=AhJ4vA_UqZqPshi5nvIZq1xgr80fhIVQ9dm5-UdkYJ8,1154
|
|
37
36
|
maxframe/dataframe/arrays.py,sha256=RWzimUcrds5CsIlPausfJAkLUjcktBSSXwdXyUNKEtU,28752
|
|
38
37
|
maxframe/dataframe/__init__.py,sha256=T08TZjNg2yWh7RmI0hX9PiBTlD5e9L_s3KnKsSLnBFA,2237
|
|
@@ -40,7 +39,7 @@ maxframe/dataframe/core.py,sha256=b27b0XomeqISCPxltavESlueTTYEXF5wjtrTKEZtld4,74
|
|
|
40
39
|
maxframe/dataframe/initializer.py,sha256=4BpZJB8bbyFnABUYWBrk_qzzrogEsWgFuU21Ma9IsjY,10264
|
|
41
40
|
maxframe/dataframe/utils.py,sha256=uaRpQp5Lciow-9UBDnuUacYvi4erJgyvTDnQziRDkFU,44272
|
|
42
41
|
maxframe/dataframe/operators.py,sha256=T7Ik1shfoyrMZ1x0wHXG26bsod1_YjMGQgGAFNpH6k0,7871
|
|
43
|
-
maxframe/dataframe/statistics/corr.py,sha256=
|
|
42
|
+
maxframe/dataframe/statistics/corr.py,sha256=3dExebs9QC8GBaZZUSKXrN2eYt-hWMayJ2MHHzTn-8s,9483
|
|
44
43
|
maxframe/dataframe/statistics/quantile.py,sha256=eH-kAg-SZ5JdI8K3P6p9gNeDu4cbJaUC3Dt-zoCoTv0,11713
|
|
45
44
|
maxframe/dataframe/statistics/__init__.py,sha256=Ate3HERUCrjhRoGhpR9SNZA5JHlvuIVSrHgYPEcJd6Q,1084
|
|
46
45
|
maxframe/dataframe/statistics/tests/test_statistics.py,sha256=3kpFq9EoUI8PBikQGwMoMN7vwBTeoQeF3XG2h2Hzcu0,2730
|
|
@@ -61,7 +60,7 @@ maxframe/dataframe/misc/pct_change.py,sha256=dNvj5VDPndRqc8lPweWcTiSz4p4oSibeQ2y
|
|
|
61
60
|
maxframe/dataframe/misc/duplicated.py,sha256=JPtBDLaxlVUqFBU3U3bqGnKQNaOcKwS5sdVfBFJt-Uo,8534
|
|
62
61
|
maxframe/dataframe/misc/pivot_table.py,sha256=YoKjjtOw2Z6KU3q3opAFag1gICz5Kc_VIcKNs3ur62A,9520
|
|
63
62
|
maxframe/dataframe/misc/map.py,sha256=RbUi0xPzT0hnsKid5RA5uHYyTeBnpzXlukR48Ntooxk,8149
|
|
64
|
-
maxframe/dataframe/misc/memory_usage.py,sha256=
|
|
63
|
+
maxframe/dataframe/misc/memory_usage.py,sha256=BPBSYNFvxTYG5kXdX-ogLn1_c_u__G9UeWkEIKrnfyA,7889
|
|
65
64
|
maxframe/dataframe/misc/isin.py,sha256=POBR3Gvwlu2TH1AWWvKW12XOlu8HF2dJuBCBbOHgq74,6931
|
|
66
65
|
maxframe/dataframe/misc/shift.py,sha256=feTqtnIRm0YGha5Ps_feQOqHLxSbicnOMbthmZc6pEM,8935
|
|
67
66
|
maxframe/dataframe/misc/transpose.py,sha256=-Q7iFtafKKibpZKWYxf0bUg4zIZPTupvY4hkdAlB3Gw,3636
|
|
@@ -76,8 +75,8 @@ maxframe/dataframe/misc/eval.py,sha256=-2svFR5uraqnzKeCS2bJRx5POHRxqST2lbk6qzee7
|
|
|
76
75
|
maxframe/dataframe/misc/value_counts.py,sha256=ds3EVCs0jL1hcTWREzPgb7-20ezcYSNvu9ZtCYqrvfk,5492
|
|
77
76
|
maxframe/dataframe/misc/select_dtypes.py,sha256=xEdLNun58kvp-Vbl3u2cr8kaXFG8GsIU2BMfo7tFCM8,3144
|
|
78
77
|
maxframe/dataframe/misc/drop.py,sha256=-RHIQWek2LUTK8lOILNpCWYftCY3-I3DHSP0XT4uHBc,13029
|
|
79
|
-
maxframe/dataframe/misc/apply.py,sha256=
|
|
80
|
-
maxframe/dataframe/misc/tests/test_misc.py,sha256=
|
|
78
|
+
maxframe/dataframe/misc/apply.py,sha256=UQf9LsH3d33bUaiHNGwyvz_wjoBYro9YbuzAChcU5G0,23436
|
|
79
|
+
maxframe/dataframe/misc/tests/test_misc.py,sha256=5yF01TfqHmNBayMGWc5_4bS8vEc2bQ-kPMSwn54ytM0,15630
|
|
81
80
|
maxframe/dataframe/misc/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
82
81
|
maxframe/dataframe/datasource/index.py,sha256=D7PcfIWS-6Hv1-8o6adNesditOAa9kb4JOQK1WlqNDQ,4401
|
|
83
82
|
maxframe/dataframe/datasource/read_csv.py,sha256=cpp6kX0DVrqY0KticL1h11tckobSzz1gyK4Sf2puUjo,24140
|
|
@@ -142,7 +141,9 @@ maxframe/dataframe/groupby/tests/test_groupby.py,sha256=VsHDG-UaZUXlZ1l498y44ecf
|
|
|
142
141
|
maxframe/dataframe/datastore/__init__.py,sha256=Ujd4ix4UJ7Zq-sV2pXTRDvZkKUvtt8sr-FfiUoi6Kh4,784
|
|
143
142
|
maxframe/dataframe/datastore/core.py,sha256=hLGhqYxX73tq9sOFxMyYBRMawTnsVQqluW5FcE3YHfE,743
|
|
144
143
|
maxframe/dataframe/datastore/to_csv.py,sha256=xVfpEsicD5A5uXLSdCN08K8uGyWB4QxnRcAbgBVUzbs,7747
|
|
145
|
-
maxframe/dataframe/datastore/to_odps.py,sha256=
|
|
144
|
+
maxframe/dataframe/datastore/to_odps.py,sha256=5ZS22l8QZQjOd6pGQL-rEUP5gqu8DMa1fqdL6TTx_Zg,6413
|
|
145
|
+
maxframe/dataframe/datastore/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
146
|
+
maxframe/dataframe/datastore/tests/test_to_odps.py,sha256=EaFprN1mErrqqy54Rzbw6PQxPbBCgxDP0E055RIIH0g,1296
|
|
146
147
|
maxframe/dataframe/fetch/__init__.py,sha256=E3VjxLRKjtr-D__K-c0aRETvBG7CQRG1iEtH0Qghq0s,653
|
|
147
148
|
maxframe/dataframe/fetch/core.py,sha256=z61_orBtOIrKFpFdJTNqyPhOw5ZCGe6QkXnDrGdMy6U,3338
|
|
148
149
|
maxframe/dataframe/reduction/max.py,sha256=CqaueIN3cuF7vlE2rt2MAcXAD3Syd_R8W2dzcFhTmV0,1660
|
|
@@ -239,7 +240,7 @@ maxframe/dataframe/arithmetic/tests/test_arithmetic.py,sha256=Zm0hwTo_NqFAa3iDmY
|
|
|
239
240
|
maxframe/dataframe/indexing/reset_index.py,sha256=uzGszHfkhwZgZtEaygy5UPrvHPNPXgWZaTOXdNxGBT8,13122
|
|
240
241
|
maxframe/dataframe/indexing/iat.py,sha256=ANURJ8qn_UitgM01gDPeaQOlSBxbk0pmN4Yr-iPRXM8,1127
|
|
241
242
|
maxframe/dataframe/indexing/loc.py,sha256=ZmiK3a2f-krkXFvNLSlzRRa6GWGiAAXk_3mWZC_MqdQ,14845
|
|
242
|
-
maxframe/dataframe/indexing/align.py,sha256=
|
|
243
|
+
maxframe/dataframe/indexing/align.py,sha256=hEuoaNX4bI9LBWp_1kGG7GSs3PDF95tDXo7GX5nypGI,12085
|
|
243
244
|
maxframe/dataframe/indexing/rename.py,sha256=W4CV2FK9Wt15GWukHbeWi7scXwiVL1ZRoXeAy7zIsLQ,13547
|
|
244
245
|
maxframe/dataframe/indexing/setitem.py,sha256=PgVZr2A_joTHz9GUbnGfuSI28qSnwe-n84yKFJagLUc,5004
|
|
245
246
|
maxframe/dataframe/indexing/where.py,sha256=3h64jI_tXmWAu1ZvfeS58h8nUfBN7K7OZ0C22_5-_uk,8567
|
|
@@ -275,22 +276,22 @@ maxframe/learn/contrib/pytorch/__init__.py,sha256=koagbwLwH1VNLTWYx29ckatBChZ_f9
|
|
|
275
276
|
maxframe/learn/contrib/pytorch/run_function.py,sha256=oMDMVqDFQJ5d8DllZrqqRmBT2lx1cTmAv0hdQlO2GrY,3244
|
|
276
277
|
maxframe/learn/contrib/pytorch/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
277
278
|
maxframe/learn/contrib/pytorch/tests/test_pytorch.py,sha256=ztAli4QwNUDfvM7M2LulJItFNWlUDFc_MByDF2KAcTI,1402
|
|
278
|
-
maxframe/core/__init__.py,sha256=
|
|
279
|
+
maxframe/core/__init__.py,sha256=BrapLnnMHHg-AM_OJcAgGyvD7Fwy4mdl1ceMmzImpeU,1616
|
|
279
280
|
maxframe/core/mode.py,sha256=uRzQDTu471APFDOx12NkTgZiPB-YiCuPhmakhEtIz3M,3011
|
|
280
281
|
maxframe/core/base.py,sha256=3ZNLtl0jZWY5ZIwmIJF1-khF-DYxoeHxAMMiOCwpaBA,4535
|
|
281
282
|
maxframe/core/entity/tileables.py,sha256=b9jn_OQ-FQkbw7E7jMLjoJ4-VR7tBS8Mbx_j4iZ7uNc,13535
|
|
282
|
-
maxframe/core/entity/__init__.py,sha256=
|
|
283
|
+
maxframe/core/entity/__init__.py,sha256=QarGyhv2B6MFlHaI8v6lOUsMIRoiHd1Vm1U4z959U3Y,1214
|
|
283
284
|
maxframe/core/entity/core.py,sha256=t7Ex9Yb7A1h_XwyRG88Fx4ZOai-NQKi2luRVS_jFPEo,4018
|
|
284
285
|
maxframe/core/entity/utils.py,sha256=IuNgFmBQFRioAA1hgZe6nTEggOmDY-iooZqncQQrV28,942
|
|
285
286
|
maxframe/core/entity/executable.py,sha256=HKXHXdPIyxg9i-OWmJxIY3KfXwX0x3xN9QcR5Xhc7dQ,10938
|
|
286
287
|
maxframe/core/entity/output_types.py,sha256=uqApvFK8w6_aMxRets69dTwD1ndBDgVgqDCflyt9ubg,2645
|
|
287
|
-
maxframe/core/entity/objects.py,sha256=
|
|
288
|
+
maxframe/core/entity/objects.py,sha256=TikNltV350KxFxP1xNovK7CONda6K4PixmqD_ZLOR-Q,1840
|
|
288
289
|
maxframe/core/entity/fuse.py,sha256=47U6MHRzA2ZvUi-kJb7b3mC_gN07x3yebBgX2Jj7VZo,2277
|
|
289
290
|
maxframe/core/entity/chunks.py,sha256=yNSLCWOpA_Z6aGr6ZI32dIJf3xPdRBWbvdsl8sTM3BE,2134
|
|
290
291
|
maxframe/core/graph/__init__.py,sha256=rnsXwW0ouh1f7SVtq73-PzLE-MBM6Op_0l6J7b7wGRE,821
|
|
291
|
-
maxframe/core/graph/core.cpython-311-darwin.so,sha256=
|
|
292
|
+
maxframe/core/graph/core.cpython-311-darwin.so,sha256=oVQCNuAb-CiXTnpZYLSkntdV1sdSXw2IE1HskVkgDhU,325384
|
|
292
293
|
maxframe/core/graph/entity.py,sha256=56gjXyDXN-TTPm3AQOxuRVQbb_fguKFDL_Xm7i95XEk,5559
|
|
293
|
-
maxframe/core/graph/core.pyx,sha256=
|
|
294
|
+
maxframe/core/graph/core.pyx,sha256=kyqE5-X9Tc82wU4N_zsf8jNthAHWHTVRNFQWNNbzgpM,15923
|
|
294
295
|
maxframe/core/graph/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
295
296
|
maxframe/core/graph/tests/test_graph.py,sha256=kZfe_SfMOoHjEfXvtVtn0RjK4lOd-tFasxSpfL4G1WE,7462
|
|
296
297
|
maxframe/core/graph/builder/__init__.py,sha256=BV5tAiZ-bJE0FBGSCEnfqKNwBNHgvB9aSzEp0PY6SnA,702
|
|
@@ -309,32 +310,32 @@ maxframe/core/operator/fuse.py,sha256=0RGemF99gQCwV4aEk-K6T5KAGToO-487dFk8LyYDIZ
|
|
|
309
310
|
maxframe/core/operator/base.py,sha256=nxuSKjbBzDrItM9PGmFo8RLwParazu525jMLWj0kXkM,15251
|
|
310
311
|
maxframe/core/operator/tests/test_core.py,sha256=57aICnc5VLqdVK7icAORTWC81bSjBxeeVWIJcha9J_0,1691
|
|
311
312
|
maxframe/core/operator/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
312
|
-
maxframe/config/config.py,sha256=
|
|
313
|
+
maxframe/config/config.py,sha256=acJ2WVY1JDBsty2VPTn5Twtp2jt4c9BUH7ZDELiNxVE,13734
|
|
313
314
|
maxframe/config/validators.py,sha256=2m9MrkjDUFiU4PPaWIw8tjwMaOy8AYmuJFqVnnY8IMY,1615
|
|
314
315
|
maxframe/config/__init__.py,sha256=g5lN3nP2HTAXa6ExGxU1NwU1M9ulYPmAcsV-gU7nIW8,656
|
|
315
316
|
maxframe/config/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
316
317
|
maxframe/config/tests/test_validators.py,sha256=U_7yKSl0FdVdDwKU1EsnCzNWaOXi8xrIC08x7hb_O4c,1240
|
|
317
318
|
maxframe/config/tests/test_config.py,sha256=Cx3buKli4F77zwJaB-vnUSlE9LUbt3ObHW38cIE2dDs,2736
|
|
318
|
-
maxframe/serialization/exception.py,sha256=
|
|
319
|
-
maxframe/serialization/core.pxd,sha256=
|
|
320
|
-
maxframe/serialization/pandas.py,sha256=
|
|
321
|
-
maxframe/serialization/core.pyi,sha256=
|
|
319
|
+
maxframe/serialization/exception.py,sha256=2Ubi2ld5XpduqAln26q0T67XLj-OpdwW1Z-nyC_wtCI,2993
|
|
320
|
+
maxframe/serialization/core.pxd,sha256=eBrSXiAPlX83Kbwml5IKJvqsIT03lPCeS6is9HplLiU,1501
|
|
321
|
+
maxframe/serialization/pandas.py,sha256=Fj0HZsnTyZqDW4pTiz2AX_Clly6NwjAbQoaMhYwCocs,7315
|
|
322
|
+
maxframe/serialization/core.pyi,sha256=a3CQxlJv5aYyy__VNKEq5XsaHE-n0MPKE_9CcWu8Q34,2142
|
|
322
323
|
maxframe/serialization/arrow.py,sha256=VnGxNLU9UV_cUPTze43bEFCIbYLAOZnp2pAwVJbAIzQ,3418
|
|
323
324
|
maxframe/serialization/__init__.py,sha256=9eSnoDww1uw2DAXEBBTB2atJQHzd-38XVxrCkoaypxA,921
|
|
324
325
|
maxframe/serialization/maxframe_objects.py,sha256=R9WEjbHL0Kr56OGkYDU9fcGi7gII6fGlXhi6IyihTsM,1365
|
|
325
326
|
maxframe/serialization/numpy.py,sha256=8_GSo45l_eNoMn4NAGEb9NLXY_9i4tf9KK4EzG0mKpA,3213
|
|
326
327
|
maxframe/serialization/scipy.py,sha256=hP0fAW0di9UgJrGtANB2S8hLDbFBtR8p5NDqAMt5rDI,2427
|
|
327
|
-
maxframe/serialization/core.cpython-311-darwin.so,sha256=
|
|
328
|
-
maxframe/serialization/core.pyx,sha256=
|
|
328
|
+
maxframe/serialization/core.cpython-311-darwin.so,sha256=YSSooGlEwyaB5scRzWcjLYZAiAcW5J5mOnLFetLbvBA,537480
|
|
329
|
+
maxframe/serialization/core.pyx,sha256=ZLVh7W7LgUb4KPb7rtuezRL6sQC4GNb3hLndAeSbiyU,35198
|
|
329
330
|
maxframe/serialization/tests/test_serial.py,sha256=Wj_I6CBQMaOtE8WtqdUaBoU8FhBOihht6SfeHOJV-zU,12511
|
|
330
331
|
maxframe/serialization/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
331
332
|
maxframe/serialization/serializables/field.py,sha256=atVgX-9rsVG1fTev7vjQArVwIEaCRjXoSEjpQ3mh6bA,16015
|
|
332
333
|
maxframe/serialization/serializables/__init__.py,sha256=_wyFZF5QzSP32wSXlXHEPl98DN658I66WamP8XPJy0c,1351
|
|
333
|
-
maxframe/serialization/serializables/core.py,sha256=
|
|
334
|
+
maxframe/serialization/serializables/core.py,sha256=C8J2lxNUNQWgoKc5rF-Eb8H7JSqFDRZpvM9eEUYjxCY,13796
|
|
334
335
|
maxframe/serialization/serializables/field_type.py,sha256=Feh09hu8XyaxS5MaJ4za_pcvqJVuMkOeGxwQ9OuJw6I,14865
|
|
335
336
|
maxframe/serialization/serializables/tests/test_field_type.py,sha256=T3ebXbUkKveC9Pq1nIl85e4eYascFeJ52d0REHbz5jo,4381
|
|
336
337
|
maxframe/serialization/serializables/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
337
|
-
maxframe/serialization/serializables/tests/test_serializable.py,sha256=
|
|
338
|
+
maxframe/serialization/serializables/tests/test_serializable.py,sha256=P6BCYvm-0HxlEHruyw-SIdVBywxQw16JUMws_lvqTk0,9867
|
|
338
339
|
maxframe/odpsio/tableio.py,sha256=TiXZViZMqWq_RaSCCcw8EJuj7ymsKe7chIkUthrnS7I,10148
|
|
339
340
|
maxframe/odpsio/arrow.py,sha256=5GyAOaQLY_UeJS1CL98zNQpLMw5OfPrcI_YHP-G5Bas,3793
|
|
340
341
|
maxframe/odpsio/__init__.py,sha256=HcxZsE4hRwbhtE-ZXhDWZMmQlv-2dOTvQq2NajhGEo4,799
|
|
@@ -345,16 +346,17 @@ maxframe/odpsio/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca
|
|
|
345
346
|
maxframe/odpsio/tests/test_schema.py,sha256=XTixGKHOWiprp5PZVOo2q9h4-HAUPL8vTUmoeXQDIiM,11958
|
|
346
347
|
maxframe/odpsio/tests/test_arrow.py,sha256=SQ9EmI9_VOOC8u6Rg6nh3IPC2fPbLvJ9HwtpMNDRhL8,3106
|
|
347
348
|
maxframe/odpsio/tests/test_volumeio.py,sha256=UEqFANuPKyFtlIh2JNi-LoixH52bxsgHdxu3himnEvs,3022
|
|
348
|
-
maxframe/tests/test_utils.py,sha256=
|
|
349
|
-
maxframe/tests/test_protocol.py,sha256=
|
|
349
|
+
maxframe/tests/test_utils.py,sha256=imfe7sN1_4EjWuT4qMYMwjOjgL0t5oewyhebBGPDBhY,11504
|
|
350
|
+
maxframe/tests/test_protocol.py,sha256=9DWr3z1AI2DUMnLyak91PKSfV_ILkOtwAZPCmM42kcg,6103
|
|
350
351
|
maxframe/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
351
|
-
maxframe/tests/utils.py,sha256=
|
|
352
|
+
maxframe/tests/utils.py,sha256=YfK3o5VRSowVFnertoNmog3ABzNoeoiIF6MRNf4FV-U,4576
|
|
352
353
|
maxframe/tests/test_codegen.py,sha256=GMrnpSb2eyB_nmuv8-_p47Kw877ElKS3BP52SpqZNIQ,2208
|
|
353
|
-
maxframe/lib/wrapped_pickle.py,sha256=
|
|
354
|
+
maxframe/lib/wrapped_pickle.py,sha256=HJCb8ERK6clUVgPe529vduMmbMVqBlrQ3W8mH3tYcaE,3836
|
|
354
355
|
maxframe/lib/version.py,sha256=yQ6HkDOvU9X1rpI49auh-qku2g7gIiztgEH6v1urOrk,18321
|
|
355
356
|
maxframe/lib/compression.py,sha256=k9DSrl_dNBsn5azLjBdL5B4WZ6eNvmCrdMbcF1G7JSc,1442
|
|
356
357
|
maxframe/lib/__init__.py,sha256=CzfbLNqqm1yR1i6fDwCd4h1ptuKVDbURFVCb0ra7QNc,642
|
|
357
|
-
maxframe/lib/mmh3.
|
|
358
|
+
maxframe/lib/mmh3.pyi,sha256=AOp_XqbA5-NwepeeBeG0OFJj5tjEAFLzcViyRNZ0eVI,1494
|
|
359
|
+
maxframe/lib/mmh3.cpython-311-darwin.so,sha256=zaOnJHv5J5NvMP-clpMAKiZN-Wq8rXrvr0d0PHIMZZ8,54232
|
|
358
360
|
maxframe/lib/functools_compat.py,sha256=PMSkct9GIbzq-aBwTnggrOLNfLh4xQnYTIFMPblzCUA,2616
|
|
359
361
|
maxframe/lib/mmh3_src/mmh3module.cpp,sha256=9J9eA42eKWTl546fvfQPNuIM3B2jpWSADpgIw3tr2jg,11604
|
|
360
362
|
maxframe/lib/mmh3_src/MurmurHash3.h,sha256=lg5uXUFyMBge2BWRn0FgrqaCFCMfDWoTXD4PQtjHrMA,1263
|
|
@@ -442,7 +444,7 @@ maxframe/tensor/reduction/max.py,sha256=Z6TQSwaDcOmSstjKjntqKfinvF0XWNTGYDvvV-AI
|
|
|
442
444
|
maxframe/tensor/reduction/allclose.py,sha256=8C9E01aUZL-rGjlx_S1zN504peV_7vjjQA3DZSPElOI,2942
|
|
443
445
|
maxframe/tensor/reduction/nanmin.py,sha256=hq3TE7pM9HGakNEOIE9QPHG2O8soa2uPBrVsVHYsYyw,3947
|
|
444
446
|
maxframe/tensor/reduction/nanvar.py,sha256=HmF0rOtjKFC-Rb0RubU5r5eDnf1HDf6W7knz0OxTOTc,5418
|
|
445
|
-
maxframe/tensor/reduction/count_nonzero.py,sha256=
|
|
447
|
+
maxframe/tensor/reduction/count_nonzero.py,sha256=3lzihwV17qw0hPyI7k-iq7i-L3ToMMRX5MgoRvlONLI,2721
|
|
446
448
|
maxframe/tensor/reduction/nanmean.py,sha256=Ar_BbvsM600v3NkJIPUNsHo5Fv2S_INwOOEyRgpnc3A,3944
|
|
447
449
|
maxframe/tensor/reduction/nancumsum.py,sha256=r47LTZ65-m6u1vr-zoxKw50Q3wOg2gwWy3ewHtV1jRg,3283
|
|
448
450
|
maxframe/tensor/reduction/nansum.py,sha256=2x-RMKHxN9ikE8tm455wpKtYT1i-lKtuE03mKQopzA0,4066
|
|
@@ -568,7 +570,7 @@ maxframe/tensor/arithmetic/sin.py,sha256=Ux8mQS-pb3F7PCD_35Ghl7p2e2yF2jiS_1WC9zi
|
|
|
568
570
|
maxframe/tensor/arithmetic/reciprocal.py,sha256=q3TKbF209Kbv7HD0hM9AF7xlQ9zXHrpHaFc9dHFuplE,2375
|
|
569
571
|
maxframe/tensor/arithmetic/bitxor.py,sha256=l1bRVnzHSa7N7-nd2MzDxF33guNoml8mPB9t9_0QpMc,2908
|
|
570
572
|
maxframe/tensor/arithmetic/tests/__init__.py,sha256=CzfbLNqqm1yR1i6fDwCd4h1ptuKVDbURFVCb0ra7QNc,642
|
|
571
|
-
maxframe/tensor/arithmetic/tests/test_arithmetic.py,sha256=
|
|
573
|
+
maxframe/tensor/arithmetic/tests/test_arithmetic.py,sha256=_zCcx-fzGoKjzkv90bkz3zzOs3u2afvKVotCWF-xCZU,10995
|
|
572
574
|
maxframe/tensor/indexing/choose.py,sha256=TNsRP_1zoMnqfJyqk_RgPtRPFCisEXq5CMh3FUmPZ-8,7584
|
|
573
575
|
maxframe/tensor/indexing/nonzero.py,sha256=JN5TyPzS1LIIjIaieXsDkffCjuq-CPBUDG3qMvNsIWI,3646
|
|
574
576
|
maxframe/tensor/indexing/slice.py,sha256=VbalHoaXUGulPjskcQ4PoiZQhB2q3P1R8MrGKY2MqGw,1022
|
|
@@ -634,12 +636,12 @@ maxframe/tensor/random/tests/__init__.py,sha256=CzfbLNqqm1yR1i6fDwCd4h1ptuKVDbUR
|
|
|
634
636
|
maxframe/tensor/random/tests/test_random.py,sha256=2hGaik9A783PFuuxIrhCDZ2O-SYKwUh98LKPwf1psLs,4275
|
|
635
637
|
maxframe/tensor/base/astype.py,sha256=zeLfyWkuc1LxMIiIO6ghZ_enR7IPgq0Hy4O18h8JQPk,4394
|
|
636
638
|
maxframe/tensor/base/where.py,sha256=fMGBfppo4QToHX-B3rtTorstz83m8uWWhOQj6Qbu34U,4000
|
|
637
|
-
maxframe/tensor/base/unique.py,sha256=
|
|
639
|
+
maxframe/tensor/base/unique.py,sha256=52OM0UvbxbgvpjSGcTdCRi3fJUzFA-GxZpn7RExJGEo,6738
|
|
638
640
|
maxframe/tensor/base/__init__.py,sha256=FMnuIAaGUObPZpXBnN-9eTSmmdq0Cdb-VI_JNHKVy3Q,1079
|
|
639
641
|
maxframe/tensor/base/transpose.py,sha256=yDfr1vD6doNlsuKuU94daE0IgIwGMuyBfXhKauQ1UaM,3414
|
|
640
642
|
maxframe/tensor/base/ravel.py,sha256=pJkez1NHoLqVMBPm5aA8uMNFeWURTAJV_iU98Vqr-50,3173
|
|
641
643
|
maxframe/tensor/base/broadcast_to.py,sha256=p0hi128OWlj3lXmacvxMhZOjUCq8fiA3yjy9nESZXgE,2686
|
|
642
|
-
maxframe/tensor/base/atleast_1d.py,sha256=
|
|
644
|
+
maxframe/tensor/base/atleast_1d.py,sha256=rCw_Ik6Y4isiMuC2Kvs0F7nDdSvx9RPahoq_v6D66Jo,1918
|
|
643
645
|
maxframe/tensor/base/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
|
|
644
646
|
maxframe/tensor/base/tests/test_base.py,sha256=syedkA0jMjevYouCL3vCMuWpJ-3hfOc28wKXqF_MMno,2843
|
|
645
647
|
maxframe/remote/run_script.py,sha256=Z1j662AwDF9sr-z1xnPTlrfSTixi2RBZjccXEilfpGA,3556
|
maxframe_client/__init__.py
CHANGED
maxframe_client/session/odps.py
CHANGED
|
@@ -31,6 +31,11 @@ from maxframe.dataframe import read_odps_table
|
|
|
31
31
|
from maxframe.dataframe.core import DATAFRAME_TYPE, SERIES_TYPE
|
|
32
32
|
from maxframe.dataframe.datasource import PandasDataSourceOperator
|
|
33
33
|
from maxframe.dataframe.datasource.read_odps_table import DataFrameReadODPSTable
|
|
34
|
+
from maxframe.errors import (
|
|
35
|
+
MaxFrameError,
|
|
36
|
+
NoTaskServerResponseError,
|
|
37
|
+
SessionAlreadyClosedError,
|
|
38
|
+
)
|
|
34
39
|
from maxframe.odpsio import HaloTableIO, pandas_to_arrow, pandas_to_odps_schema
|
|
35
40
|
from maxframe.protocol import (
|
|
36
41
|
DagInfo,
|
|
@@ -144,10 +149,15 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
|
|
|
144
149
|
|
|
145
150
|
schema, table_meta = pandas_to_odps_schema(t, unknown_as_string=True)
|
|
146
151
|
if self._odps_entry.exist_table(table_meta.table_name):
|
|
147
|
-
self._odps_entry.delete_table(
|
|
152
|
+
self._odps_entry.delete_table(
|
|
153
|
+
table_meta.table_name, hints=options.sql.settings
|
|
154
|
+
)
|
|
148
155
|
table_name = build_temp_table_name(self.session_id, t.key)
|
|
149
156
|
table_obj = self._odps_entry.create_table(
|
|
150
|
-
table_name,
|
|
157
|
+
table_name,
|
|
158
|
+
schema,
|
|
159
|
+
lifecycle=options.session.temp_table_lifecycle,
|
|
160
|
+
hints=options.sql.settings,
|
|
151
161
|
)
|
|
152
162
|
|
|
153
163
|
data = t.op.get_data()
|
|
@@ -264,8 +274,10 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
|
|
|
264
274
|
self, dag_info: DagInfo, tileables: List, progress: Progress
|
|
265
275
|
):
|
|
266
276
|
start_time = time.time()
|
|
277
|
+
session_id = dag_info.session_id
|
|
267
278
|
dag_id = dag_info.dag_id
|
|
268
279
|
wait_timeout = 10
|
|
280
|
+
server_no_response_time = None
|
|
269
281
|
with enter_mode(build=True, kernel=True):
|
|
270
282
|
key_to_tileables = {t.key: t for t in tileables}
|
|
271
283
|
|
|
@@ -280,9 +292,37 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
|
|
|
280
292
|
if timeout_val <= 0:
|
|
281
293
|
raise TimeoutError("Running DAG timed out")
|
|
282
294
|
|
|
283
|
-
|
|
284
|
-
self.
|
|
285
|
-
|
|
295
|
+
try:
|
|
296
|
+
dag_info: DagInfo = await self.ensure_async_call(
|
|
297
|
+
self._caller.get_dag_info, dag_id
|
|
298
|
+
)
|
|
299
|
+
server_no_response_time = None
|
|
300
|
+
except (NoTaskServerResponseError, SessionAlreadyClosedError) as ex:
|
|
301
|
+
# when we receive SessionAlreadyClosedError after NoTaskServerResponseError
|
|
302
|
+
# is received, it is possible that task server is restarted and
|
|
303
|
+
# SessionAlreadyClosedError might be flaky. Otherwise, the error
|
|
304
|
+
# should be raised.
|
|
305
|
+
if (
|
|
306
|
+
isinstance(ex, SessionAlreadyClosedError)
|
|
307
|
+
and not server_no_response_time
|
|
308
|
+
):
|
|
309
|
+
raise
|
|
310
|
+
server_no_response_time = server_no_response_time or time.time()
|
|
311
|
+
if (
|
|
312
|
+
time.time() - server_no_response_time
|
|
313
|
+
> options.client.task_restart_timeout
|
|
314
|
+
):
|
|
315
|
+
raise MaxFrameError(
|
|
316
|
+
"Failed to get valid response from service. "
|
|
317
|
+
f"Session {self._session_id}."
|
|
318
|
+
) from None
|
|
319
|
+
await asyncio.sleep(timeout_val)
|
|
320
|
+
continue
|
|
321
|
+
|
|
322
|
+
if dag_info is None:
|
|
323
|
+
raise SystemError(
|
|
324
|
+
f"Cannot find DAG with ID {dag_id} in session {session_id}"
|
|
325
|
+
)
|
|
286
326
|
progress.value = dag_info.progress
|
|
287
327
|
if dag_info.status != DagStatus.RUNNING:
|
|
288
328
|
break
|