maxframe 1.0.0rc2__cp310-cp310-win_amd64.whl → 1.0.0rc3__cp310-cp310-win_amd64.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.

Files changed (106) hide show
  1. maxframe/_utils.cp310-win_amd64.pyd +0 -0
  2. maxframe/codegen.py +3 -2
  3. maxframe/config/config.py +16 -9
  4. maxframe/config/validators.py +42 -12
  5. maxframe/conftest.py +13 -2
  6. maxframe/core/__init__.py +2 -13
  7. maxframe/core/entity/__init__.py +0 -4
  8. maxframe/core/entity/objects.py +45 -2
  9. maxframe/core/entity/output_types.py +0 -3
  10. maxframe/core/entity/tests/test_objects.py +43 -0
  11. maxframe/core/entity/tileables.py +5 -78
  12. maxframe/core/graph/__init__.py +2 -2
  13. maxframe/core/graph/builder/__init__.py +0 -1
  14. maxframe/core/graph/builder/base.py +5 -4
  15. maxframe/core/graph/builder/tileable.py +4 -4
  16. maxframe/core/graph/builder/utils.py +4 -8
  17. maxframe/core/graph/core.cp310-win_amd64.pyd +0 -0
  18. maxframe/core/graph/entity.py +9 -33
  19. maxframe/core/operator/__init__.py +2 -9
  20. maxframe/core/operator/base.py +3 -5
  21. maxframe/core/operator/objects.py +0 -9
  22. maxframe/core/operator/utils.py +55 -0
  23. maxframe/dataframe/datasource/read_odps_query.py +1 -1
  24. maxframe/dataframe/datasource/read_odps_table.py +1 -1
  25. maxframe/dataframe/datastore/to_odps.py +1 -1
  26. maxframe/dataframe/operators.py +1 -17
  27. maxframe/dataframe/reduction/core.py +2 -2
  28. maxframe/io/objects/__init__.py +24 -0
  29. maxframe/io/objects/core.py +140 -0
  30. maxframe/io/objects/tensor.py +76 -0
  31. maxframe/io/objects/tests/__init__.py +13 -0
  32. maxframe/io/objects/tests/test_object_io.py +97 -0
  33. maxframe/{odpsio → io/odpsio}/__init__.py +2 -0
  34. maxframe/{odpsio → io/odpsio}/arrow.py +4 -4
  35. maxframe/{odpsio → io/odpsio}/schema.py +5 -5
  36. maxframe/{odpsio → io/odpsio}/tableio.py +10 -4
  37. maxframe/io/odpsio/tests/__init__.py +13 -0
  38. maxframe/{odpsio → io/odpsio}/tests/test_schema.py +3 -3
  39. maxframe/{odpsio → io/odpsio}/tests/test_tableio.py +3 -3
  40. maxframe/{odpsio → io/odpsio}/tests/test_volumeio.py +4 -6
  41. maxframe/io/odpsio/volumeio.py +57 -0
  42. maxframe/learn/contrib/xgboost/classifier.py +26 -2
  43. maxframe/learn/contrib/xgboost/core.py +87 -2
  44. maxframe/learn/contrib/xgboost/dmatrix.py +1 -4
  45. maxframe/learn/contrib/xgboost/predict.py +19 -5
  46. maxframe/learn/contrib/xgboost/regressor.py +3 -10
  47. maxframe/learn/contrib/xgboost/train.py +25 -15
  48. maxframe/{core/operator/fuse.py → learn/core.py} +7 -10
  49. maxframe/lib/mmh3.cp310-win_amd64.pyd +0 -0
  50. maxframe/protocol.py +1 -15
  51. maxframe/remote/core.py +4 -8
  52. maxframe/serialization/__init__.py +1 -0
  53. maxframe/serialization/core.cp310-win_amd64.pyd +0 -0
  54. maxframe/tensor/__init__.py +10 -2
  55. maxframe/tensor/arithmetic/isclose.py +1 -0
  56. maxframe/tensor/arithmetic/tests/test_arithmetic.py +21 -17
  57. maxframe/tensor/core.py +5 -136
  58. maxframe/tensor/datasource/array.py +3 -0
  59. maxframe/tensor/datasource/full.py +1 -1
  60. maxframe/tensor/datasource/tests/test_datasource.py +1 -1
  61. maxframe/tensor/indexing/flatnonzero.py +1 -1
  62. maxframe/tensor/merge/__init__.py +2 -0
  63. maxframe/tensor/merge/concatenate.py +98 -0
  64. maxframe/tensor/merge/tests/test_merge.py +30 -1
  65. maxframe/tensor/merge/vstack.py +70 -0
  66. maxframe/tensor/{base → misc}/__init__.py +2 -0
  67. maxframe/tensor/{base → misc}/atleast_1d.py +0 -2
  68. maxframe/tensor/misc/atleast_2d.py +70 -0
  69. maxframe/tensor/misc/atleast_3d.py +85 -0
  70. maxframe/tensor/misc/tests/__init__.py +13 -0
  71. maxframe/tensor/{base → misc}/transpose.py +22 -18
  72. maxframe/tensor/operators.py +1 -7
  73. maxframe/tensor/random/core.py +1 -1
  74. maxframe/tensor/reduction/count_nonzero.py +1 -0
  75. maxframe/tensor/reduction/mean.py +1 -0
  76. maxframe/tensor/reduction/nanmean.py +1 -0
  77. maxframe/tensor/reduction/nanvar.py +2 -0
  78. maxframe/tensor/reduction/tests/test_reduction.py +12 -1
  79. maxframe/tensor/reduction/var.py +2 -0
  80. maxframe/tensor/utils.py +2 -22
  81. maxframe/typing_.py +4 -1
  82. maxframe/udf.py +8 -9
  83. maxframe/utils.py +15 -61
  84. maxframe-1.0.0rc3.dist-info/METADATA +104 -0
  85. {maxframe-1.0.0rc2.dist-info → maxframe-1.0.0rc3.dist-info}/RECORD +101 -91
  86. {maxframe-1.0.0rc2.dist-info → maxframe-1.0.0rc3.dist-info}/WHEEL +1 -1
  87. maxframe_client/fetcher.py +23 -42
  88. maxframe_client/session/graph.py +8 -2
  89. maxframe_client/session/odps.py +54 -18
  90. maxframe_client/tests/test_fetcher.py +1 -1
  91. maxframe_client/tests/test_session.py +14 -2
  92. maxframe/core/entity/chunks.py +0 -68
  93. maxframe/core/entity/fuse.py +0 -73
  94. maxframe/core/graph/builder/chunk.py +0 -430
  95. maxframe/odpsio/volumeio.py +0 -95
  96. maxframe-1.0.0rc2.dist-info/METADATA +0 -177
  97. /maxframe/{odpsio → core/entity}/tests/__init__.py +0 -0
  98. /maxframe/{tensor/base/tests → io}/__init__.py +0 -0
  99. /maxframe/{odpsio → io/odpsio}/tests/test_arrow.py +0 -0
  100. /maxframe/tensor/{base → misc}/astype.py +0 -0
  101. /maxframe/tensor/{base → misc}/broadcast_to.py +0 -0
  102. /maxframe/tensor/{base → misc}/ravel.py +0 -0
  103. /maxframe/tensor/{base/tests/test_base.py → misc/tests/test_misc.py} +0 -0
  104. /maxframe/tensor/{base → misc}/unique.py +0 -0
  105. /maxframe/tensor/{base → misc}/where.py +0 -0
  106. {maxframe-1.0.0rc2.dist-info → maxframe-1.0.0rc3.dist-info}/top_level.txt +0 -0
@@ -1,55 +1,54 @@
1
1
  maxframe/__init__.py,sha256=RujkARDvD6mhFpR330UQ0UfogvIdae5EjR1euFpTiYA,1036
2
- maxframe/_utils.cp310-win_amd64.pyd,sha256=PiUEGC3z7bl6BbL83EwE3DS1nz-C-PJL_HamnFhm4WY,305152
2
+ maxframe/_utils.cp310-win_amd64.pyd,sha256=FWgfBsWgQbREMbEzqXSCdoRWhxd21r02sXYBfDfwwdk,305152
3
3
  maxframe/_utils.pxd,sha256=_qHN-lCY1FQgDFIrrqA79Ys0SBdonp9kXRMS93xKSYk,1187
4
4
  maxframe/_utils.pyx,sha256=_3p6aJEJ6WZYLcNZ6o4DxoxsxqadTlJXFlgDeFPxqUQ,17564
5
- maxframe/codegen.py,sha256=4CpUo4qKAP9vPSOl1RaVo0kZ17DyhRqSW76fKz_Xu5o,18131
6
- maxframe/conftest.py,sha256=lmXHAQEA6b2k8s2HHOsZdBeGT2a0XEm44rZLU8OpWyg,4497
5
+ maxframe/codegen.py,sha256=14zhlXF2O0ET6Om_F5zxiUMuyq-bqpLpwcEl_zeOChY,18190
6
+ maxframe/conftest.py,sha256=fx0swj3k0NYVEIn8I8m-as5PK_KkbhtHKmB7lDOswWA,4878
7
7
  maxframe/env.py,sha256=xY4wjMWIJ4qLsFAQ5F-X5CrVR7dDSWiryPXni0YSK5c,1435
8
8
  maxframe/errors.py,sha256=nhQVjRbH5EsyLZhyAufvHpMhfDN6eR8vcrv4sjaI7p8,1000
9
9
  maxframe/extension.py,sha256=XKgK2b42i-jfnLc0lBPiBMsGA6HMQ4a12mJc09tMAFc,2752
10
10
  maxframe/mixin.py,sha256=QfX0KqVIWDlVDSFs0lwdzLexw7lS7W_IUuK7aY1Ib8c,3624
11
11
  maxframe/opcodes.py,sha256=4Gj2svgrNNxylfUbQYs8WbDqTpoCoLtlNCtAYdHr-BU,10781
12
- maxframe/protocol.py,sha256=qutT0HUB2-7Wq36621aPbwZe1OcG-a4lxfVBvrgvW2g,19919
12
+ maxframe/protocol.py,sha256=1chsSG184gWP4d6GuobNARy5qJRFbQziqSfmBpORa9I,19378
13
13
  maxframe/session.py,sha256=CfDT2iwjl5NAisPrZ6LF0xG_hr75Wr0cfHd6rvtHajw,37515
14
- maxframe/typing_.py,sha256=pAgOhHHSM376N7PJLtNXvS5LHNYywz5dIjnA_hHRWSM,1133
15
- maxframe/udf.py,sha256=GJre7snHQxkoyUWX0rpDkrGGU8-qA-SmSe2H9nSMEfo,4422
16
- maxframe/utils.py,sha256=_qJJs67UqY7L_a_pI5yLg_N1fUvPE_JLJChzLdBaawY,35624
14
+ maxframe/typing_.py,sha256=EsgH2QO4VF0TRdjshKyL0Tmgiy3Ow8doTwEuam5nStE,1220
15
+ maxframe/udf.py,sha256=Xrx3wrZCVX6zDggS1QGmHpuJhLgTG9HqLziId_NFnic,4471
16
+ maxframe/utils.py,sha256=YzVkoCst-Dj8q1Pp5XVEy__8ejtqViWlEtm2Fe3tFFE,34217
17
17
  maxframe/config/__init__.py,sha256=AHo3deaCm1JnbbRX_udboJEDYrYytdvivp9RFxJcumI,671
18
- maxframe/config/config.py,sha256=crVQq7UY_HyPC7ljteYTyl4sCgUvPKVTM85rQdA7U7w,15148
19
- maxframe/config/validators.py,sha256=hLW19kJ0TLc-W8SHf2cTenzOHfx86x90Vd4szxW3xcA,1734
18
+ maxframe/config/config.py,sha256=bH7dW_0xFNm8QTmh2hLba_WpCdetpKkk8ONCu26vNQM,15421
19
+ maxframe/config/validators.py,sha256=vs82UJa4xdY7tvbM7U4vOtXDJHrfdAOTvDkbrFtuGLU,2599
20
20
  maxframe/config/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
21
21
  maxframe/config/tests/test_config.py,sha256=FWQZ6KBUG_jY1-KaR-GKXl7khhlTbuLlk3uaEV8koM8,2839
22
22
  maxframe/config/tests/test_validators.py,sha256=kz9Yxiqvl_BJq2CT61JTzfpRyrjm6lFrjqIfqeld_yo,1274
23
- maxframe/core/__init__.py,sha256=KxXGWHijQZqmI4yIpQO7N6kQ0ok1UiUnae7Jh0jSgBA,1678
23
+ maxframe/core/__init__.py,sha256=uNccOOfZ1aCxvUsz8ic5kObQkrBgfUv8ExU7OScyW1w,1508
24
24
  maxframe/core/base.py,sha256=43qZ_sJFgW857qhT1jqgsjdAsBy9tzCeqeX62CPm4vM,4691
25
25
  maxframe/core/mode.py,sha256=a-2AjLrIaqemN3pZPFhdfrPYXR7ryCLcsT1KJwWKPb0,3107
26
- maxframe/core/entity/__init__.py,sha256=pUaRpxYxgP1pQuAjGEl9DxAJEvz5Tp_Tpzh4dnxmII0,1251
27
- maxframe/core/entity/chunks.py,sha256=zKk8Iyc3IkakIDW1bMYq_zZNLrR4ZMdXH-mBuOiFerM,2202
26
+ maxframe/core/entity/__init__.py,sha256=G3cRUyYuSNZ7HS13BLJAj7KBCaAqNSd2wx-MiHU0Hxc,1108
28
27
  maxframe/core/entity/core.py,sha256=aFwjNMhTJ4ybr1WzmMVSTG211fzutzaATs14QoNh-JM,4170
29
28
  maxframe/core/entity/executable.py,sha256=CKxFGvFPfY_8JBprhpyndhTSLgVLtUG4G5n7Dw0dHnw,11275
30
- maxframe/core/entity/fuse.py,sha256=X1lI0WXj5t0flgGI5-qlVl5LoYkAdLJHk2Vv767C9G4,2350
31
- maxframe/core/entity/objects.py,sha256=DmsR_XsbUVALF5jae6ANNBn_WtIZ3nh9Ukqofhp61Bw,1899
32
- maxframe/core/entity/output_types.py,sha256=NnNeDBVAEhD8dtPBWzpM7n6s8neVFrahjd0zMGWroCc,2735
33
- maxframe/core/entity/tileables.py,sha256=6jJyFscvb8sH5K_k2VaNGeUm8YrpevCtou3WSUl4Dw8,13973
29
+ maxframe/core/entity/objects.py,sha256=-9Yi8pcy-Rk-mYgrrClNUwPgq65b5Ns3L3yOvGKyCX8,3882
30
+ maxframe/core/entity/output_types.py,sha256=eNjyM_4Z8V5LjEaDz3D6eJ_Ly6JyZy0LfSiHVmfKdyw,2623
31
+ maxframe/core/entity/tileables.py,sha256=Unv_pZSlqDfXKVpIkPjHcRDueUdKqb55ifQGwkBlhO0,11636
34
32
  maxframe/core/entity/utils.py,sha256=454RYVbTMVW_8KnfDqUPec4kz1p98izVTC2OrzhOkao,966
35
- maxframe/core/graph/__init__.py,sha256=n1WiszgVu0VdXsk12oiAyggduNwu-1-9YKnfZqvmmXk,838
36
- maxframe/core/graph/core.cp310-win_amd64.pyd,sha256=41xMt_NXjNWP77EIs8CEX3p998Xpwy0yvehY6kLa3Xo,251392
33
+ maxframe/core/entity/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
34
+ maxframe/core/entity/tests/test_objects.py,sha256=8OAMgphXRVri3UewnCYoXfS3lJ_53yxFmR3rv2pWiMY,1392
35
+ maxframe/core/graph/__init__.py,sha256=IRTkHcVzI57tPXZ3agJJb-atpoD-9Jk4vtcRj3XQXzg,782
36
+ maxframe/core/graph/core.cp310-win_amd64.pyd,sha256=Od0RY5yU0gEsL9ElGMDcPRxcYVNEHdO6WnSOBfWXElg,250880
37
37
  maxframe/core/graph/core.pyx,sha256=J619C6xfVCF8NQ8oeinhICYSg-w5ecX-dnBI7NB-6n0,16390
38
- maxframe/core/graph/entity.py,sha256=RT_xbP5niUN5D6gqZ5Pg1vUegHn8bqPk8G8A30quOVA,5730
39
- maxframe/core/graph/builder/__init__.py,sha256=vTRY5xRPOMHUsK0jAtNIb1BjSPGqi_6lv86AroiiiL4,718
40
- maxframe/core/graph/builder/base.py,sha256=IzNYD4A2alnYaOvZnipDzC-ZIfNsYR80wLnFcx7bJzc,2635
41
- maxframe/core/graph/builder/chunk.py,sha256=2fMJUC1mcw-0CJU42GJo3PulJLrCjd0WfdKbi38dKkU,16619
42
- maxframe/core/graph/builder/tileable.py,sha256=-xSeO8uVzq6QXJ_HnreebirRwG2rZs3nOysycmOXMXc,1264
43
- maxframe/core/graph/builder/utils.py,sha256=vO7_4ykzI1G194Oqn_tM6zVWwxLReJ0GL4lCXfOg-Zk,1565
38
+ maxframe/core/graph/entity.py,sha256=7DJtHi7Xum_Yp16caiQd2AMZd34PWDPy7kocjWhgl3o,5010
39
+ maxframe/core/graph/builder/__init__.py,sha256=fL_blRc623cJ5CQTiFG1d4OK8M97FcFqGbX9chwbUQs,655
40
+ maxframe/core/graph/builder/base.py,sha256=vfU9zeEQv-BP4f11CdIJD_opiU6uDjnEVknMJGUtzPw,2596
41
+ maxframe/core/graph/builder/tileable.py,sha256=ZgvTbndsd1TVA6iQK1xcwupTuZSsmeQSTgbd2hP0BiE,1207
42
+ maxframe/core/graph/builder/utils.py,sha256=656KxKPwE8Il8S8OefItfqkhHQ8kyfSjfqDag1Ie3UE,1353
44
43
  maxframe/core/graph/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
45
44
  maxframe/core/graph/tests/test_graph.py,sha256=nkVn_dLk0oT42HWJxnSjniC5ElXjsHxC1Jzlg1CKHcQ,7667
46
- maxframe/core/operator/__init__.py,sha256=IHBCB3KC6dlVnfJryHSd__3Xnso9CtwYJrbfsSJ6siE,1162
47
- maxframe/core/operator/base.py,sha256=3d2_iNxp06XCiiY_zZRNxm2Cvy2kR-5x9Di6tqbuuxA,15701
45
+ maxframe/core/operator/__init__.py,sha256=s2r2k2-5iP57gByVSg8K_fTj6iQPXOgSto0kW6bvOoM,1098
46
+ maxframe/core/operator/base.py,sha256=owRYDDMvnL_4bOdlQXLTq6NFeE6RiZYKSrFrDglkBqc,15635
48
47
  maxframe/core/operator/core.py,sha256=cDzq0_9k7pfUiyAkaIq2eLaP6fAw7uRS-7bacon0Acg,9539
49
48
  maxframe/core/operator/fetch.py,sha256=4g9kyJbIco7cDgbdUJOJNtC3NCploUU45jnateGYG8c,1563
50
- maxframe/core/operator/fuse.py,sha256=1XBA2T6X4WSMj8xssZoC8bSALuNIdYSg7NTKTgR14-E,954
51
- maxframe/core/operator/objects.py,sha256=bA8taaGQYVuKh3CxLjKTlAw4LNUar5Agol75-G8dhjY,2224
49
+ maxframe/core/operator/objects.py,sha256=OylWHC78AIpxM4M3ns4MzqGF7HzTJaWU9QJv-B3zKzQ,2028
52
50
  maxframe/core/operator/shuffle.py,sha256=fUp5dm6cOEL4JXVz2Vr33dzycQQwC5mNExO0-2GPwkE,4857
51
+ maxframe/core/operator/utils.py,sha256=91Doo94Yj7VPZBiu-0AEWs4eqGJwBqMxgWPokt09Qes,1761
53
52
  maxframe/core/operator/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
54
53
  maxframe/core/operator/tests/test_core.py,sha256=iqZk4AWubFLO24V_VeV6SEy5xrzBFLP9qKK6tKO0SGs,1755
55
54
  maxframe/core/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
@@ -58,7 +57,7 @@ maxframe/dataframe/__init__.py,sha256=FqEhQAdEx5W8-P8mG3Wwzx-gJcScVpcqkaDAp6ejWg
58
57
  maxframe/dataframe/arrays.py,sha256=rOvhxMQars9E3SOYSu0ygBuuRVY0QV6xzengnMqKs4s,29616
59
58
  maxframe/dataframe/core.py,sha256=TYdl7KJwaJStivYErdT-57OhFn6S-OzP9SaCIacq7fA,76791
60
59
  maxframe/dataframe/initializer.py,sha256=WW96yQjquofNFt6RPZvgWW4SBmH0OEDj8-BxpuyKThY,10552
61
- maxframe/dataframe/operators.py,sha256=jl611oPN5TGpf6UDuIwcLUsjmTcbVBNLLd6cvq8TvKo,8144
60
+ maxframe/dataframe/operators.py,sha256=7u2v-yRl2wcTg8BmIXh-IFrj4TcKoegqf06gm-t0wGQ,7834
62
61
  maxframe/dataframe/utils.py,sha256=sonPqTu6vwXg5lxYFsZg3ZjUsQhTokpdngH_R0-3Kjg,45477
63
62
  maxframe/dataframe/arithmetic/__init__.py,sha256=MPnITPuO7DDjAMTBawpennv6D0V9AnT6oF0nz2KUIqc,12837
64
63
  maxframe/dataframe/arithmetic/abs.py,sha256=EgyzciSwjE_I3ZBuzeVJFVzBHsxn9MWzCtvHgyEl6ek,1016
@@ -119,8 +118,8 @@ maxframe/dataframe/datasource/from_records.py,sha256=ygpKOMXZnDdWzGxMxQ4KdGv-tJF
119
118
  maxframe/dataframe/datasource/from_tensor.py,sha256=mShHYi0fZcG7ZShFVgIezaphh8tSFqR9-nQMm5YKIhw,15146
120
119
  maxframe/dataframe/datasource/index.py,sha256=X_NShW67nYJGxaWp3qOrvyInNkz9L-XHjbApU4fHoes,4518
121
120
  maxframe/dataframe/datasource/read_csv.py,sha256=IvQihmpcZIdzSD7ziX92aTAHNyP5WnTgd2cZz_h43sQ,24668
122
- maxframe/dataframe/datasource/read_odps_query.py,sha256=3pZEucsj_sQRKEFOh6_JGcgQTDbwkb-_PGen5Kfz2w4,10522
123
- maxframe/dataframe/datasource/read_odps_table.py,sha256=tAkztS5SxCWtpMHOSANR9-IB703Ub0vDMp1YJ8wT68I,9479
121
+ maxframe/dataframe/datasource/read_odps_query.py,sha256=WpcYcNtncgVs3ACKF7M2-VGXzxLx1CGw4ZaAzglijb0,10525
122
+ maxframe/dataframe/datasource/read_odps_table.py,sha256=Uvld7GlDh9eofQOKlo3bNx8MnFYW7TnXM6zYMMgs8hs,9482
124
123
  maxframe/dataframe/datasource/read_parquet.py,sha256=SZPrWoax2mwMBNvRk_3lkS72pZLe-_X_GwQ1JROBMs4,14952
125
124
  maxframe/dataframe/datasource/series.py,sha256=elQVupKETh-hUHI2fTu8TRxBE729Vyrmpjx17XlRV-8,1964
126
125
  maxframe/dataframe/datasource/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
@@ -128,7 +127,7 @@ maxframe/dataframe/datasource/tests/test_datasource.py,sha256=1RbSSg2WBs3d4E1m-k
128
127
  maxframe/dataframe/datastore/__init__.py,sha256=MmlHYvFacMReOHDQMXF-z2bCsLyrSHYBVwIlCsZGOK4,810
129
128
  maxframe/dataframe/datastore/core.py,sha256=HCqrZN47RP-IC6zDqLX_RErDUAWkcTB58FHNU70V2b4,762
130
129
  maxframe/dataframe/datastore/to_csv.py,sha256=sns4bBgNpq7Ihb-goNqaBRdiEtrG-V6jqhNkWGZ1YaE,7974
131
- maxframe/dataframe/datastore/to_odps.py,sha256=joTDca3-fF27ASoksjnuz6JT4ozn3x8t7nDpAG_OSaw,6596
130
+ maxframe/dataframe/datastore/to_odps.py,sha256=25D7h8QphJIb3PHSqTmrBJ8S01VBbccaEbj_pLsRbG4,6599
132
131
  maxframe/dataframe/datastore/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
133
132
  maxframe/dataframe/datastore/tests/test_to_odps.py,sha256=385SCJK_XkddV9dJrRqSOuaXurpGjWd_QwRSeGTOTNU,1344
134
133
  maxframe/dataframe/extensions/__init__.py,sha256=x6QCVQIfpa8JP2Vu-nZwHJ1CzATnyPoKCBMqxjXwpO0,1439
@@ -225,7 +224,7 @@ maxframe/dataframe/reduction/__init__.py,sha256=ejIK5G6ylU0q37XVs_2DkmsnHTtYbE44
225
224
  maxframe/dataframe/reduction/aggregation.py,sha256=-v_jzKAiLGHOmv3MTDgqovfEYLgeJobU3CqaMWKqkRo,12948
226
225
  maxframe/dataframe/reduction/all.py,sha256=enpOWffBNXAEgFSaiZm0KPwU3izMvWd7M8smLwZjaeE,2044
227
226
  maxframe/dataframe/reduction/any.py,sha256=PensVOfgCcxu7u7-1OuMcD6gov2c2kN01B57O3eoHw8,2048
228
- maxframe/dataframe/reduction/core.py,sha256=QrZ4R9Q96wk7oaIzRZ2-KrFZcFbsbamZ8uUuQKAWdio,31232
227
+ maxframe/dataframe/reduction/core.py,sha256=Ys8mP0-p0zRzND8LtsZLeyBkTDeteJFoSqJCbS330BQ,31232
229
228
  maxframe/dataframe/reduction/count.py,sha256=YLx9bFb2IdnBIkTyApRad0x1yub6TmqncP6TzGcOL_Q,1800
230
229
  maxframe/dataframe/reduction/cummax.py,sha256=S2iUhfBL2lKwFKhFIYMQxlE26pYroEYKG3cqmG0gIAs,1043
231
230
  maxframe/dataframe/reduction/cummin.py,sha256=EWz1CUCQoTwxluvvQPtcNxWdIISr3bBaZPttB104Pdc,1043
@@ -278,7 +277,24 @@ maxframe/dataframe/window/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3
278
277
  maxframe/dataframe/window/tests/test_ewm.py,sha256=v1hM2ucFH_8aRn8AJqWEpvvVtSK9QQUCs911N0trbX8,2130
279
278
  maxframe/dataframe/window/tests/test_expanding.py,sha256=PsFYI6YXxNHYlsyaesy9yIAUSixp4IOrChmQtRGBpKc,2010
280
279
  maxframe/dataframe/window/tests/test_rolling.py,sha256=eJYHh4MhKm_e9h4bCnK_d_aAYlKGQtFAbZTTEILe6gU,1771
280
+ maxframe/io/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
281
+ maxframe/io/objects/__init__.py,sha256=QswbXcyRmPgMPdYyRFcm4maLAMDbOK0i-OUdHyyAn4Y,778
282
+ maxframe/io/objects/core.py,sha256=rhEYmS8Ty_cqJfjvTiPU-KaUVnr9DwPSIZEaPMZDH2U,4717
283
+ maxframe/io/objects/tensor.py,sha256=NQaYIItNYaeM0EcJ6TFejNWSSpXKSJjb6eI_ZKzXf6w,2749
284
+ maxframe/io/objects/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
285
+ maxframe/io/objects/tests/test_object_io.py,sha256=ElYAUf7jJtUMciZzzuEjPajSNEeqkMuWReHDDklo5Es,3189
286
+ maxframe/io/odpsio/__init__.py,sha256=xJbh1eHNI0D3xJG22VM3AHwwiwMIPldtGEJjildPsxc,925
287
+ maxframe/io/odpsio/arrow.py,sha256=yBdrld-Bh1eyLY_vcj6E0oA2WS9jiKlL93PNJASN7kk,4021
288
+ maxframe/io/odpsio/schema.py,sha256=dCXDzv4Uc2Msw1UhJyhvpsFMDSOecJNiRVsiN8VrSMk,12685
289
+ maxframe/io/odpsio/tableio.py,sha256=n2kepr8y-CeDyqVTzUPRJwrDdnaCOpwR9pBJ2A8IHX4,24819
290
+ maxframe/io/odpsio/volumeio.py,sha256=DmHWsbxgW_dja5YF17pXZvvzvSxTrbxxxCQejvtlDcs,2112
291
+ maxframe/io/odpsio/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
292
+ maxframe/io/odpsio/tests/test_arrow.py,sha256=yeDWFzsm2IMS-k6jimlQ7uim5T6WW1Anuy8didaf4cs,3194
293
+ maxframe/io/odpsio/tests/test_schema.py,sha256=Yv25EWTDAtNcxV1FTp5D1RH8M3uKDfokOEDMsVAgfaQ,12266
294
+ maxframe/io/odpsio/tests/test_tableio.py,sha256=XPgbCJj_hxscynqYO4L3_g67LckYLJznqzcJyRLCm_M,5769
295
+ maxframe/io/odpsio/tests/test_volumeio.py,sha256=gZga0IWoEkpu6DL3qpemPzo_zHxou-F-nj0g2zeUGa4,2956
281
296
  maxframe/learn/__init__.py,sha256=1QzrFCJmdZFy0Nh1Ng3V6yY_NVvoSUdTIqcU-HIa1wk,649
297
+ maxframe/learn/core.py,sha256=jQVOXTFond0ia9IdvObCV5MBpIgjPuxFSzyeg5AB11A,782
282
298
  maxframe/learn/contrib/__init__.py,sha256=2_AumQELt_0MMsSDS7nwk4Fy0TE807lasVuFvGEv1Lc,649
283
299
  maxframe/learn/contrib/utils.py,sha256=e4E-QLr7SAhCBTUX246SBpi9DtRNQAE-xOUxvNnFzZY,1714
284
300
  maxframe/learn/contrib/pytorch/__init__.py,sha256=a60NZy-COXEFgyC0uXJRBZGi-Vd9HZcqX62bKAMPKaM,703
@@ -287,12 +303,12 @@ maxframe/learn/contrib/pytorch/run_script.py,sha256=FOBXdJ9Q5QOirGGXq8_XwpwrTpDE
287
303
  maxframe/learn/contrib/pytorch/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
288
304
  maxframe/learn/contrib/pytorch/tests/test_pytorch.py,sha256=GHP-oD5uMU8LD90Jt2cHbYRDdM5efjzsjpeBkc3t_qE,1444
289
305
  maxframe/learn/contrib/xgboost/__init__.py,sha256=vk9xZO_FUwyVCrcLP1dbEz6JCZQBEHsmhGr1uQ45FAI,925
290
- maxframe/learn/contrib/xgboost/classifier.py,sha256=DWvQ9_GLg-ZeSFQp6NN5-7_BA9NxkpxEv5WtuodU31o,3022
291
- maxframe/learn/contrib/xgboost/core.py,sha256=RzGTONv1WgDb0ZXUxzDDkbqepvznAPRyjSgD2N4MdPc,5350
292
- maxframe/learn/contrib/xgboost/dmatrix.py,sha256=LsmCpda7_g6UjY3803ltDQN3uJDhN8j226ky8tb2Tzg,4989
293
- maxframe/learn/contrib/xgboost/predict.py,sha256=CvjOunt8Ir3spP4baMq9Gcq0uCV_mCSli7K7g1qTLDU,4785
294
- maxframe/learn/contrib/xgboost/regressor.py,sha256=osuNG4N1SILgjL-CodYnM9ODwewaVi4-8tHdfWZWJpg,2610
295
- maxframe/learn/contrib/xgboost/train.py,sha256=IlVYmf-KYb0uSqdIVSwEsx4jwTJHr9d-44hiqY1jNSM,4062
306
+ maxframe/learn/contrib/xgboost/classifier.py,sha256=6Uk1LOCRSn0LhR9TIGjjlQq8R5AfszO50IeawaYnks4,3960
307
+ maxframe/learn/contrib/xgboost/core.py,sha256=p6SXqBzWjY5VzqkqOoMu-O9TBcQ3UHlddcsbEoTBXaE,8276
308
+ maxframe/learn/contrib/xgboost/dmatrix.py,sha256=acXkK8Ab6vT1DVb3ZtpeUdzNfVbOtrsCSdXrluQGN70,4889
309
+ maxframe/learn/contrib/xgboost/predict.py,sha256=OceLqSJ8fHtcmBCKZMpTTcsM9Ide8eTvo6H3ppewTrM,5031
310
+ maxframe/learn/contrib/xgboost/regressor.py,sha256=0_GNVJFfkYmXJtG1eIUrwLOtr6HNNfkjKoBymLvd388,2384
311
+ maxframe/learn/contrib/xgboost/train.py,sha256=4xEWY-5MejfZTNKh6XHYyV6SQ2jeEJKBANcA4EGrTJM,4600
296
312
  maxframe/learn/contrib/xgboost/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
297
313
  maxframe/learn/contrib/xgboost/tests/test_core.py,sha256=qNSXaB1t1vpoCD6RfpnFjJZHS8ShW9O_uz0ucXXlfpE,1449
298
314
  maxframe/learn/utils/__init__.py,sha256=w2_QpDZ9J5BcSgbqu8P2RlkVRWC2gLowfgsaDPtz_Pg,661
@@ -300,7 +316,7 @@ maxframe/learn/utils/core.py,sha256=WNDISxPFsWmjkwHwEvjVGCkAOkIftqzEQFPA_KWr7FY,
300
316
  maxframe/lib/__init__.py,sha256=_PB28W40qku6YiT8fJYqdmEdRMQfelOwGeksCOZJfCc,657
301
317
  maxframe/lib/compression.py,sha256=QQpNK79iUC9zck74I0HKMhapSRnLBXtTRyS91taEVIc,1497
302
318
  maxframe/lib/functools_compat.py,sha256=2LTrkSw5i-z5E9XCtZzfg9-0vPrYxicKvDjnnNrAL1Q,2697
303
- maxframe/lib/mmh3.cp310-win_amd64.pyd,sha256=PN1b6ZG-AlY_DMPmIwexQOu8Fwvzq6y0xA6fzY-vhW0,17920
319
+ maxframe/lib/mmh3.cp310-win_amd64.pyd,sha256=pg-qT2rOXXfEkcIu84F5gzcnUSVN1W4ipBbXZTDLt94,17920
304
320
  maxframe/lib/mmh3.pyi,sha256=pkzO6SUUukCty3X-WFsuokWBtIPWyxEa06ypF9liruI,1537
305
321
  maxframe/lib/version.py,sha256=VOVZu3KHS53YUsb_vQsT7AyHwcCWAgc-3bBqV5ANcbQ,18941
306
322
  maxframe/lib/wrapped_pickle.py,sha256=Akx-qhMMJJ6VVzQYrcVO_umFjx0IR-Yzb1XqyOS1Mio,3976
@@ -349,22 +365,12 @@ maxframe/lib/tblib/decorators.py,sha256=377HT3gnD9B2dcxw75pHM17--ABkcgi_GQGmdA_M
349
365
  maxframe/lib/tblib/pickling_support.py,sha256=D9A0eX7gJeyqhXWxJJZ1GRwwcc5lj86wBRh0tmo6GHk,3025
350
366
  maxframe/lib/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
351
367
  maxframe/lib/tests/test_wrapped_pickle.py,sha256=WV0EJQ1hTSp8xjuosWWtEO7PeiBqdDUYgStxp72_c94,1575
352
- maxframe/odpsio/__init__.py,sha256=NjyhtdmOuFrEBB5nfVtS_lngdjNKL26yZwYy4HTc40s,833
353
- maxframe/odpsio/arrow.py,sha256=3GTTaA-VpsFAU_8wurmr4QRGkW7yB3KKTdXrtFrqrTs,4017
354
- maxframe/odpsio/schema.py,sha256=ipHxt3FWPdxNHpeEV9FcY-dJjm07znM1wI5xtIIGLLc,12680
355
- maxframe/odpsio/tableio.py,sha256=3iUrmInpC_4CAbFWNPvxPNyUPy5mq456NfpEAKRNLKk,24531
356
- maxframe/odpsio/volumeio.py,sha256=IT_OO-RG2rJZOEx8C8xRr0oNR358RSAJQAp6WGxeXzI,3838
357
- maxframe/odpsio/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
358
- maxframe/odpsio/tests/test_arrow.py,sha256=yeDWFzsm2IMS-k6jimlQ7uim5T6WW1Anuy8didaf4cs,3194
359
- maxframe/odpsio/tests/test_schema.py,sha256=_qXr_EqhG2tLsetxiSkuZitoZ55bQkqguK2eWBxWF68,12263
360
- maxframe/odpsio/tests/test_tableio.py,sha256=Z6eR-DDNwlatyKQ0AEpemhjiLLSW2KqvxgQ7csRwIxY,5766
361
- maxframe/odpsio/tests/test_volumeio.py,sha256=xvnrPZueZ76OAWK2zW_tHHI_cDxo7gJXTHiEe0lkmjk,3112
362
368
  maxframe/remote/__init__.py,sha256=Yu1ZDLICbehNfd1ur7_2bnIn2VFIsTxH_cILCbHAeZY,747
363
- maxframe/remote/core.py,sha256=w_eTDEs0O7iIzLn1YrMGh2gcNAzzbqV0mx2bRT7su_U,7001
369
+ maxframe/remote/core.py,sha256=ELCUvg-_ZdTax_exFqm6-XWUXukT5qalKYBeDB-mV0k,6733
364
370
  maxframe/remote/run_script.py,sha256=k93-vaFLUanWoBRai4-78DX_SLeZ8_rbbxcCtOIXZO8,3677
365
- maxframe/serialization/__init__.py,sha256=nxxU7CI6MRcL3sjA1KmLkpTGKA3KG30FKl-MJJ0MCdI,947
371
+ maxframe/serialization/__init__.py,sha256=UmDfKNohvk3StL-87QYmQTcQ2g6dRHSk49VFQS73VB0,963
366
372
  maxframe/serialization/arrow.py,sha256=OMeDjLcPgagqzokG7g3Vhwm6Xw1j-Kph1V2QsIwi6dw,3513
367
- maxframe/serialization/core.cp310-win_amd64.pyd,sha256=eUZIDsA_t2pHoIxpbWK6JLdnM03lm16l9KdzJsozqAo,403456
373
+ maxframe/serialization/core.cp310-win_amd64.pyd,sha256=mfo7mYSv4F5CCe3jcew9vy-tIBs9UZxSCc0DFbKxP3s,403456
368
374
  maxframe/serialization/core.pxd,sha256=KioRiFhr5DTuqXnS2imJ3djWfSv2IAmhnz-kAFPgU6A,1548
369
375
  maxframe/serialization/core.pyi,sha256=ELDG44v8O7A7RfURExMfVEJENuaEYHTwgJ-vzlH2Vh4,2206
370
376
  maxframe/serialization/core.pyx,sha256=4iyUotIVV8CkVhHo3RyotDP1E7M2C1KMb0_40Ex_h1c,36321
@@ -382,11 +388,11 @@ maxframe/serialization/serializables/tests/test_field_type.py,sha256=uG87-bdG8xG
382
388
  maxframe/serialization/serializables/tests/test_serializable.py,sha256=w5r-WC-8Zi1xAO1AfxdkjGcbGHZ8G5B-z_-d47Fje-A,10159
383
389
  maxframe/serialization/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
384
390
  maxframe/serialization/tests/test_serial.py,sha256=9G2CbPBHINwcZ038pRwZON_OtH-JVXZ8w66BLYWP578,12923
385
- maxframe/tensor/__init__.py,sha256=6Ro7re_MYOIzF7A664GMXZAq0zHfVcReDzYobIfuKuc,4544
391
+ maxframe/tensor/__init__.py,sha256=7tlj6f0V97wwMr1x1LeVev3B0fAylsnyRwShSEN2Yvs,4642
386
392
  maxframe/tensor/array_utils.py,sha256=xr_Ng-4dETJFjsMfWi5gbTPM9mRmPvRWj8QY2WKjmCg,5129
387
- maxframe/tensor/core.py,sha256=-G-UzY81GTKj2SD9FQLqBg-UDod5LjjrEA-uF16ofms,22638
388
- maxframe/tensor/operators.py,sha256=8VsSZ8OcImGkSRQvrYlV05KMHGsroAYmW1o9RM2yV1U,3584
389
- maxframe/tensor/utils.py,sha256=An35s6MrbltYvN8WYzjKCjyozTDbGQrvUW_qz8KnA94,23632
393
+ maxframe/tensor/core.py,sha256=YE1if5ofQft725nhsfRFCF_S1xxjf7xk_ETfznGZzP0,18538
394
+ maxframe/tensor/operators.py,sha256=bmnL2EIIC28tlTB5SwQc5sunIkhPz8KBvSQHxbACqZg,3455
395
+ maxframe/tensor/utils.py,sha256=6HENWGkcwHe7t8IOAyyJ4m7pZt--S1Q1IOfz0oUZt6A,23109
390
396
  maxframe/tensor/arithmetic/__init__.py,sha256=SUlcG0Mf9ddgxAdydenuJ9eY5yVu0TgKfpBujI3OX4w,9695
391
397
  maxframe/tensor/arithmetic/abs.py,sha256=WQO9CxiI-u_gtXNOX1AIcL4Dak-NliK0YDjdOi9sHtc,2248
392
398
  maxframe/tensor/arithmetic/absolute.py,sha256=GSIA5UySoSbGlgcjK8sChurEMATFz2cwdfJ7wAjqotc,2278
@@ -433,7 +439,7 @@ maxframe/tensor/arithmetic/hypot.py,sha256=mm0RQsKrLaC2rzW-qVNT_De_YKueNKB5lhD1m
433
439
  maxframe/tensor/arithmetic/i0.py,sha256=FlsRK-63SoNbN0R8qCUGYbD0LfdfetBBzZndya3LYg0,3000
434
440
  maxframe/tensor/arithmetic/imag.py,sha256=lCSlPCVL5HKalujl8ae4Msgtilgy9xiESt4GFjWY4gU,1835
435
441
  maxframe/tensor/arithmetic/invert.py,sha256=DSFgIzY5xJCVmRXzjyADiNnAgc9RpYVzNwWOf1bQiTQ,3572
436
- maxframe/tensor/arithmetic/isclose.py,sha256=oCr6SM59DmotMJOqxTvPMFIuM27DA_mWgOyQUmbGmyg,3783
442
+ maxframe/tensor/arithmetic/isclose.py,sha256=1p_gcUJmk1xtrofAVR4-yVqrKggywqQkdzLBrgOlK_I,3811
437
443
  maxframe/tensor/arithmetic/iscomplex.py,sha256=lSUunn3RZiZlrIHiSNx21siVR0BID9-_8ZfueEIxXvc,1768
438
444
  maxframe/tensor/arithmetic/isfinite.py,sha256=JycutXOjf5YE9w9RFt65zFccgYc1uhdRFJ03fMpom5A,3704
439
445
  maxframe/tensor/arithmetic/isinf.py,sha256=Yc97fOv6aD-YjrWzs3zHKSI1DR3pDXlRhnK3jQd1nHQ,3565
@@ -487,31 +493,21 @@ maxframe/tensor/arithmetic/truediv.py,sha256=xrsN8Z-q6msst9S8-469XQFgrs7T4RTkaym
487
493
  maxframe/tensor/arithmetic/trunc.py,sha256=3z8jme9ZpPU8TqNo2ioViqJa7ThNK9KOVX1wl-R0a7M,2375
488
494
  maxframe/tensor/arithmetic/utils.py,sha256=Kc3xqbIK9uRhHhDKFwAj-mW7SRljajfK9UOMyXyCHCY,2304
489
495
  maxframe/tensor/arithmetic/tests/__init__.py,sha256=_PB28W40qku6YiT8fJYqdmEdRMQfelOwGeksCOZJfCc,657
490
- maxframe/tensor/arithmetic/tests/test_arithmetic.py,sha256=fAkVgixF-WfRZHGujGmB_s5llwiL1DDdvxcAsWPYfEY,11409
491
- maxframe/tensor/base/__init__.py,sha256=qVf97u2J74RSjCmkF-7N-ylxWUc6mbiPPWpDe45vRmQ,1113
492
- maxframe/tensor/base/astype.py,sha256=fzj0o3pJMVaSEEKMR-JBsd2FktlSa9ABtpt-fcWKio0,4513
493
- maxframe/tensor/base/atleast_1d.py,sha256=_d7xamputAAHFY8v0Ayc8ILMdqS6fLZYhWQLOh_LFmc,1992
494
- maxframe/tensor/base/broadcast_to.py,sha256=V-OB8YSbMfkMP2JpbiIQ0A9PrC-OHfaWzrntf5AOEwo,2775
495
- maxframe/tensor/base/ravel.py,sha256=P9SCDU-UUHzd1HqZbodBSgKjtjiOFkyfLV_G9LFnz_U,3265
496
- maxframe/tensor/base/transpose.py,sha256=yMK1KzxguKZOWxT3oMo5GchjB-1Yakilp2rEX3QlxFM,3539
497
- maxframe/tensor/base/unique.py,sha256=wweWA7Qg-MwRsJwXQc_-4BuDAYBQkRgVw-B38z6hNTQ,6926
498
- maxframe/tensor/base/where.py,sha256=cSg1mDhiOBB4F0Soh_uVw3yeSve9pfEhPSIDadc-wto,4127
499
- maxframe/tensor/base/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
500
- maxframe/tensor/base/tests/test_base.py,sha256=i9TneozyHCHDhO438U285KS6tdh0Zks8mgkRm3fsHxk,2957
496
+ maxframe/tensor/arithmetic/tests/test_arithmetic.py,sha256=zyvizXBapZcauwf64awWMzmNQeWR6VK0aSq1WwdbfBw,11839
501
497
  maxframe/tensor/datasource/__init__.py,sha256=xtrdcuP6yTc_T19ITPsJTknoqTT-XudlhSlffrScjsY,1178
502
498
  maxframe/tensor/datasource/arange.py,sha256=tjNF_huiWTtqtN6YBBtn0tvP9Pnebf6LNXRmAsYqRQk,5632
503
- maxframe/tensor/datasource/array.py,sha256=pC1eeo4C1EkdHklStr6aOCBfRx1SqyeHHwRglKI2W1A,13419
499
+ maxframe/tensor/datasource/array.py,sha256=21R-mH1a4PLwlby9M4YMXBS31DT1BVvbKUUhE23Mop0,13472
504
500
  maxframe/tensor/datasource/core.py,sha256=LzuHtRWCNny1y-IzGylelWZ6rejS31LdT4E7qs_uIQs,3520
505
501
  maxframe/tensor/datasource/empty.py,sha256=GpK-DHUfJp9M46wUrGt5lf-YbDDveubwntDjTVYnmMw,6019
506
502
  maxframe/tensor/datasource/from_dataframe.py,sha256=iJY2cw2yA6YKnqRLyB0XdvpdemHHzpU7q2SA1sYo6mo,2573
507
503
  maxframe/tensor/datasource/from_dense.py,sha256=txyxNBD0oXr3Ama9me2ay1_ASuDu1QK3w6ATebMzNCU,1661
508
504
  maxframe/tensor/datasource/from_sparse.py,sha256=le-Wfno7Z8XY71TLwEOhO80fkvKXwKXbDgsrOfmDM8s,1593
509
- maxframe/tensor/datasource/full.py,sha256=-54C2YwqIEP3rPGsY0rnbgMBp15_NqgDJ7lxOJJuXGU,6462
505
+ maxframe/tensor/datasource/full.py,sha256=cWS5GSEV-82s0IU1GMHTrAlydVGQ-Zxk2uCs5vxgOfc,6462
510
506
  maxframe/tensor/datasource/ones.py,sha256=0UuYAwMLGfjF-O_90vkwsMqQlAAfJ98TdxbfgC1y6Fk,5182
511
507
  maxframe/tensor/datasource/scalar.py,sha256=g2dsnmOEzV30I0UK3ytMtkiosdfH3NJ6wacZuxBpmbk,1196
512
508
  maxframe/tensor/datasource/zeros.py,sha256=DJZK_kraSn820O17GSHLFHV43x1JL3Gt_HdlN0p5o7k,5860
513
509
  maxframe/tensor/datasource/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
514
- maxframe/tensor/datasource/tests/test_datasource.py,sha256=C9sOu8rpDNpu3yMhgln4UzkqW5SklL63IJXRwrwOCYc,7931
510
+ maxframe/tensor/datasource/tests/test_datasource.py,sha256=mCyjktnCHuR2w796nHAzQ_fVR95fRqY57Zome2Wjuss,7931
515
511
  maxframe/tensor/fetch/__init__.py,sha256=udOT7c7dIbszchvIkCLAWp7SE-GUIE6vl85wWFuaJl0,662
516
512
  maxframe/tensor/fetch/core.py,sha256=nyK5dFqDSrM1vi_xgk_yh4GRLUp-FxvjgdbqFxlS_Hg,1872
517
513
  maxframe/tensor/indexing/__init__.py,sha256=IF7jK7ZqwWi8nhKY2IRXVzLYacqdeyc4iUFGvzx09Mg,1658
@@ -520,7 +516,7 @@ maxframe/tensor/indexing/compress.py,sha256=2i-mhWB7-Z7y8luWBJ_2Fhci7IP0kNGr8s-S
520
516
  maxframe/tensor/indexing/core.py,sha256=85E1kSDogs7p57vE1O-ZYx4XhpEE21tmt1-mOey5ejs,7212
521
517
  maxframe/tensor/indexing/extract.py,sha256=KHqEVMKwxIlm2RYVSVhZX5Jo7yymKTIgzNT6y8Ilodc,2139
522
518
  maxframe/tensor/indexing/fill_diagonal.py,sha256=V3_kMu5Cvund5a4GYTG5617ryNu0cHjWp3FfAU_d3yY,5488
523
- maxframe/tensor/indexing/flatnonzero.py,sha256=JdM997SdupsFA3HcsIkImvOB09b9PfsAZZtOvptRWFg,1766
519
+ maxframe/tensor/indexing/flatnonzero.py,sha256=v0Od1T6pn6vfoDeEG40lJ7h4OD8cPIlzDTDHMcR50IA,1766
524
520
  maxframe/tensor/indexing/getitem.py,sha256=5n-5ExnuVrO5WG1ikD5VwP_Mlj5NAD7X-tVQDoAmims,5723
525
521
  maxframe/tensor/indexing/nonzero.py,sha256=qeTEj7oiqf2CYBDlL1aKG19lPPFXvHkMq0A-4Dmvz4A,3766
526
522
  maxframe/tensor/indexing/setitem.py,sha256=u7YbeJQmWnhu13H8k5ohw89YQRcPnY-9Ni0zJxzfJJo,4484
@@ -529,17 +525,31 @@ maxframe/tensor/indexing/take.py,sha256=OCuIrhqO74CIojaoOc45McoQiJEjxvN1zens4RQV
529
525
  maxframe/tensor/indexing/unravel_index.py,sha256=FMmoEYrDHZAtx_HHC21W3KZfkqwxNZUObXP3HVSJgGw,3326
530
526
  maxframe/tensor/indexing/tests/__init__.py,sha256=_PB28W40qku6YiT8fJYqdmEdRMQfelOwGeksCOZJfCc,657
531
527
  maxframe/tensor/indexing/tests/test_indexing.py,sha256=uatTFiNkYnyqibYa2-NleUWyFRnlK0mN1AG0tBqFCts,6886
532
- maxframe/tensor/merge/__init__.py,sha256=pJtvyfCItT7OlRet49WkjKuf0PC3Ct6qRhpkU06zUU8,637
528
+ maxframe/tensor/merge/__init__.py,sha256=mzXzvbNObPYmvWY3PCu3yFvV82Tqqaxav5DX_Iv2UN8,703
529
+ maxframe/tensor/merge/concatenate.py,sha256=pRANmkj47t85vND5F0ObmfqqMy-qXS5FuBXSN8HRDmI,3182
533
530
  maxframe/tensor/merge/stack.py,sha256=lZJs8M1JYBdYXnalj6-6ltdJKKslZ1Z-ydkzvGlzzkY,4277
531
+ maxframe/tensor/merge/vstack.py,sha256=BS6bG5h0swmTW26rvg7FvJw3fX1wh7nCAWao53vetXo,2238
534
532
  maxframe/tensor/merge/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
535
- maxframe/tensor/merge/tests/test_merge.py,sha256=uEpUTh3hAozyn7lkO7w0F-8TYwGzU-u3H6ZVrYDH4rs,1521
533
+ maxframe/tensor/merge/tests/test_merge.py,sha256=tI4xeJPpME68buemIzTga9mTQiMoqFc9v4__Hi40kzg,2291
534
+ maxframe/tensor/misc/__init__.py,sha256=C6VvY-dnO0_8Z1ArbzhT0I0ClFNT2LGfSgPJdICUexo,1185
535
+ maxframe/tensor/misc/astype.py,sha256=fzj0o3pJMVaSEEKMR-JBsd2FktlSa9ABtpt-fcWKio0,4513
536
+ maxframe/tensor/misc/atleast_1d.py,sha256=XG-8Yxjo0_HD_hRWMoGtaqhgVrIXOR3g1leH_6ib9mk,1944
537
+ maxframe/tensor/misc/atleast_2d.py,sha256=9F5m9DyDJ63nPFhrCqTTHszz36pgU0_VM6nJLmLx9QM,2028
538
+ maxframe/tensor/misc/atleast_3d.py,sha256=XkpSZ_haJJz0wanww5HB4Xhhx3QK8xtbleWvC7ARkBE,2477
539
+ maxframe/tensor/misc/broadcast_to.py,sha256=V-OB8YSbMfkMP2JpbiIQ0A9PrC-OHfaWzrntf5AOEwo,2775
540
+ maxframe/tensor/misc/ravel.py,sha256=P9SCDU-UUHzd1HqZbodBSgKjtjiOFkyfLV_G9LFnz_U,3265
541
+ maxframe/tensor/misc/transpose.py,sha256=ALP4B3FdXL_-iPV-zyG5FuM13jPVcu_mvIaNmh_mQDQ,4134
542
+ maxframe/tensor/misc/unique.py,sha256=wweWA7Qg-MwRsJwXQc_-4BuDAYBQkRgVw-B38z6hNTQ,6926
543
+ maxframe/tensor/misc/where.py,sha256=cSg1mDhiOBB4F0Soh_uVw3yeSve9pfEhPSIDadc-wto,4127
544
+ maxframe/tensor/misc/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
545
+ maxframe/tensor/misc/tests/test_misc.py,sha256=i9TneozyHCHDhO438U285KS6tdh0Zks8mgkRm3fsHxk,2957
536
546
  maxframe/tensor/random/__init__.py,sha256=KKshGsQFlScwgZU-lS_yy1CPsEcufVlKyZSz1CUxzU4,7179
537
547
  maxframe/tensor/random/beta.py,sha256=8-t9NxQrDOTpm5Q_ip_HWnARX_T69tfyJeRv-FobFXw,3200
538
548
  maxframe/tensor/random/binomial.py,sha256=BsjD4yRX_IvfexgqZFQMb0jceD46xj4cmKXbpla5eL8,5428
539
549
  maxframe/tensor/random/bytes.py,sha256=PmmPFGnhq_FCbkcSYQWNTw1jehvDLmRCzPgEukAgo7w,1093
540
550
  maxframe/tensor/random/chisquare.py,sha256=buOfihHGKTsH_Uv8BuWb6_0L0dJukSFrjNlsaWBKy1I,3864
541
551
  maxframe/tensor/random/choice.py,sha256=dLM_5Vw5ov_2P-82tcHwQtMPE02VmQScAsY5zbTZ4K4,6144
542
- maxframe/tensor/random/core.py,sha256=p3sUYkm3F6-lmu23yRu80EXPeTA5fBvJ2Fee3JPYf-4,7440
552
+ maxframe/tensor/random/core.py,sha256=hLmTHK6my3_1JADRny018C3yGPycsO0JWcALQ_XZwMg,7440
543
553
  maxframe/tensor/random/dirichlet.py,sha256=s89z_s5qevE0DdezLeI1pdoBFclDBQy-ulSAMDyy_TE,4507
544
554
  maxframe/tensor/random/exponential.py,sha256=82kMZBn1N_XdHdggUUWecPYjx91SAYvPtArErwqD66g,3677
545
555
  maxframe/tensor/random/f.py,sha256=5grVBKXHDhmc-N4wuwNpC7sF92uTXd1zfCQEVzCPLSo,5226
@@ -591,29 +601,29 @@ maxframe/tensor/reduction/argmax.py,sha256=UqPBCgnyLFpIjaNPWxcyLGynpOzYnaVj23PQy
591
601
  maxframe/tensor/reduction/argmin.py,sha256=Gy_O7kEcJosGQImqkR5S7N5ygs-bXnYcpljj3TSe5Ho,3202
592
602
  maxframe/tensor/reduction/array_equal.py,sha256=1otUnsacNdSgkdP1hHs3NcAdqtJNyY3F1oOVItrmv70,1859
593
603
  maxframe/tensor/reduction/core.py,sha256=NwASayI1P1uCCFCyNltH-cVezefW3Th2qS6viSuSKMQ,5257
594
- maxframe/tensor/reduction/count_nonzero.py,sha256=82Q6vm4_2eFcdFsPSUw6PD1eUV_4geKVckvs7GnRsfE,2802
604
+ maxframe/tensor/reduction/count_nonzero.py,sha256=zhaiKDQxWR5WTNwwqn8piRuBGYwOq-Oe0Uv7rdSPyPA,2836
595
605
  maxframe/tensor/reduction/cumprod.py,sha256=zitvIvh2Sb4iL7yL2Spenoe7NQndV9LJ4qrejd_ul48,3369
596
606
  maxframe/tensor/reduction/cumsum.py,sha256=IUOvbrVEgjDOdd3nsxnDy3Fx0eJC0EfOGt0PIfik_PM,3592
597
607
  maxframe/tensor/reduction/max.py,sha256=8B5k9n89orftEYLI_Lwl10O0zbN6vq5SxUpX0W9L7Bo,4099
598
- maxframe/tensor/reduction/mean.py,sha256=RRATO7XMV68q2h4o8JgHguz5zbBzfW1Mvuw4DHHo4W0,4478
608
+ maxframe/tensor/reduction/mean.py,sha256=X-DeUsX_6jbJLAgeLqfFghNnVz-CPzvTr6SD_LvkrQI,4503
599
609
  maxframe/tensor/reduction/min.py,sha256=YRHJ-leK2wF6ZJT7WgepMhIofw9JQ62PxRw8JqJTaFU,4100
600
610
  maxframe/tensor/reduction/nanargmax.py,sha256=Nwiin8tWykaaOjtNF7DGMNuIFZXAts_v4XO68ODM9FI,2563
601
611
  maxframe/tensor/reduction/nanargmin.py,sha256=rgOcOEbbJyvGwAYFSJkQSfY8yjdqtaOg5d7gL5FijLE,2279
602
612
  maxframe/tensor/reduction/nancumprod.py,sha256=e9l343oVsXra2Goiai3Qbwnqe1Fq8BEATa0475_DNdo,3212
603
613
  maxframe/tensor/reduction/nancumsum.py,sha256=Q8sNfx8d8sfKQhOWBI5dOJfORua_HzUydwauX4Lu8LI,3377
604
614
  maxframe/tensor/reduction/nanmax.py,sha256=l8GplMV1eZwsgYt2esxPCj7ou3DgODzi3N1Vbbxjz7o,4061
605
- maxframe/tensor/reduction/nanmean.py,sha256=i1gZU8xN_sBb_9MDMnqup9Q0jF2IrJEXsPRzEMav3_8,4050
615
+ maxframe/tensor/reduction/nanmean.py,sha256=PJCx-oVyL-gCBIuyxrIKcqQKP5z5ro9XIBapMQ6IMe8,4078
606
616
  maxframe/tensor/reduction/nanmin.py,sha256=vxq-g_ffwI6fLZ9rVdGoaGAq87w4pvLas_NKZsfLiYQ,4058
607
617
  maxframe/tensor/reduction/nanprod.py,sha256=1of1DIP390_12QA0xKCXSvAxYrddJC52h7KmsLwTvyQ,3408
608
618
  maxframe/tensor/reduction/nanstd.py,sha256=6aOed5RQ4-N2IfQjWZKVoQ34GN6O9_LVeGoUwa5d1hU,5017
609
619
  maxframe/tensor/reduction/nansum.py,sha256=3gjbgh6Qw29HxLNdyn8MzxekFlyr3l377EZwNFgla4g,4181
610
- maxframe/tensor/reduction/nanvar.py,sha256=AWlcTIsBu3EIF9Wdbtxncf-XE2FYo83fmfaH8jIUAnU,5567
620
+ maxframe/tensor/reduction/nanvar.py,sha256=ZvC3EnhvaSbCe3P9RDelCqjMiWFjmze5RBEGS5bTi4A,5621
611
621
  maxframe/tensor/reduction/prod.py,sha256=PfTHhIYDVsPtTSRQ2wZQ2WY7wbbuIh8YoEFR7kTJdzU,4536
612
622
  maxframe/tensor/reduction/std.py,sha256=s4wvtnRUCw9EfKZrdefClxnKLjM6gzZqYuxOrg6Tgck,5269
613
623
  maxframe/tensor/reduction/sum.py,sha256=ehfqbdEafd5ASliWR5DL689q_VH7Isk7ozlrWBdamDk,4371
614
- maxframe/tensor/reduction/var.py,sha256=VIzl3UYitUa7pD3AmcHgFcKFabQzFGz38oK6DrRrZ14,6434
624
+ maxframe/tensor/reduction/var.py,sha256=MKl5pe9t7g20atW5XFdFChr1Qxb1ReeViIaHwoRGCpM,6482
615
625
  maxframe/tensor/reduction/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
616
- maxframe/tensor/reduction/tests/test_reduction.py,sha256=XPHYII06IuY0wGjh5G09aXn2JDbgh7_QMUkGu1197RM,6015
626
+ maxframe/tensor/reduction/tests/test_reduction.py,sha256=k2pXfAfowBDzEgMvldflUzhFUMWIkiP2fznZp7q9Bkw,6370
617
627
  maxframe/tensor/reshape/__init__.py,sha256=h_yXSMgSS3hGdLmnyWUUqXshEz4rLiEYDTlZbDBuj0w,689
618
628
  maxframe/tensor/reshape/reshape.py,sha256=3vfmYigJcfODwg4av9lcMDM4mQ4TsNQT0qmbdcsg4zc,6641
619
629
  maxframe/tensor/reshape/tests/__init__.py,sha256=_PB28W40qku6YiT8fJYqdmEdRMQfelOwGeksCOZJfCc,657
@@ -630,20 +640,20 @@ maxframe/tests/test_utils.py,sha256=5Z2cym1tlpnF73f4I3WC1eBocsbNEDGzDErJL_fKWx8,
630
640
  maxframe/tests/utils.py,sha256=t99jsFXhHme886zvXO5sl20stB5WFJsDH6KeHc5I9N0,5057
631
641
  maxframe_client/__init__.py,sha256=hIVOnxj6AoN2zIMxQCzRb10k0LSoYS_DrQevXO9KPBg,705
632
642
  maxframe_client/conftest.py,sha256=UWWMYjmohHL13hLl4adb0gZPLRdBVOYVvsFo6VZruI0,658
633
- maxframe_client/fetcher.py,sha256=i67AV-50WBXhQ49F_PO7Nc13y6ueZfsEluzLM8DThHI,9449
643
+ maxframe_client/fetcher.py,sha256=kwMjcEZxMAJye5BHWv-O82aExSj66IeTmPYvbn89wBs,8595
634
644
  maxframe_client/clients/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
635
645
  maxframe_client/clients/framedriver.py,sha256=upN6C1eZrCpLTsS6fihWOMy392psWfo0bw2XgSLI_Yg,4581
636
646
  maxframe_client/session/__init__.py,sha256=9zFCd3zkSADESAFc4SPoQ2nkvRwsIhhpNNO2TtSaWbU,854
637
647
  maxframe_client/session/consts.py,sha256=nD-D0zHXumbQI8w3aUyltJS59K5ftipf3xCtHNLmtc8,1380
638
- maxframe_client/session/graph.py,sha256=GSZaJ-PV4DK8bTcNtoSoY5kDTyyIRAKleh4tOCSUbsI,4470
639
- maxframe_client/session/odps.py,sha256=1nhBT2DcGhd-kkQX72vOtdbBgFh3GV9buVk0TkwWRrE,19906
648
+ maxframe_client/session/graph.py,sha256=CEavpl_zmz_nZ2TXI4moRxpdYsMZMokV63889qI6l_4,4501
649
+ maxframe_client/session/odps.py,sha256=PMxvEoiYUO9Pd5Sbfdub7nJxGh6iJR4bB9wtFHssAtc,21248
640
650
  maxframe_client/session/task.py,sha256=8_ZN2xbMdkRy2XdgJpEmB35vhGxfL0Qluzd0NVTjPwE,11402
641
651
  maxframe_client/session/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
642
652
  maxframe_client/session/tests/test_task.py,sha256=861usEURVXeTUzfJYZmBfwsHfZFexG23mMtT5IJOOm4,3364
643
653
  maxframe_client/tests/__init__.py,sha256=29eM5D4knhYwe3TF42naTuC5b4Ym3VeH4rK8KpdLWNY,609
644
- maxframe_client/tests/test_fetcher.py,sha256=qcgRxdNvIEuBzoOaqZg_Wk2KeJzmc3pxHwkmgUoln8E,4262
645
- maxframe_client/tests/test_session.py,sha256=rsdJA14dv_QDcklKgnNWMBKbqbymi2RwoLgjiqRUXk8,10028
646
- maxframe-1.0.0rc2.dist-info/METADATA,sha256=YSoS0qN4SYlglqj1Nu54N7S6ngvfJ0QBIAQKukxtiyg,5169
647
- maxframe-1.0.0rc2.dist-info/WHEEL,sha256=G3rUecCX3CsVBcQJyjwgL9XzLDe6Kd8bJdI39ws9ZcE,101
648
- maxframe-1.0.0rc2.dist-info/top_level.txt,sha256=64x-fc2q59c_vXwNUkehyjF1vb8JWqFSdYmUqIFqoTM,31
649
- maxframe-1.0.0rc2.dist-info/RECORD,,
654
+ maxframe_client/tests/test_fetcher.py,sha256=lYtn4NuntN-_A7rMd10e2y_CEUp7zelTij441NTFP6M,4265
655
+ maxframe_client/tests/test_session.py,sha256=s4fodDMo8wPB7se6k0SxQ_rLy6i0uuA0i1fSYIjX4R0,10427
656
+ maxframe-1.0.0rc3.dist-info/METADATA,sha256=nbMyVOW9ZlnS-WB9VsV2TcA5kbsfNfwTMU_Uzs3Y89Y,3131
657
+ maxframe-1.0.0rc3.dist-info/WHEEL,sha256=fsW6--WFfuzX2scefE6JfcSZ5dXg5h59u8lqlpL5uuo,101
658
+ maxframe-1.0.0rc3.dist-info/top_level.txt,sha256=64x-fc2q59c_vXwNUkehyjF1vb8JWqFSdYmUqIFqoTM,31
659
+ maxframe-1.0.0rc3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (71.1.0)
2
+ Generator: setuptools (72.1.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-win_amd64
5
5
 
@@ -19,14 +19,18 @@ from typing import Any, Dict, List, Optional, Tuple, Type, Union
19
19
  import pandas as pd
20
20
  import pyarrow as pa
21
21
  from odps import ODPS
22
- from odps.models import ExternalVolume, PartedVolume
22
+ from odps.models import ExternalVolume
23
23
  from odps.tunnel import TableTunnel
24
- from tornado import httpclient
25
24
 
26
25
  from maxframe.core import OBJECT_TYPE
27
26
  from maxframe.dataframe.core import DATAFRAME_TYPE
28
- from maxframe.lib import wrapped_pickle as pickle
29
- from maxframe.odpsio import ODPSTableIO, arrow_to_pandas, build_dataframe_table_meta
27
+ from maxframe.io.objects import get_object_io_handler
28
+ from maxframe.io.odpsio import (
29
+ ODPSTableIO,
30
+ ODPSVolumeReader,
31
+ arrow_to_pandas,
32
+ build_dataframe_table_meta,
33
+ )
30
34
  from maxframe.protocol import (
31
35
  DataFrameTableMeta,
32
36
  ODPSTableResultInfo,
@@ -222,47 +226,24 @@ class ODPSVolumeFetcher(ToThreadMixin, ResultFetcher):
222
226
  ) -> None:
223
227
  return
224
228
 
225
- async def _read_parted_volume_data(
226
- self, volume: PartedVolume, partition: str, file_name: str
227
- ) -> bytes:
228
- def sync_read():
229
- with volume.open_reader(partition, file_name) as reader:
230
- return reader.read()
231
-
232
- return await self.to_thread(sync_read)
233
-
234
- async def _read_external_volume_data(
235
- self, volume: ExternalVolume, path: str, file_name: str
236
- ) -> bytes:
237
- signed_url = await self.to_thread(
238
- volume.get_sign_url, path + "/" + file_name, "GET"
239
- )
240
- http_client = httpclient.AsyncHTTPClient()
241
-
242
- resp = await http_client.fetch(signed_url)
243
- if hasattr(resp, "status_code") and resp.code >= 400:
244
- try:
245
- import oss2.exceptions
246
-
247
- oss_exc = oss2.exceptions.make_exception(resp.body)
248
- raise oss_exc
249
- except ImportError:
250
- raise SystemError(resp.body)
251
- return resp.body
229
+ async def _fetch_object(
230
+ self,
231
+ tileable: TileableType,
232
+ info: ODPSVolumeResultInfo,
233
+ indexes: List[Union[Integral, slice]],
234
+ ) -> Any:
235
+ def volume_fetch_func():
236
+ reader = ODPSVolumeReader(
237
+ self._odps_entry, info.volume_name, info.volume_path
238
+ )
239
+ io_handler = get_object_io_handler(tileable)()
240
+ return io_handler.read_object(reader, tileable, indexes)
252
241
 
253
- async def _fetch_object(self, info: ODPSVolumeResultInfo) -> Any:
254
242
  volume = await self.to_thread(self._odps_entry.get_volume, info.volume_name)
255
- if isinstance(volume, PartedVolume):
256
- byte_data = await self._read_parted_volume_data(
257
- volume, info.volume_path, "data"
258
- )
259
- elif isinstance(volume, ExternalVolume):
260
- byte_data = await self._read_external_volume_data(
261
- volume, info.volume_path, "data"
262
- )
243
+ if isinstance(volume, ExternalVolume):
244
+ return await self.to_thread(volume_fetch_func)
263
245
  else:
264
246
  raise NotImplementedError(f"Volume type {type(volume)} not supported")
265
- return pickle.loads(byte_data)
266
247
 
267
248
  async def fetch(
268
249
  self,
@@ -271,5 +252,5 @@ class ODPSVolumeFetcher(ToThreadMixin, ResultFetcher):
271
252
  indexes: List[Union[Integral, slice]],
272
253
  ) -> Any:
273
254
  if isinstance(tileable, (OBJECT_TYPE, TENSOR_TYPE)):
274
- return await self._fetch_object(info)
255
+ return await self._fetch_object(tileable, info, indexes)
275
256
  raise NotImplementedError(f"Fetching {type(tileable)} not implemented")
@@ -19,10 +19,16 @@ from dataclasses import dataclass
19
19
  from typing import Any, Dict, List, Tuple, Union
20
20
  from weakref import WeakSet
21
21
 
22
- from maxframe.core import ChunkType, TileableGraph, TileableType, enter_mode
22
+ from maxframe.core import (
23
+ ChunkType,
24
+ TileableGraph,
25
+ TileableType,
26
+ build_fetch,
27
+ enter_mode,
28
+ )
23
29
  from maxframe.core.operator import Fetch
24
30
  from maxframe.session import AbstractSession
25
- from maxframe.utils import build_fetch, copy_tileables
31
+ from maxframe.utils import copy_tileables
26
32
 
27
33
  logger = logging.getLogger(__name__)
28
34
 
@@ -26,7 +26,8 @@ import pandas as pd
26
26
  from odps import ODPS
27
27
 
28
28
  from maxframe.config import options
29
- from maxframe.core import Entity, TileableGraph, enter_mode
29
+ from maxframe.core import Entity, TileableGraph, build_fetch, enter_mode
30
+ from maxframe.core.operator import Fetch
30
31
  from maxframe.dataframe import read_odps_table
31
32
  from maxframe.dataframe.core import DATAFRAME_TYPE, SERIES_TYPE
32
33
  from maxframe.dataframe.datasource import PandasDataSourceOperator
@@ -36,11 +37,18 @@ from maxframe.errors import (
36
37
  NoTaskServerResponseError,
37
38
  SessionAlreadyClosedError,
38
39
  )
39
- from maxframe.odpsio import ODPSTableIO, pandas_to_arrow, pandas_to_odps_schema
40
+ from maxframe.io.objects import get_object_io_handler
41
+ from maxframe.io.odpsio import (
42
+ ODPSTableIO,
43
+ ODPSVolumeWriter,
44
+ pandas_to_arrow,
45
+ pandas_to_odps_schema,
46
+ )
40
47
  from maxframe.protocol import (
41
48
  DagInfo,
42
49
  DagStatus,
43
50
  ODPSTableResultInfo,
51
+ ODPSVolumeResultInfo,
44
52
  ResultInfo,
45
53
  SessionInfo,
46
54
  )
@@ -51,8 +59,13 @@ from maxframe.session import (
51
59
  Profiling,
52
60
  Progress,
53
61
  )
62
+ from maxframe.tensor.datasource import ArrayDataSource
54
63
  from maxframe.typing_ import TileableType
55
- from maxframe.utils import ToThreadMixin, build_temp_table_name
64
+ from maxframe.utils import (
65
+ ToThreadMixin,
66
+ build_session_volume_name,
67
+ build_temp_table_name,
68
+ )
56
69
 
57
70
  from ..clients.framedriver import FrameDriverClient
58
71
  from ..fetcher import get_fetcher_cls
@@ -139,14 +152,9 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
139
152
  self._session_id = session_info.session_id
140
153
  await self._show_logview_address()
141
154
 
142
- def _upload_and_get_read_tileable(self, t: TileableType) -> Optional[TileableType]:
143
- if (
144
- not isinstance(t.op, PandasDataSourceOperator)
145
- or t.op.get_data() is None
146
- or t.inputs
147
- ):
148
- return None
149
-
155
+ def _upload_and_get_table_read_tileable(
156
+ self, t: TileableType
157
+ ) -> Optional[TileableType]:
150
158
  schema, table_meta = pandas_to_odps_schema(t, unknown_as_string=True)
151
159
  if self._odps_entry.exist_table(table_meta.table_name):
152
160
  self._odps_entry.delete_table(
@@ -193,8 +201,29 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
193
201
  read_tileable.params = t.params
194
202
  return read_tileable.data
195
203
 
204
+ def _upload_and_get_vol_read_tileable(
205
+ self, t: TileableType
206
+ ) -> Optional[TileableType]:
207
+ vol_name = build_session_volume_name(self.session_id)
208
+ writer = ODPSVolumeWriter(self._odps_entry, vol_name, t.key)
209
+ io_handler = get_object_io_handler(t)
210
+ io_handler().write_object(writer, t, t.op.data)
211
+ return build_fetch(t).data
212
+
213
+ def _upload_and_get_read_tileable(self, t: TileableType) -> Optional[TileableType]:
214
+ if (
215
+ not isinstance(t.op, (ArrayDataSource, PandasDataSourceOperator))
216
+ or t.op.get_data() is None
217
+ or t.inputs
218
+ ):
219
+ return None
220
+ if isinstance(t.op, PandasDataSourceOperator):
221
+ return self._upload_and_get_table_read_tileable(t)
222
+ else:
223
+ return self._upload_and_get_vol_read_tileable(t)
224
+
196
225
  @enter_mode(kernel=True, build=True)
197
- def _scan_and_replace_pandas_sources(
226
+ def _scan_and_replace_local_sources(
198
227
  self, graph: TileableGraph
199
228
  ) -> Dict[TileableType, TileableType]:
200
229
  """Replaces Pandas data sources with temp table sources in the graph"""
@@ -223,14 +252,21 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
223
252
  @enter_mode(kernel=True, build=True)
224
253
  def _get_input_infos(self, tileables: List[TileableType]) -> Dict[str, ResultInfo]:
225
254
  """Generate ResultInfo structs from generated temp tables"""
255
+ vol_name = build_session_volume_name(self.session_id)
256
+
226
257
  infos = dict()
227
258
  for t in tileables:
228
259
  key = t.key
229
- if not isinstance(t.op, DataFrameReadODPSTable):
230
- if not isinstance(t.inputs[0].op, DataFrameReadODPSTable):
231
- continue
232
- t = t.inputs[0]
233
- infos[key] = ODPSTableResultInfo(full_table_name=t.op.table_name)
260
+ if isinstance(t.op, DataFrameReadODPSTable):
261
+ infos[key] = ODPSTableResultInfo(full_table_name=t.op.table_name)
262
+ else:
263
+ if isinstance(t.op, Fetch):
264
+ infos[key] = ODPSVolumeResultInfo(
265
+ volume_name=vol_name, volume_path=t.key
266
+ )
267
+ elif t.inputs and isinstance(t.inputs[0].op, DataFrameReadODPSTable):
268
+ t = t.inputs[0]
269
+ infos[key] = ODPSTableResultInfo(full_table_name=t.op.table_name)
234
270
  return infos
235
271
 
236
272
  async def execute(self, *tileables, **kwargs) -> ExecutionInfo:
@@ -242,7 +278,7 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
242
278
  tileable_graph, to_execute_tileables = gen_submit_tileable_graph(
243
279
  self, tileables, tileable_to_copied
244
280
  )
245
- source_replacements = self._scan_and_replace_pandas_sources(tileable_graph)
281
+ source_replacements = self._scan_and_replace_local_sources(tileable_graph)
246
282
 
247
283
  # we need to manage uploaded data sources with refcounting mechanism
248
284
  # as nodes in tileable_graph are copied, we need to use original nodes