maxframe 1.0.0rc4__cp310-cp310-macosx_10_9_universal2.whl → 1.1.1__cp310-cp310-macosx_10_9_universal2.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 (88) hide show
  1. maxframe/_utils.cpython-310-darwin.so +0 -0
  2. maxframe/config/__init__.py +1 -1
  3. maxframe/config/config.py +26 -0
  4. maxframe/config/tests/test_config.py +20 -1
  5. maxframe/conftest.py +17 -4
  6. maxframe/core/graph/core.cpython-310-darwin.so +0 -0
  7. maxframe/core/operator/base.py +2 -0
  8. maxframe/dataframe/arithmetic/tests/test_arithmetic.py +17 -16
  9. maxframe/dataframe/core.py +24 -2
  10. maxframe/dataframe/datasource/read_odps_query.py +65 -35
  11. maxframe/dataframe/datasource/read_odps_table.py +4 -2
  12. maxframe/dataframe/datasource/tests/test_datasource.py +59 -7
  13. maxframe/dataframe/extensions/__init__.py +5 -0
  14. maxframe/dataframe/extensions/apply_chunk.py +649 -0
  15. maxframe/dataframe/extensions/flatjson.py +131 -0
  16. maxframe/dataframe/extensions/flatmap.py +28 -40
  17. maxframe/dataframe/extensions/reshuffle.py +1 -1
  18. maxframe/dataframe/extensions/tests/test_apply_chunk.py +186 -0
  19. maxframe/dataframe/extensions/tests/test_extensions.py +46 -2
  20. maxframe/dataframe/groupby/__init__.py +1 -0
  21. maxframe/dataframe/groupby/aggregation.py +1 -0
  22. maxframe/dataframe/groupby/apply.py +9 -1
  23. maxframe/dataframe/groupby/core.py +1 -1
  24. maxframe/dataframe/groupby/fill.py +4 -1
  25. maxframe/dataframe/groupby/getitem.py +6 -0
  26. maxframe/dataframe/groupby/tests/test_groupby.py +1 -1
  27. maxframe/dataframe/groupby/transform.py +8 -2
  28. maxframe/dataframe/indexing/loc.py +6 -4
  29. maxframe/dataframe/merge/__init__.py +9 -1
  30. maxframe/dataframe/merge/concat.py +41 -31
  31. maxframe/dataframe/merge/merge.py +1 -1
  32. maxframe/dataframe/merge/tests/test_merge.py +3 -1
  33. maxframe/dataframe/misc/apply.py +3 -0
  34. maxframe/dataframe/misc/drop_duplicates.py +5 -1
  35. maxframe/dataframe/misc/map.py +3 -1
  36. maxframe/dataframe/misc/tests/test_misc.py +24 -2
  37. maxframe/dataframe/misc/transform.py +22 -13
  38. maxframe/dataframe/reduction/__init__.py +3 -0
  39. maxframe/dataframe/reduction/aggregation.py +1 -0
  40. maxframe/dataframe/reduction/median.py +56 -0
  41. maxframe/dataframe/reduction/tests/test_reduction.py +17 -7
  42. maxframe/dataframe/statistics/quantile.py +8 -2
  43. maxframe/dataframe/statistics/tests/test_statistics.py +4 -4
  44. maxframe/dataframe/tests/test_utils.py +60 -0
  45. maxframe/dataframe/utils.py +110 -7
  46. maxframe/dataframe/window/expanding.py +5 -3
  47. maxframe/dataframe/window/tests/test_expanding.py +2 -2
  48. maxframe/io/objects/tests/test_object_io.py +39 -12
  49. maxframe/io/odpsio/__init__.py +1 -1
  50. maxframe/io/odpsio/arrow.py +51 -2
  51. maxframe/io/odpsio/schema.py +23 -5
  52. maxframe/io/odpsio/tableio.py +80 -124
  53. maxframe/io/odpsio/tests/test_schema.py +40 -0
  54. maxframe/io/odpsio/tests/test_tableio.py +5 -5
  55. maxframe/io/odpsio/tests/test_volumeio.py +35 -11
  56. maxframe/io/odpsio/volumeio.py +27 -3
  57. maxframe/learn/contrib/__init__.py +3 -2
  58. maxframe/learn/contrib/llm/__init__.py +16 -0
  59. maxframe/learn/contrib/llm/core.py +54 -0
  60. maxframe/learn/contrib/llm/models/__init__.py +14 -0
  61. maxframe/learn/contrib/llm/models/dashscope.py +73 -0
  62. maxframe/learn/contrib/llm/multi_modal.py +42 -0
  63. maxframe/learn/contrib/llm/text.py +42 -0
  64. maxframe/lib/mmh3.cpython-310-darwin.so +0 -0
  65. maxframe/lib/sparse/tests/test_sparse.py +15 -15
  66. maxframe/opcodes.py +7 -1
  67. maxframe/serialization/core.cpython-310-darwin.so +0 -0
  68. maxframe/serialization/core.pyx +13 -1
  69. maxframe/serialization/pandas.py +50 -20
  70. maxframe/serialization/serializables/core.py +70 -15
  71. maxframe/serialization/serializables/field_type.py +4 -1
  72. maxframe/serialization/serializables/tests/test_serializable.py +12 -2
  73. maxframe/serialization/tests/test_serial.py +2 -1
  74. maxframe/tensor/__init__.py +19 -7
  75. maxframe/tensor/merge/vstack.py +1 -1
  76. maxframe/tests/utils.py +16 -0
  77. maxframe/udf.py +27 -0
  78. maxframe/utils.py +42 -8
  79. {maxframe-1.0.0rc4.dist-info → maxframe-1.1.1.dist-info}/METADATA +4 -4
  80. {maxframe-1.0.0rc4.dist-info → maxframe-1.1.1.dist-info}/RECORD +88 -77
  81. {maxframe-1.0.0rc4.dist-info → maxframe-1.1.1.dist-info}/WHEEL +1 -1
  82. maxframe_client/clients/framedriver.py +4 -1
  83. maxframe_client/fetcher.py +23 -8
  84. maxframe_client/session/odps.py +40 -11
  85. maxframe_client/session/task.py +6 -25
  86. maxframe_client/session/tests/test_task.py +35 -6
  87. maxframe_client/tests/test_session.py +30 -10
  88. {maxframe-1.0.0rc4.dist-info → maxframe-1.1.1.dist-info}/top_level.txt +0 -0
@@ -1,48 +1,48 @@
1
- maxframe-1.0.0rc4.dist-info/RECORD,,
2
- maxframe-1.0.0rc4.dist-info/WHEEL,sha256=RNtgRL1ujC2TymWV9oL0Oq6EKBLR3oYp0uxLEG7w8S4,115
3
- maxframe-1.0.0rc4.dist-info/top_level.txt,sha256=64x-fc2q59c_vXwNUkehyjF1vb8JWqFSdYmUqIFqoTM,31
4
- maxframe-1.0.0rc4.dist-info/METADATA,sha256=m1n812IGGIlXWLemXVCoSOeKwvuDF8UnL_VNXT5mzzE,3027
1
+ maxframe-1.1.1.dist-info/RECORD,,
2
+ maxframe-1.1.1.dist-info/WHEEL,sha256=hckVD9W218I-cSckYATMe3Ko_37-6EaiE9IaoMBKclc,114
3
+ maxframe-1.1.1.dist-info/top_level.txt,sha256=64x-fc2q59c_vXwNUkehyjF1vb8JWqFSdYmUqIFqoTM,31
4
+ maxframe-1.1.1.dist-info/METADATA,sha256=Uy7LPFzY8VsjVyHUwHA-dqnSN6Jk2NWdWef35C-Vyik,3022
5
5
  maxframe_client/conftest.py,sha256=7cwy2sFy5snEaxvtMvxfYFUnG6WtYC_9XxVrwJxOpcU,643
6
6
  maxframe_client/__init__.py,sha256=0_6MYIqksNc-B0hORLb0yqNQUhtqdFD7TGg39bQ-_NI,689
7
- maxframe_client/fetcher.py,sha256=zIFUiQ_iJQfGNjwpfA_GluNFkLn5KaVjO2L-E2dIcyY,8442
7
+ maxframe_client/fetcher.py,sha256=6gAKBI23GpkrgKyveHZlABYMWbzgiKwE7W4UWKhrzAI,9172
8
8
  maxframe_client/clients/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
9
- maxframe_client/clients/framedriver.py,sha256=Rn09529D2qBTgNGc0oCY0l7b3FgzT87TqS1nujGQaHw,4463
10
- maxframe_client/tests/test_session.py,sha256=GioXBNjd5-xhj1uWOULq-mbIhlqHjDt-eonMAM06JTo,10537
9
+ maxframe_client/clients/framedriver.py,sha256=-Ux7Q_bWuUSG8r14u84-1UVT9V08q_z4jGxV8kvPQaI,4557
10
+ maxframe_client/tests/test_session.py,sha256=XdbWE3jzmzphsPmbAk5L8xYVUnAXarDDzVhVYIWwnjE,11196
11
11
  maxframe_client/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
12
12
  maxframe_client/tests/test_fetcher.py,sha256=7mVDO456wcUMajguTJ4FWkSpuonLfinFfiz31ZYnHNs,4158
13
- maxframe_client/session/task.py,sha256=XoxJ8fjAd7p9-FXDptIQoLSOjLiCNqOhhwW_H2vCKmI,12693
13
+ maxframe_client/session/task.py,sha256=eL_bQShBAtUttz13JyBbDkMv9UIpnL6wSk9qtwmUNqk,12027
14
14
  maxframe_client/session/graph.py,sha256=rRilIWsiVfj_N160s8uv2s7mi_nhx7JxSa9BkhyLRnE,4376
15
15
  maxframe_client/session/__init__.py,sha256=KPqhSlAJiuUz8TC-z5o7mHDVXzLSqWwrZ33zNni7piY,832
16
16
  maxframe_client/session/consts.py,sha256=kQv67i4wyhV2ZQXwJf_5k4PRXhN811LmYoo2C3NB7tk,1391
17
- maxframe_client/session/odps.py,sha256=YvpLZWoLTdITGmwKeJ0u02eAzmT8f8Kf84bgi1LGWfg,23505
18
- maxframe_client/session/tests/test_task.py,sha256=lDdw3gToaM3xSaRXEmHUoAo2h0id7t4v_VvpdKxQAao,3279
17
+ maxframe_client/session/odps.py,sha256=8PbU-5jNhFO2psLQ0X_kiiqKcZXwgeshxZkoh6poMvA,24928
18
+ maxframe_client/session/tests/test_task.py,sha256=L1t8IPy9p60vuLgjdQym2ADSa9LI6cQArJ0pnXxtvS0,4701
19
19
  maxframe_client/session/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
20
20
  maxframe/_utils.pyx,sha256=I4kmfhNr-xXK2ak22dr4Vwahzn-JmTaYctbL3y9_UBQ,17017
21
- maxframe/conftest.py,sha256=EFMnYhSi0L57fog9nAjOEtjRQuCGedFNIY6jK2MPbm0,5772
22
- maxframe/opcodes.py,sha256=4t7OL55s0rt7qGxSkhsLjgs0ECb_hCzqxXRrYa3Vm0A,10236
21
+ maxframe/conftest.py,sha256=s0GB7iP-m8UTSrYF0P1TH-kffzhZsch7EaV2KObVZ8k,6293
22
+ maxframe/opcodes.py,sha256=Ef_CJvPvMi_JO4CYQfWRc_eZnMKtoiJWnO7eC-xNAOg,10348
23
23
  maxframe/env.py,sha256=_K499f7giN7Iu9f39iI9p_naaEDoJ0rx8dInbzqFOVI,1402
24
24
  maxframe/mixin.py,sha256=HBAeWYGb7N6ZIgkA-YpkKiSY1GetcEVNTuMb0ieznBs,3524
25
25
  maxframe/protocol.py,sha256=kP8dnBhQEI6BcVFn2uuZZTmvr4xJA-R-SZi9ZJ_iqtY,18984
26
- maxframe/_utils.cpython-310-darwin.so,sha256=HZg0IvtdN9qVHbnNnjzabgK84lNulUHQEkdvLYRv3sE,846464
26
+ maxframe/_utils.cpython-310-darwin.so,sha256=gqyrB_-HhsMmBy5RPk9QLY0bd2Js79pa3maUioW6EtE,846464
27
27
  maxframe/session.py,sha256=FFciufr4jyKKWBDfbd_OwHGGT8zpRz_8rkZHrGhJMNM,36393
28
28
  maxframe/__init__.py,sha256=SqTFS_1o2HDuVY1mhS0ELlqDuM-biwM_MN0EYGkJLf0,1004
29
- maxframe/utils.py,sha256=LwuzJ1diVF3u1ZYJemHGEWmbrHxoLGMAJteTDTQe1Pg,33873
29
+ maxframe/utils.py,sha256=eubuRneXZ_fedIwMDLChgAq0WAXMuFjjyLtc4r_7zjg,34682
30
30
  maxframe/extension.py,sha256=F5XTYzW5hNw0AIQz3d6u6Yk7adDdiV4c-HD7bF0X1FI,2659
31
31
  maxframe/errors.py,sha256=vHcpVrKRHmoZPa6IwsdDT-jOZUTlhCp8c0e8F2C-5uU,966
32
- maxframe/udf.py,sha256=Fol4VzIb2hzyyA9s5xrvh4xTO4jq_I2YGnnN4f6wOhk,4338
32
+ maxframe/udf.py,sha256=HrZzDSNHmv63lCt4bMoPPPVV0HdzIKPL89khmj5yAAc,5157
33
33
  maxframe/typing_.py,sha256=iYzgThxTu38yLRtyH5xFhMrurfFj7awMGytfObhvvcs,1180
34
34
  maxframe/codegen.py,sha256=yxrKeRynJiQ3fN88BPFn5oHPKemEpESz20GI8ghDgv8,17733
35
35
  maxframe/_utils.pxd,sha256=AhJ4vA_UqZqPshi5nvIZq1xgr80fhIVQ9dm5-UdkYJ8,1154
36
36
  maxframe/dataframe/arrays.py,sha256=RWzimUcrds5CsIlPausfJAkLUjcktBSSXwdXyUNKEtU,28752
37
37
  maxframe/dataframe/__init__.py,sha256=ojcTejC6A-txmh1fPhaZxIiXNQejd1Qf_nH0nRr6TbM,2242
38
- maxframe/dataframe/core.py,sha256=CN1oL_YhU1xF8WpAuKCsSDNN03gdR35aGcQ1KammS_0,74425
38
+ maxframe/dataframe/core.py,sha256=GSzIoRs67fFzbTqNVspd7ILxeB-5jlnXF7G_XyjcRjc,75000
39
39
  maxframe/dataframe/initializer.py,sha256=ppdPVRoXmg5ryZIfWbJ6nQ6okEOevOSJowvk1AJXFH4,10852
40
- maxframe/dataframe/utils.py,sha256=aPQrT3-TBTL2O_9QS70KlG4oV9EiFTTswofd7n3IKEM,44213
40
+ maxframe/dataframe/utils.py,sha256=hcYmGVO6ty3RHGyd8cNkCNtml7PHRDfVyXtUa7WWzDI,47307
41
41
  maxframe/dataframe/operators.py,sha256=sXgnopzsCjr5qTL8wn9J-avzqSzGdds3MsyHgQCB4No,7577
42
42
  maxframe/dataframe/statistics/corr.py,sha256=3dExebs9QC8GBaZZUSKXrN2eYt-hWMayJ2MHHzTn-8s,9483
43
- maxframe/dataframe/statistics/quantile.py,sha256=ySXi2m8TrArfdidFc07VsOG-RdXJy-YIiOJRrlebfWU,11303
43
+ maxframe/dataframe/statistics/quantile.py,sha256=nEhRwSdnMAyP75RkiwpYgNXCsibK2k0Uf3d5axOC-ZQ,11520
44
44
  maxframe/dataframe/statistics/__init__.py,sha256=Ate3HERUCrjhRoGhpR9SNZA5JHlvuIVSrHgYPEcJd6Q,1084
45
- maxframe/dataframe/statistics/tests/test_statistics.py,sha256=3kpFq9EoUI8PBikQGwMoMN7vwBTeoQeF3XG2h2Hzcu0,2730
45
+ maxframe/dataframe/statistics/tests/test_statistics.py,sha256=oTYoLIghp0DAtzzUbGCunpQe0XFr75-mRrb_KeSMJWA,2806
46
46
  maxframe/dataframe/statistics/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
47
47
  maxframe/dataframe/misc/accessor.py,sha256=QXjV5Q6LW0KNs67X5h2bCBhwHV8R7riP6TmTY_ECpmA,10027
48
48
  maxframe/dataframe/misc/describe.py,sha256=Ym9DrZVBSOK0EcsiqKzjMSIK5LNPA12GPoLkFjACyZM,4370
@@ -59,24 +59,24 @@ maxframe/dataframe/misc/qcut.py,sha256=De8kM1FfOWMEDvRNWRaupSHBRGLaOVrtGbLmtHAZv
59
59
  maxframe/dataframe/misc/pct_change.py,sha256=-WBq5VD3cPMv3EsqoAEvN9MXbBWfh4qHydwtWbMutZY,2516
60
60
  maxframe/dataframe/misc/duplicated.py,sha256=JPtBDLaxlVUqFBU3U3bqGnKQNaOcKwS5sdVfBFJt-Uo,8534
61
61
  maxframe/dataframe/misc/pivot_table.py,sha256=YoKjjtOw2Z6KU3q3opAFag1gICz5Kc_VIcKNs3ur62A,9520
62
- maxframe/dataframe/misc/map.py,sha256=RbUi0xPzT0hnsKid5RA5uHYyTeBnpzXlukR48Ntooxk,8149
62
+ maxframe/dataframe/misc/map.py,sha256=0lkziY2iM6GhmtaWf9G9Bf8tHngBXP9i0HHG8yJHx5c,8265
63
63
  maxframe/dataframe/misc/memory_usage.py,sha256=BPBSYNFvxTYG5kXdX-ogLn1_c_u__G9UeWkEIKrnfyA,7889
64
64
  maxframe/dataframe/misc/isin.py,sha256=POBR3Gvwlu2TH1AWWvKW12XOlu8HF2dJuBCBbOHgq74,6931
65
65
  maxframe/dataframe/misc/shift.py,sha256=feTqtnIRm0YGha5Ps_feQOqHLxSbicnOMbthmZc6pEM,8935
66
66
  maxframe/dataframe/misc/transpose.py,sha256=-Q7iFtafKKibpZKWYxf0bUg4zIZPTupvY4hkdAlB3Gw,3636
67
67
  maxframe/dataframe/misc/melt.py,sha256=wZnxUWZfOxU9xoDp5asfi7UCXUyUNwqupZiPBibbA7c,5120
68
68
  maxframe/dataframe/misc/stack.py,sha256=ybopZCNzARqrtFYhvjs85j-g6mXL6X2XTdSTAudtmVI,7962
69
- maxframe/dataframe/misc/transform.py,sha256=ZUeFD2ZByJxGHuyUlCCFVBT05WPewdWK6FDw6S7JuDw,10920
69
+ maxframe/dataframe/misc/transform.py,sha256=BRLOqGYFKMuLgcjf5-VeAOIkOUS18Gyae9mywiTN_nU,11208
70
70
  maxframe/dataframe/misc/explode.py,sha256=Z26L0iYmyHE1mffyAC19Fk5rGDfw7oxOnaBHzeZ4QbU,5011
71
71
  maxframe/dataframe/misc/diff.py,sha256=bhorH5BuKmnMJSXKC-_ZANNAR8LFDIy6p7m4kpZV_R8,5491
72
- maxframe/dataframe/misc/drop_duplicates.py,sha256=SRabiqBgyJHprWm3IOU2hT1ocx3C-bhGg-mKL6sHIs0,8375
72
+ maxframe/dataframe/misc/drop_duplicates.py,sha256=KAE6eJhTrKKyP21p1aN1V14o05L2YJDxVeTmULJRqRw,8468
73
73
  maxframe/dataframe/misc/_duplicate.py,sha256=lCryaC64c46YA6R3UjTBfh77L4yyB8ub3EPzBMe_HPg,1470
74
74
  maxframe/dataframe/misc/eval.py,sha256=jXIQyGK4d1c8A-n3BBdisKK3dIjLbZO07hh-qtslBdE,24359
75
75
  maxframe/dataframe/misc/value_counts.py,sha256=yWpGLLdx--QobAFNJHb51wuA_fePMqKMeWXA6GjIgbo,5215
76
76
  maxframe/dataframe/misc/select_dtypes.py,sha256=xEdLNun58kvp-Vbl3u2cr8kaXFG8GsIU2BMfo7tFCM8,3144
77
77
  maxframe/dataframe/misc/drop.py,sha256=-RHIQWek2LUTK8lOILNpCWYftCY3-I3DHSP0XT4uHBc,13029
78
- maxframe/dataframe/misc/apply.py,sha256=hPwYKPvdxtj_jqEX1DOxH1_O7Hz3giM6NOdyN1VRPqU,23370
79
- maxframe/dataframe/misc/tests/test_misc.py,sha256=5yF01TfqHmNBayMGWc5_4bS8vEc2bQ-kPMSwn54ytM0,15630
78
+ maxframe/dataframe/misc/apply.py,sha256=0lD5OjFIwGrKJgg7gwUr__QO5mh4Z9o6RpCLHFpicd4,23492
79
+ maxframe/dataframe/misc/tests/test_misc.py,sha256=gsURWRlIIaIvCh4k7NX_qSY8TgRs_meGVK_mltw49fQ,16466
80
80
  maxframe/dataframe/misc/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
81
81
  maxframe/dataframe/datasource/index.py,sha256=D7PcfIWS-6Hv1-8o6adNesditOAa9kb4JOQK1WlqNDQ,4401
82
82
  maxframe/dataframe/datasource/read_csv.py,sha256=cpp6kX0DVrqY0KticL1h11tckobSzz1gyK4Sf2puUjo,24140
@@ -84,14 +84,14 @@ maxframe/dataframe/datasource/from_index.py,sha256=2061zsQn-BhyHTT0X9tE0JK8vLxQU
84
84
  maxframe/dataframe/datasource/dataframe.py,sha256=LxAKF4gBIHhnJQPuaAUdIEyMAq7HTfiEeNVls5n4I4A,2023
85
85
  maxframe/dataframe/datasource/series.py,sha256=QcYiBNcR8jjH6vdO6l6H9F46KHmlBqVCTI2tv9eyZ9w,1909
86
86
  maxframe/dataframe/datasource/__init__.py,sha256=C8EKsHTJi-1jvJUKIpZtMtsK-ZID3dtxL1voXnaltTs,640
87
- maxframe/dataframe/datasource/read_odps_query.py,sha256=vEYz85s1Fzhe3mBCYlMZo8uCb0_W9AuO4V4ngpbi87k,12335
87
+ maxframe/dataframe/datasource/read_odps_query.py,sha256=eOYQdYEIdfQ9SqHkNbY_OxBdUVuH-KZNLDA7fxp8erk,13504
88
88
  maxframe/dataframe/datasource/core.py,sha256=ozFmDgw1og7nK9_jU-u3tLEq9pNbitN-8w8XWdbKkJ0,2687
89
89
  maxframe/dataframe/datasource/date_range.py,sha256=8JMr_Ife5pKCS_ca7W50Fyoc1JigOJirVzdVaPDzeFo,17227
90
- maxframe/dataframe/datasource/read_odps_table.py,sha256=T44rPm2-2plSCghTGX0U9mnTrQgpjczHt0DPt2H5HM8,9338
90
+ maxframe/dataframe/datasource/read_odps_table.py,sha256=E2hv-9CxpXlxf0r_lc_G6Cs-voYQ1BunuC9A28K5Sx4,9409
91
91
  maxframe/dataframe/datasource/read_parquet.py,sha256=9auOcy8snTxCOohgXZCUXfT_O39irdkBngZH5svgx0E,14531
92
92
  maxframe/dataframe/datasource/from_tensor.py,sha256=4viuN5SLLye7Xeb8kouOpm-osoQ2yEovWTDNPQuW8gE,14727
93
93
  maxframe/dataframe/datasource/from_records.py,sha256=WBYouYyg7m_8NJdN-yUWSfJlIpm6DVP3IMfLXZFugyI,3442
94
- maxframe/dataframe/datasource/tests/test_datasource.py,sha256=GEtiNzYfjvFMw1LbYXA1rdQOCE2HZt6bDWA0hODmzfg,16041
94
+ maxframe/dataframe/datasource/tests/test_datasource.py,sha256=xVCuDOeEmGxh39adcUf9933oXJf9cM6Mlh-02d6UA0U,17163
95
95
  maxframe/dataframe/datasource/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
96
96
  maxframe/dataframe/sort/sort_index.py,sha256=Hwbkm9x8kqGgXh4gMcAtYMDjYtt-S3CJXfYR9pN5Iqk,5412
97
97
  maxframe/dataframe/sort/__init__.py,sha256=Vt2Ynr7uAX51hLbQu93QeHiFH4D9_WJMO99KljpbO2U,1160
@@ -99,16 +99,17 @@ maxframe/dataframe/sort/sort_values.py,sha256=-B0C2MXo9U33rW36xUFWqR8igPTdYwxAbI
99
99
  maxframe/dataframe/sort/core.py,sha256=yWVlULMI91lSgW7-F-nwBQ7Sc71sCLAYvLeM0GR49w0,1224
100
100
  maxframe/dataframe/sort/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
101
101
  maxframe/dataframe/sort/tests/test_sort.py,sha256=BE03oQ8lJTQUZhMW0vzwv9jjcLToLmc68vfj3hO_sp8,2604
102
- maxframe/dataframe/merge/merge.py,sha256=TEybvYFQAn67HEXPx_m1poLPPNW2sTdkJ7q0WUMpGpc,30423
103
- maxframe/dataframe/merge/concat.py,sha256=A6KGkekcT7E_cHgw9LIZN0zynydCKSm42yHjD5DTeHM,11482
104
- maxframe/dataframe/merge/__init__.py,sha256=isesjujGNB_rzutbCEQLApYY16O7qRgpp4cvFQVcN_8,1037
102
+ maxframe/dataframe/merge/merge.py,sha256=jIqUmcUc7Ye6Xj0dPy7HYB356lspowowHszI2Dn1qr0,30441
103
+ maxframe/dataframe/merge/concat.py,sha256=d-yLwxkhCVqw--nHa49R2f-SGtSR2YIfKGe0IxNKkz8,11792
104
+ maxframe/dataframe/merge/__init__.py,sha256=q7iqrvhzgsycMBJ78BOyyWwSEGzgXGasRIuZjmFQxnU,1121
105
105
  maxframe/dataframe/merge/append.py,sha256=-Y1LXO3mOn_8nYOlb1-8644bYcafInBen0G7f4OKKiA,4852
106
106
  maxframe/dataframe/merge/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
107
- maxframe/dataframe/merge/tests/test_merge.py,sha256=XZXfGcnlmRFI9IjO0q_bg9BUd-jVlIypUl73lNW4Vyo,11150
107
+ maxframe/dataframe/merge/tests/test_merge.py,sha256=aWia-4T-4OBL3PZ4Ffh0dsaEAFlU_6KqW_l6sMX8gv8,11259
108
108
  maxframe/dataframe/tseries/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
109
109
  maxframe/dataframe/tseries/to_datetime.py,sha256=ctRUuRPPyBIC0yLY0rOIIxEdK67e5o9c63KRFsuKZB8,11328
110
110
  maxframe/dataframe/tseries/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
111
111
  maxframe/dataframe/tseries/tests/test_tseries.py,sha256=PCikuMQlqUaN-_kM3M2HOHjnIPrBpWlaY2ivzQfgx5Y,989
112
+ maxframe/dataframe/tests/test_utils.py,sha256=uuOAkElYHS9TifEBt8qCwOL21FO6FMHKxdiBZcqnaOw,1818
112
113
  maxframe/dataframe/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
113
114
  maxframe/dataframe/tests/test_initializer.py,sha256=9VFQ1MtCWkTE-QHI_3C7HHtXFxdWH6IbgYkOmjL1vPg,2000
114
115
  maxframe/dataframe/ufunc/ufunc.py,sha256=P8mh9CwKnxoN624IaoZ010kwH1n4RiUUGMuU5IgHTOM,1651
@@ -122,23 +123,26 @@ maxframe/dataframe/missing/replace.py,sha256=sYFzkyChrev8Vl0NocDGTCdWTdHjXvzBzHb
122
123
  maxframe/dataframe/missing/tests/test_missing.py,sha256=L53Fm8w7r1uRghOhslWd0fKa7HJmn1Dk52ZTdG7FCi8,3134
123
124
  maxframe/dataframe/missing/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
124
125
  maxframe/dataframe/extensions/accessor.py,sha256=j7AYpmfPQwMS3ep52yY5ETtXyaO1cO4K9aPdELk2lR0,1447
125
- maxframe/dataframe/extensions/__init__.py,sha256=Mbp_WNVPctRzAUnbY9G_tnp5MJG6pUzjwoGv9J4pmck,1573
126
- maxframe/dataframe/extensions/reshuffle.py,sha256=2GogwgsZPy9hbP5ecrkSPSm7KC6MD9M-HZk7FO9WAGg,2637
127
- maxframe/dataframe/extensions/flatmap.py,sha256=aqWE3TtL6CR5FWFyWmSp5JjSFJ3-FzxYTwpsjEs89x8,10538
128
- maxframe/dataframe/extensions/tests/test_extensions.py,sha256=D759ZTZe-SCs65f1cJ9tRaiUhah61kKa8va1BR4-DD4,3011
126
+ maxframe/dataframe/extensions/flatjson.py,sha256=z6aRuquuHJcKlgw4wlt4fMMVmnY957TJPqZX_dq0nWc,4368
127
+ maxframe/dataframe/extensions/apply_chunk.py,sha256=LhRmmxdDdrDZCNjnXx2kZu3VVoEMpTUptnrufhqLETc,22492
128
+ maxframe/dataframe/extensions/__init__.py,sha256=MsKgGKlLkRJi6BAFyRfqlOrCqrgrrWe6GVoCUZ9t0aA,1880
129
+ maxframe/dataframe/extensions/reshuffle.py,sha256=Ubn4_-g9Rj9NPKyPmNb85aWg-VvotOdZhuivsu4ob0E,2635
130
+ maxframe/dataframe/extensions/flatmap.py,sha256=PaksumMD6NTXjnAk_1R_l1FOAveJFzCaRl039lO3Y9U,9926
131
+ maxframe/dataframe/extensions/tests/test_apply_chunk.py,sha256=e9iMl0Y2My0ERz1A3fWz1QppKxKZfbqMH8j9N4uE9vg,5851
132
+ maxframe/dataframe/extensions/tests/test_extensions.py,sha256=3RcdS9aD9Me13qE6lXLB0WpD-b3X6ZZQTIgZloBrlhY,4778
129
133
  maxframe/dataframe/extensions/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
130
- maxframe/dataframe/groupby/aggregation.py,sha256=BuhqZal6RLHkjvwJep86oT1a7rMqxxUAPxQ_dao6I6E,11953
131
- maxframe/dataframe/groupby/fill.py,sha256=JF3NxyXigZqg8ecKtLSndDmNMX8S6g_ChQR9JAK036E,4721
134
+ maxframe/dataframe/groupby/aggregation.py,sha256=sMQbCMq4XeHPMGnQauOryvzL8EH-X4l990MxSzwVX0U,11989
135
+ maxframe/dataframe/groupby/fill.py,sha256=YJ6q548v4n56vO3ObSSIBBjBJBHTYCf49HrHL3c7Rxw,4808
132
136
  maxframe/dataframe/groupby/cum.py,sha256=F5uX97hR1rMQG9YtvoR7MFFvP3zMDDv1GD9b2NqLcOI,3683
133
- maxframe/dataframe/groupby/__init__.py,sha256=nZkz1OAdYRj8qwQkUAZDax0pfCsUH_fprwuksS97vuc,3361
134
- maxframe/dataframe/groupby/getitem.py,sha256=kUcI9oIrjOcAHnho96Le9yEJxFydALsWbGpZfTtF8gY,3252
135
- maxframe/dataframe/groupby/core.py,sha256=K1hg9jod6z3C65SYoidmEAd_k0Mear4l5IQuwNMjpxQ,6075
136
- maxframe/dataframe/groupby/transform.py,sha256=pY3WPA4gN8piYSTInncjnRdh8mi9FDQa00A-Pyaoil4,8586
137
+ maxframe/dataframe/groupby/__init__.py,sha256=Vj7H1S7WBKygv6pu1L44djnfKWMxRSyfZ3Kh_cGUfLQ,3444
138
+ maxframe/dataframe/groupby/getitem.py,sha256=Nas7cZRlCmM8Xq9EIOPNib33gmXwYbQDHkSy_4NJcjQ,3415
139
+ maxframe/dataframe/groupby/core.py,sha256=SwVisn8IJpdEXbJlZ29AOhoaE4Si4h4bv5mx2hvwiy4,6076
140
+ maxframe/dataframe/groupby/transform.py,sha256=xGhBT06N-ml1OmlTAb5i-WSeQ-wHyBIevF_ngETnLYU,8824
137
141
  maxframe/dataframe/groupby/head.py,sha256=ZDkbSn3HuUR4GGkZJqo_fL-6KFJfs55aKXQkAh_0wvA,3266
138
142
  maxframe/dataframe/groupby/sample.py,sha256=IdoyzT-V5309txYvM_iaYKupsULfozMGwm1K3oihTf4,6935
139
- maxframe/dataframe/groupby/apply.py,sha256=gZVHN8nMXoy7BEHTBAVLQKtGicQ_jB3dsny8jEn0pUY,9484
143
+ maxframe/dataframe/groupby/apply.py,sha256=25AVvqHuOKnYL7gjEHrgafu91_wnoqTL25LMHqJDfTw,9627
140
144
  maxframe/dataframe/groupby/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
141
- maxframe/dataframe/groupby/tests/test_groupby.py,sha256=ctkAniUwunVsgCG-b6b2qKSCqHXFtYItr2ptoTrIB48,12362
145
+ maxframe/dataframe/groupby/tests/test_groupby.py,sha256=wwKPCFVT4ktVxKTEIlt5DIFgPHoEJKJO-gtM7b_YdWk,12376
142
146
  maxframe/dataframe/datastore/__init__.py,sha256=Ujd4ix4UJ7Zq-sV2pXTRDvZkKUvtt8sr-FfiUoi6Kh4,784
143
147
  maxframe/dataframe/datastore/core.py,sha256=hLGhqYxX73tq9sOFxMyYBRMawTnsVQqluW5FcE3YHfE,743
144
148
  maxframe/dataframe/datastore/to_csv.py,sha256=xVfpEsicD5A5uXLSdCN08K8uGyWB4QxnRcAbgBVUzbs,7747
@@ -150,19 +154,20 @@ maxframe/dataframe/fetch/core.py,sha256=z61_orBtOIrKFpFdJTNqyPhOw5ZCGe6QkXnDrGdM
150
154
  maxframe/dataframe/reduction/max.py,sha256=CqaueIN3cuF7vlE2rt2MAcXAD3Syd_R8W2dzcFhTmV0,1660
151
155
  maxframe/dataframe/reduction/nunique.py,sha256=BMg5FxTYzDWRL9kQlB1_18ecrQPXr8kLOp-u4zdDUbE,3467
152
156
  maxframe/dataframe/reduction/cummax.py,sha256=TyZ3Fd6bAES2SX3WdQK9Fi0gX_7Dqk3F907OKU6035s,1013
153
- maxframe/dataframe/reduction/aggregation.py,sha256=CplCZH70xfqUfxpnr0jNQoKXCvbKCzP9aqOVzr3ZH58,12604
157
+ maxframe/dataframe/reduction/aggregation.py,sha256=OpNsMUTRuccPulOiBNO8mE2FkYDFY6FEaY_q0FhhEak,12666
154
158
  maxframe/dataframe/reduction/skew.py,sha256=42bEutP4Ftj28RbLbLgIKiUQpG9tHPP0u9VVmBVFApw,2538
155
159
  maxframe/dataframe/reduction/custom_reduction.py,sha256=uu-NePAC8O2zmcxSfc_CabkIxqiBgAWbdRoUKnG9jfM,1435
156
160
  maxframe/dataframe/reduction/unique.py,sha256=Dhghnf9mvgS8p-ETJUlhfJajBEyVZPBp1I6NN7oO7iw,2955
157
161
  maxframe/dataframe/reduction/std.py,sha256=PYeh6-yton9vUI8D-dTlnXsWKCi-uDpop4UExmay7Ec,1355
158
162
  maxframe/dataframe/reduction/str_concat.py,sha256=wbb4Y4ZDyou_ixR6ukJ8wQw74nzI05tToNWaWSirbSA,1657
159
- maxframe/dataframe/reduction/__init__.py,sha256=ZadA_lXtrr1nQyb6vJrv_eb82bXiiiDHIn93F4O9-AU,4190
163
+ maxframe/dataframe/reduction/__init__.py,sha256=WdA7sHtilWu8EBxhSYonT0X3tqlRK6MCjFn8ZmMjvpw,4335
160
164
  maxframe/dataframe/reduction/core.py,sha256=xoEiVQQtl1eLtJ4AY6xqy3tCkyi6WZwSLbcv-f8-B14,30395
161
165
  maxframe/dataframe/reduction/all.py,sha256=h3Y04RJ-mTxAggX1-BIpuiyhNofQEkBzsAxKOX--kv0,1966
162
166
  maxframe/dataframe/reduction/cummin.py,sha256=CA9wjhx_ZFfk6b3KbbDykWZiyXsfwLBUODKn36WuGug,1013
163
167
  maxframe/dataframe/reduction/min.py,sha256=8Kh07yoTRWaCWGKxZ4a64_tlIljR8GsjlbwdsjNmPTw,1660
164
168
  maxframe/dataframe/reduction/mean.py,sha256=t1lVlt7FQI2St4c0arH8nPZLI1ihIOh8IDrU8gGmKyE,1612
165
169
  maxframe/dataframe/reduction/var.py,sha256=LFu2zXi0GD1e8_qUDV7Ea6NtejRCQkYshPEEtQ5VTBA,2008
170
+ maxframe/dataframe/reduction/median.py,sha256=mIlhA_s-83f80wau1tQSdx84dlz5rjxlLQN857uXJq8,1593
166
171
  maxframe/dataframe/reduction/kurtosis.py,sha256=3z3FKtPqhEi2PH66i57k23Obazj_Tb9RdjCOk-G9Rr8,2840
167
172
  maxframe/dataframe/reduction/sum.py,sha256=cu6M462w_kRUyGPrrZaxLBES0tq5gCVVdZ93wfm7dJs,2049
168
173
  maxframe/dataframe/reduction/prod.py,sha256=DHTAr4xZN4hFq9zLz5cnKiUZQcH7jR3Gqvwtr-PydaQ,2049
@@ -173,7 +178,7 @@ maxframe/dataframe/reduction/cumprod.py,sha256=e2W6RGXIqeHjlm07XJ0KwSfp3f0mrQ4F4
173
178
  maxframe/dataframe/reduction/count.py,sha256=ifvpEZuMamlvsTuPjmrh_xLbBMwoqylQ9j74VG_9Q4w,1741
174
179
  maxframe/dataframe/reduction/reduction_size.py,sha256=5wGc5cyuUllewvKPeJargbEjuzCakhir3NXZ0sgeqWc,1120
175
180
  maxframe/dataframe/reduction/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
176
- maxframe/dataframe/reduction/tests/test_reduction.py,sha256=IMxAoGHMtz_54UNFO-_nmsNvq0-fuVZcxmf5sOAIyWs,17227
181
+ maxframe/dataframe/reduction/tests/test_reduction.py,sha256=zCR5xRrNF1drecRUdS7xaA0cRHq43XqYf1ESK8gtgtA,17623
177
182
  maxframe/dataframe/plotting/__init__.py,sha256=JShRu5lSUAfwgTFUMxQoIqiH1gg9H5cieoRyg4ybieA,1393
178
183
  maxframe/dataframe/plotting/core.py,sha256=kvAM1ikU4SsFhvhmpOTQVTs2EX4ypAgNnjD9Jqy3xyA,2233
179
184
  maxframe/dataframe/plotting/tests/test_plotting.py,sha256=IKAOcG0LotMGZCrvDzWiHmoFXqtyrVDn87eIOdyg6Ho,4118
@@ -183,8 +188,8 @@ maxframe/dataframe/window/ewm.py,sha256=xqRiw4_KYpPTzhdKnN9wIknWdKsFls-uEzYO1T18
183
188
  maxframe/dataframe/window/__init__.py,sha256=D8DOhmH-PabNAFPNwzwsw-mH0iELIwyU7tyiiaZGJhw,910
184
189
  maxframe/dataframe/window/core.py,sha256=T15k5OqC1y1ewlT2ddDf0oFP9LeOdneZ3po1mxLdOgc,2205
185
190
  maxframe/dataframe/window/rolling.py,sha256=btt0uOtsK3z2gR96tVXrXJUrvLFus5FUunRaooizpIw,12042
186
- maxframe/dataframe/window/expanding.py,sha256=OmrNK14cj9corIyTCACZy1_SgTXL3i2ZQplvnlRKUSc,3794
187
- maxframe/dataframe/window/tests/test_expanding.py,sha256=RV982SmVAVuUVS7cjWdTFk_VqACphhRQb9DPu9eyWqQ,1944
191
+ maxframe/dataframe/window/expanding.py,sha256=cZl0cnlS-P09uc0gSINOeTrzW57rz-g2-j7YcvbDB6g,3918
192
+ maxframe/dataframe/window/tests/test_expanding.py,sha256=OxCuZ7MTeO-KbbaEHaa00JF6ZvgnaSSMqn8-De2LttY,1916
188
193
  maxframe/dataframe/window/tests/test_rolling.py,sha256=JWnXGUCz3li5B10rvnzzcTXbQq1lL6Svo3NL7BeBGGU,1714
189
194
  maxframe/dataframe/window/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
190
195
  maxframe/dataframe/window/tests/test_ewm.py,sha256=R6I2smeLhpS9cczCAuZdP5nKj0s4ssKB5VJ6hRW-9b0,2060
@@ -237,10 +242,10 @@ maxframe/dataframe/arithmetic/not_equal.py,sha256=jwfWfLHbRmVEMVdAmHlFUU4Kd6hhye
237
242
  maxframe/dataframe/arithmetic/radians.py,sha256=pSq9S0KlV0Xx0vGSdxdol3348dSyYuxG4jMFbGFdQ6E,935
238
243
  maxframe/dataframe/arithmetic/sin.py,sha256=zgWoijVpASlkZ7cnZZxKSSHUiLqQ0pKUAIOHEfCBubc,915
239
244
  maxframe/dataframe/arithmetic/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
240
- maxframe/dataframe/arithmetic/tests/test_arithmetic.py,sha256=-FowcMCeazWtgBRW77VSdo9-JS3J0Js_FUMP1MW2JHw,25257
245
+ maxframe/dataframe/arithmetic/tests/test_arithmetic.py,sha256=xAAxpq0Ic6KaMTDJu9I5_p0U3TVMiI21I35NOsv-inI,25163
241
246
  maxframe/dataframe/indexing/reset_index.py,sha256=uzGszHfkhwZgZtEaygy5UPrvHPNPXgWZaTOXdNxGBT8,13122
242
247
  maxframe/dataframe/indexing/iat.py,sha256=ANURJ8qn_UitgM01gDPeaQOlSBxbk0pmN4Yr-iPRXM8,1127
243
- maxframe/dataframe/indexing/loc.py,sha256=ZmiK3a2f-krkXFvNLSlzRRa6GWGiAAXk_3mWZC_MqdQ,14845
248
+ maxframe/dataframe/indexing/loc.py,sha256=nKKwY8jsjmIU-Ap9AtYbzCxbXcvLzvc8gOMdbo0hzcg,14975
244
249
  maxframe/dataframe/indexing/align.py,sha256=hEuoaNX4bI9LBWp_1kGG7GSs3PDF95tDXo7GX5nypGI,12085
245
250
  maxframe/dataframe/indexing/rename.py,sha256=jYstF7CKilLjAlIGKs2wVhYtijJDCz8AWg2VF-1KROU,12892
246
251
  maxframe/dataframe/indexing/setitem.py,sha256=PgVZr2A_joTHz9GUbnGfuSI28qSnwe-n84yKFJagLUc,5004
@@ -262,8 +267,14 @@ maxframe/learn/__init__.py,sha256=ii-8fJO-ubA3wRej1S1jXsb62zrS5MaAWc2gqQAAHFw,63
262
267
  maxframe/learn/core.py,sha256=JeKLITsz1WrKOTR6Air2lG28MtjamWtFnal4ynvprNw,756
263
268
  maxframe/learn/utils/__init__.py,sha256=zpkZ-HBwv91vyMeBVs59J_u0uVQCXUkEzo_pW2h9q00,646
264
269
  maxframe/learn/utils/core.py,sha256=_tskQMfdvr5VAV68fDzM0DSVF2S7SMDnNXA8j_gHmGI,1029
265
- maxframe/learn/contrib/__init__.py,sha256=zmDTNjDax2LR3hTc3MU16k0NUAdkWNsOlgfnjqiGvao,649
270
+ maxframe/learn/contrib/__init__.py,sha256=huq1EWKFZZxmnUKxc8-gn2KPh_mrNTiaRxMtPNvlv7Y,662
266
271
  maxframe/learn/contrib/utils.py,sha256=k5jlwY8pru_PD8olOBOsMcBLeo31NMx53TjJmSvbvy8,1662
272
+ maxframe/learn/contrib/llm/multi_modal.py,sha256=c37w0yhEDK95zCVXtRVdHFaJ9Lq8wmmwDi9f_dp0kSk,1446
273
+ maxframe/learn/contrib/llm/__init__.py,sha256=n9xvRXQEDWt5DFl1rAkDDBoyybAe7qExGR5M_-yDTzg,648
274
+ maxframe/learn/contrib/llm/core.py,sha256=b-STLC2PsjDAnn1KP5KpGKrpgVUXqscuOSf40xttDuo,2006
275
+ maxframe/learn/contrib/llm/text.py,sha256=l-I2U6lrGPEgplpnvoP2YPfD566xSnYXfMzE2nJlTiI,1422
276
+ maxframe/learn/contrib/llm/models/__init__.py,sha256=L3-nQSRCfmJLlMPdn3cZrUiLm2llVz1qnae-ehElyGY,660
277
+ maxframe/learn/contrib/llm/models/dashscope.py,sha256=BE6Dj8rEocLGSm9UD-Usofdzs0QbWrQ4-iOuFaOKjjE,2298
267
278
  maxframe/learn/contrib/xgboost/classifier.py,sha256=BgDRqInNhe6YvC4026vRq4DU9lL6vVDiCWJFFON9If4,3886
268
279
  maxframe/learn/contrib/xgboost/dmatrix.py,sha256=r-3JfQNwv8Qgi6zxwSVlxolv8K82paofCBaR1u860rs,4742
269
280
  maxframe/learn/contrib/xgboost/predict.py,sha256=BlFKaM0Fdw2BeUtxVyNtNTjwiXqjJNZjP0lbs5SNtjI,3756
@@ -297,7 +308,7 @@ maxframe/core/entity/tests/test_objects.py,sha256=-HS2dux6OdmwtMY6GRxwASq2gPSRY5
297
308
  maxframe/core/graph/__init__.py,sha256=tqUUWDOXp2KFjO7zv1dN_-ttE-ef09-S1GNt8EQ35Bk,765
298
309
  maxframe/core/graph/entity.py,sha256=3ifzsEDIxzDjeM9MhlSwgz92GuaEEoCVWxEkEu2xIgE,4863
299
310
  maxframe/core/graph/core.pyx,sha256=kyqE5-X9Tc82wU4N_zsf8jNthAHWHTVRNFQWNNbzgpM,15923
300
- maxframe/core/graph/core.cpython-310-darwin.so,sha256=7jYTpD3axVlV7n5ijFL8MQVCSeYCMMn5atexSdZ3gMg,685616
311
+ maxframe/core/graph/core.cpython-310-darwin.so,sha256=n0-ntuuE9LwuksX-5-hoF1Wx_N-zPorTRxYCVTzZKO0,685616
301
312
  maxframe/core/graph/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
302
313
  maxframe/core/graph/tests/test_graph.py,sha256=kZfe_SfMOoHjEfXvtVtn0RjK4lOd-tFasxSpfL4G1WE,7462
303
314
  maxframe/core/graph/builder/__init__.py,sha256=TYHKq5Y8iTRWprw6CZosdtq-NGV7Sa1u1CI6adR9hgk,640
@@ -312,55 +323,55 @@ maxframe/core/operator/core.py,sha256=T2YYIleKiFxmufpHF7ELOztlJsYO-Kn4KYhQhY4jRU
312
323
  maxframe/core/operator/shuffle.py,sha256=A_w62UxXRKyDNESo4Q0UGmCpuFfPlQXWmPyQGHdpz3A,4746
313
324
  maxframe/core/operator/utils.py,sha256=CVVamZJwbnequxDZmYcPLt4rcfAn8s77xk5hlr8eXh4,1706
314
325
  maxframe/core/operator/objects.py,sha256=lEicZmIsR2sgWsH3oAeeYMde8C0TYeu2vkAyGj8WUVM,1965
315
- maxframe/core/operator/base.py,sha256=gMSjgfOBJe0tMkFRukyGnGSInLVHw7xlxASlczeuzQg,15187
326
+ maxframe/core/operator/base.py,sha256=IXBJ0Nd8JAcnwN8FQ1H-QXiMRKAz2_LUZstku7Msv1E,15336
316
327
  maxframe/core/operator/tests/test_core.py,sha256=57aICnc5VLqdVK7icAORTWC81bSjBxeeVWIJcha9J_0,1691
317
328
  maxframe/core/operator/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
318
- maxframe/config/config.py,sha256=Qqfe0oS2SB0uf2FjxFbf7tFa8OK2OXZkta4AbfsxuoM,15388
329
+ maxframe/config/config.py,sha256=3E7VsRV-IVJ8lu0SDU4NMdizuJBVEu0uh_uUFIFOzBU,16280
319
330
  maxframe/config/validators.py,sha256=UjbxMKZcDG98-9uCQESm_V56d-VUD7kQGV0KJghVbj8,2511
320
- maxframe/config/__init__.py,sha256=g5lN3nP2HTAXa6ExGxU1NwU1M9ulYPmAcsV-gU7nIW8,656
331
+ maxframe/config/__init__.py,sha256=mkW-3nDoNFlRIECv2WbZBv71of2X4KmTUpXK2zuUFjg,683
321
332
  maxframe/config/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
322
333
  maxframe/config/tests/test_validators.py,sha256=U_7yKSl0FdVdDwKU1EsnCzNWaOXi8xrIC08x7hb_O4c,1240
323
- maxframe/config/tests/test_config.py,sha256=Cx3buKli4F77zwJaB-vnUSlE9LUbt3ObHW38cIE2dDs,2736
334
+ maxframe/config/tests/test_config.py,sha256=iddxMP_OfRtcgVtXi42VanLF7CkDy_IwASDVZA9PHds,3283
324
335
  maxframe/serialization/exception.py,sha256=2Ubi2ld5XpduqAln26q0T67XLj-OpdwW1Z-nyC_wtCI,2993
325
336
  maxframe/serialization/core.pxd,sha256=eBrSXiAPlX83Kbwml5IKJvqsIT03lPCeS6is9HplLiU,1501
326
- maxframe/serialization/pandas.py,sha256=Fj0HZsnTyZqDW4pTiz2AX_Clly6NwjAbQoaMhYwCocs,7315
337
+ maxframe/serialization/pandas.py,sha256=56qngiE78mwHw7srbDE_rnN1XxgX34B7wdAhDJQRfaE,8488
327
338
  maxframe/serialization/core.pyi,sha256=a3CQxlJv5aYyy__VNKEq5XsaHE-n0MPKE_9CcWu8Q34,2142
328
339
  maxframe/serialization/arrow.py,sha256=VnGxNLU9UV_cUPTze43bEFCIbYLAOZnp2pAwVJbAIzQ,3418
329
340
  maxframe/serialization/__init__.py,sha256=LrwesIKJ6MR_mhxW7qRXJXohH9waubZMR9-YicGDMUs,936
330
341
  maxframe/serialization/maxframe_objects.py,sha256=R9WEjbHL0Kr56OGkYDU9fcGi7gII6fGlXhi6IyihTsM,1365
331
342
  maxframe/serialization/numpy.py,sha256=8_GSo45l_eNoMn4NAGEb9NLXY_9i4tf9KK4EzG0mKpA,3213
332
343
  maxframe/serialization/scipy.py,sha256=hP0fAW0di9UgJrGtANB2S8hLDbFBtR8p5NDqAMt5rDI,2427
333
- maxframe/serialization/core.pyx,sha256=ZLVh7W7LgUb4KPb7rtuezRL6sQC4GNb3hLndAeSbiyU,35198
334
- maxframe/serialization/core.cpython-310-darwin.so,sha256=cndAdipNTVNOVi2plnpjdxDkVkCZZe5D0WySwpED8Cg,1159616
335
- maxframe/serialization/tests/test_serial.py,sha256=Wj_I6CBQMaOtE8WtqdUaBoU8FhBOihht6SfeHOJV-zU,12511
344
+ maxframe/serialization/core.pyx,sha256=mqfb7YUd-Vop8wmGJTjziDP59YX2tr1iN6puRmFI7dg,35551
345
+ maxframe/serialization/core.cpython-310-darwin.so,sha256=oyorRncIExwF0VK5YehfO79RAJVeHTtBaw4_FMAjQvg,1178256
346
+ maxframe/serialization/tests/test_serial.py,sha256=fL1ufMU7Lf1fgQ4fwJ0QrKWGQIsw_zHtAQ9zkRfFrOI,12543
336
347
  maxframe/serialization/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
337
348
  maxframe/serialization/serializables/field.py,sha256=atVgX-9rsVG1fTev7vjQArVwIEaCRjXoSEjpQ3mh6bA,16015
338
349
  maxframe/serialization/serializables/__init__.py,sha256=_wyFZF5QzSP32wSXlXHEPl98DN658I66WamP8XPJy0c,1351
339
- maxframe/serialization/serializables/core.py,sha256=4eZdmtrrz10aT6rVhEfCWWP0_slHFFpIkIXmRdZgcos,15602
340
- maxframe/serialization/serializables/field_type.py,sha256=Feh09hu8XyaxS5MaJ4za_pcvqJVuMkOeGxwQ9OuJw6I,14865
350
+ maxframe/serialization/serializables/core.py,sha256=drZB6nSOi7P-W-bbZpH2PirlSJNreq44PdlKI6qSEFQ,17509
351
+ maxframe/serialization/serializables/field_type.py,sha256=tgaLzbJ9RmzPOkL_iOfl9E8njZ5J7MtRkGLDnY0lRz8,14933
341
352
  maxframe/serialization/serializables/tests/test_field_type.py,sha256=T3ebXbUkKveC9Pq1nIl85e4eYascFeJ52d0REHbz5jo,4381
342
353
  maxframe/serialization/serializables/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
343
- maxframe/serialization/serializables/tests/test_serializable.py,sha256=P6BCYvm-0HxlEHruyw-SIdVBywxQw16JUMws_lvqTk0,9867
354
+ maxframe/serialization/serializables/tests/test_serializable.py,sha256=wpdqiKnMYpQm0ztbJqMF7-vFnjYe4zWiSMXJnAFGt3I,10266
344
355
  maxframe/io/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
345
- maxframe/io/odpsio/tableio.py,sha256=NAAjHJPOGNeSFSqkJokdMBaPIj-fZYfQ64TWysykrJA,24453
346
- maxframe/io/odpsio/arrow.py,sha256=2x2N9UvihtXRBA5Ym7tMxqpHQbWi-9hq2lJ_tatETiI,3926
347
- maxframe/io/odpsio/__init__.py,sha256=VD_mvxljDKDfJHYuN3OpjJWzHqFT5DKykIvECahGu0w,902
348
- maxframe/io/odpsio/volumeio.py,sha256=2cbC1jarfahsL5Hh9HxjsrC2TbWoXkE96x8Tt6EFJko,2167
349
- maxframe/io/odpsio/schema.py,sha256=kMuBw3zCI5aNXs8qv8Hjl8pU85oYmHd_Ub1PojEaH18,12399
350
- maxframe/io/odpsio/tests/test_tableio.py,sha256=HFSx2R7Bj4O1bGM-H9fMQkXjNUmvvT1SIUwsIcw6M2c,5606
356
+ maxframe/io/odpsio/tableio.py,sha256=Imt5_o53Lg0kqJwv0rdIkIDkhimU4BPYoyHzFKXfTS8,22452
357
+ maxframe/io/odpsio/arrow.py,sha256=Fq5LFyiu8zprCoRs8ITWEn8pIFCZzoYZrL4IDreYURQ,5929
358
+ maxframe/io/odpsio/__init__.py,sha256=GVR_nKbpwG7DTEp2oOoNb2lMWudIJBIAQfdQQ_2Meh4,917
359
+ maxframe/io/odpsio/volumeio.py,sha256=y3JwUgBryoBFrkPppT7hCf6VGyJDADM0MUlBXmcia5w,2948
360
+ maxframe/io/odpsio/schema.py,sha256=U6kHDkRnp3uluMN36ojPQ1SzfiErfdcphJvxUYejQZQ,12980
361
+ maxframe/io/odpsio/tests/test_tableio.py,sha256=2yuQnzmgDZpDlhSrLjOcOWnnnRZrTfYcCMhvCQOoa7Q,5746
351
362
  maxframe/io/odpsio/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
352
- maxframe/io/odpsio/tests/test_schema.py,sha256=qXh6NPdQWbqhtmT4K9BiVqxlPjJclROup2Ijoyt7lIU,11815
363
+ maxframe/io/odpsio/tests/test_schema.py,sha256=7aQE7DytWatDxZxWKDU7TMGrDmSWbVW6k06rJvxxksU,13288
353
364
  maxframe/io/odpsio/tests/test_arrow.py,sha256=SQ9EmI9_VOOC8u6Rg6nh3IPC2fPbLvJ9HwtpMNDRhL8,3106
354
- maxframe/io/odpsio/tests/test_volumeio.py,sha256=JlKn_pDU5bCxoPvt7GUJYfCRJIVO1YgCiHPBXHxFer8,2868
365
+ maxframe/io/odpsio/tests/test_volumeio.py,sha256=1nsYzEbRAwHJitaOPmCEd5k5vmTPEM_UMRY32VTEH-Y,3572
355
366
  maxframe/io/objects/__init__.py,sha256=PtpSp5t1rGJ1DD0IjQs6oSHkOxT2JDMLfCaDz8VUCZ8,754
356
367
  maxframe/io/objects/core.py,sha256=r9X1Cu9FNUdarMFiTPWX_MPcE8AW5e_d_AsFWjdZDP8,4577
357
368
  maxframe/io/objects/tensor.py,sha256=F0aObDLIi_2ND5x-uVogi2A29kIuyhKtZLyZqxI13iM,2673
358
- maxframe/io/objects/tests/test_object_io.py,sha256=g5vi7Y8ZrR7jrp1FUwXT-uM6l57Kea5wkKZk7iovvAA,3092
369
+ maxframe/io/objects/tests/test_object_io.py,sha256=LXPwKX7XYDKPy6AZeLdnfGuW-wfNb5rJunY4MPU8aiY,3775
359
370
  maxframe/io/objects/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
360
371
  maxframe/tests/test_utils.py,sha256=imfe7sN1_4EjWuT4qMYMwjOjgL0t5oewyhebBGPDBhY,11504
361
372
  maxframe/tests/test_protocol.py,sha256=9DWr3z1AI2DUMnLyak91PKSfV_ILkOtwAZPCmM42kcg,6103
362
373
  maxframe/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
363
- maxframe/tests/utils.py,sha256=c3A_4pU7OO5OTfKorc7uOks3ppL1NB0jGupsiDi7b9s,4884
374
+ maxframe/tests/utils.py,sha256=KQu_NR6EQ0dCDlJuaeMFTIzmZjovNS2KrBVED5UVVZo,5343
364
375
  maxframe/tests/test_codegen.py,sha256=GMrnpSb2eyB_nmuv8-_p47Kw877ElKS3BP52SpqZNIQ,2208
365
376
  maxframe/lib/wrapped_pickle.py,sha256=HJCb8ERK6clUVgPe529vduMmbMVqBlrQ3W8mH3tYcaE,3836
366
377
  maxframe/lib/version.py,sha256=yQ6HkDOvU9X1rpI49auh-qku2g7gIiztgEH6v1urOrk,18321
@@ -368,7 +379,7 @@ maxframe/lib/compression.py,sha256=k9DSrl_dNBsn5azLjBdL5B4WZ6eNvmCrdMbcF1G7JSc,1
368
379
  maxframe/lib/__init__.py,sha256=CzfbLNqqm1yR1i6fDwCd4h1ptuKVDbURFVCb0ra7QNc,642
369
380
  maxframe/lib/mmh3.pyi,sha256=AOp_XqbA5-NwepeeBeG0OFJj5tjEAFLzcViyRNZ0eVI,1494
370
381
  maxframe/lib/functools_compat.py,sha256=PMSkct9GIbzq-aBwTnggrOLNfLh4xQnYTIFMPblzCUA,2616
371
- maxframe/lib/mmh3.cpython-310-darwin.so,sha256=XZcxpaX6ia_Bo6Wl3M5qEt0PTOb893DGiIOfdNx5dMw,119784
382
+ maxframe/lib/mmh3.cpython-310-darwin.so,sha256=SIBrYPM5zwjrxIQHvaP04op4UnAORijOy77aJi_dyYI,119784
372
383
  maxframe/lib/mmh3_src/mmh3module.cpp,sha256=9J9eA42eKWTl546fvfQPNuIM3B2jpWSADpgIw3tr2jg,11604
373
384
  maxframe/lib/mmh3_src/MurmurHash3.h,sha256=lg5uXUFyMBge2BWRn0FgrqaCFCMfDWoTXD4PQtjHrMA,1263
374
385
  maxframe/lib/mmh3_src/MurmurHash3.cpp,sha256=kgrteG44VSftwp5hhD7pyTENDRU9wI_DqLD1493-bP0,8096
@@ -407,7 +418,7 @@ maxframe/lib/sparse/vector.py,sha256=oejy4n1j_x4posNkB6EVlC-9WoAeOWvvm2CrKCxCk2w
407
418
  maxframe/lib/sparse/__init__.py,sha256=XIEKI59-nnD9Gxu5Rr6LiSzhy42EfKfSGNkOd9CBQ1o,18058
408
419
  maxframe/lib/sparse/core.py,sha256=ihlxpVlXoJCnOnEmf74bUwuEaQA4LLOi1EU1wK1mdGA,2156
409
420
  maxframe/lib/sparse/array.py,sha256=3bFocbqgE46D9NWpOU-lFp8tDgOegIu78mojVpjx2Mw,52861
410
- maxframe/lib/sparse/tests/test_sparse.py,sha256=-lupChI1aOT_mQpgdyywwFb8YxWIKh9YqgDObywuoAE,15189
421
+ maxframe/lib/sparse/tests/test_sparse.py,sha256=OU_Aq2n28rqTDbMRPLcq7Rf1sLgjRJDJ3bCYLszmeOs,15309
411
422
  maxframe/lib/sparse/tests/__init__.py,sha256=CzfbLNqqm1yR1i6fDwCd4h1ptuKVDbURFVCb0ra7QNc,642
412
423
  maxframe/lib/tblib/pickling_support.py,sha256=w72oyWoA7LLtFYwU2wgw2J-ckM7BrFXn6W0MzTpss84,2935
413
424
  maxframe/lib/tblib/LICENSE,sha256=GFqWP6gjbSgxqNcmj0rE1Cj9-7bOaEEqbOHlMPYXwtQ,1330
@@ -415,7 +426,7 @@ maxframe/lib/tblib/__init__.py,sha256=c4aVldbxJdS-bFsSDcmDQy_mW0qAcMrb4pHS2tjYhY
415
426
  maxframe/lib/tblib/cpython.py,sha256=FQ0f6WTQyQHoMRhgPqrA0y0Ygxlbj5IC53guxA4h9Cw,2418
416
427
  maxframe/lib/tblib/decorators.py,sha256=bcllK3kVuPnj6SNZGmlJGxTK0ovdt7TJDXrhA4UE5sQ,1063
417
428
  maxframe/tensor/array_utils.py,sha256=259vG4SjyhiheARCZeEnfJdZjoojyrELn41oRcyAELs,4943
418
- maxframe/tensor/__init__.py,sha256=F4iZBp8sd20XNgSFX8Bl8y6wOpEA4bmQ0wnoN4F5rVY,4392
429
+ maxframe/tensor/__init__.py,sha256=_vc53_zRm_vauMkZiFVEPRSwcMkU2TpGpEn_4vB3RJo,4648
419
430
  maxframe/tensor/core.py,sha256=ouSU9TbFFShyvdJkyh9h6AUio97SXphs4-lz_w-7_fk,17945
420
431
  maxframe/tensor/utils.py,sha256=wCx2ZBk_zmS2lJgtuUUGdqRSkhhnLAyeB0DTlIGZUyg,22411
421
432
  maxframe/tensor/operators.py,sha256=XiYTFYLuKDMjEy-DZs5HKmcwvNgfJX3sGzIttAqNG8c,3338
@@ -455,7 +466,7 @@ maxframe/tensor/datasource/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQB
455
466
  maxframe/tensor/rechunk/__init__.py,sha256=pQ4vh6rNzxjIkxrWTxXjAcTDmUw3961-H1f__-lJl6A,797
456
467
  maxframe/tensor/rechunk/rechunk.py,sha256=ltvGlUQxzoHSE7bC6J6uQ8sO-YhuFpxmj8-ArJJXIoY,1392
457
468
  maxframe/tensor/merge/concatenate.py,sha256=q0qVpizcU7E6op6D54bF4bl2eMLIJOOwb8AkG1jrDCE,3213
458
- maxframe/tensor/merge/vstack.py,sha256=FzuynVGKkNiOXbzp4Jkde0VMxzs_FfxkxO7J0UU9nhs,2264
469
+ maxframe/tensor/merge/vstack.py,sha256=XGyubfPwkauUQ2zw4D9qd5uLLSRw5LgadHBpEQH71V8,2268
459
470
  maxframe/tensor/merge/__init__.py,sha256=NCuoHVwBtVUQnl8-0ph9cT5ARRn3pTdqZt76-XSvpvs,686
460
471
  maxframe/tensor/merge/stack.py,sha256=4ZMVqtJQ0nQtbtnJKTX0Z_fSUn8slLLSO56mFT-b0gE,4145
461
472
  maxframe/tensor/merge/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.44.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-macosx_10_9_universal2
5
5
 
@@ -63,9 +63,12 @@ class FrameDriverClient:
63
63
  session_id: str,
64
64
  dag: TileableGraph,
65
65
  managed_input_infos: Dict[str, ResultInfo] = None,
66
+ new_settings: Dict[str, Any] = None,
66
67
  ) -> DagInfo:
67
68
  req_url = f"{self._endpoint}/api/sessions/{session_id}/dags"
68
- req_body = ExecuteDagRequest(session_id, dag, managed_input_infos)
69
+ req_body = ExecuteDagRequest(
70
+ session_id, dag, managed_input_infos, new_settings=new_settings
71
+ )
69
72
  resp = await httpclient.AsyncHTTPClient().fetch(
70
73
  req_url,
71
74
  method="POST",
@@ -20,7 +20,6 @@ import pandas as pd
20
20
  import pyarrow as pa
21
21
  from odps import ODPS
22
22
  from odps.models import ExternalVolume
23
- from odps.tunnel import TableTunnel
24
23
 
25
24
  from maxframe.core import OBJECT_TYPE
26
25
  from maxframe.dataframe.core import DATAFRAME_TYPE
@@ -28,8 +27,10 @@ from maxframe.io.objects import get_object_io_handler
28
27
  from maxframe.io.odpsio import (
29
28
  ODPSTableIO,
30
29
  ODPSVolumeReader,
30
+ TunnelTableIO,
31
31
  arrow_to_pandas,
32
32
  build_dataframe_table_meta,
33
+ odps_schema_to_pandas_dtypes,
33
34
  )
34
35
  from maxframe.protocol import (
35
36
  DataFrameTableMeta,
@@ -116,18 +117,29 @@ class ODPSTableFetcher(ToThreadMixin, ResultFetcher):
116
117
  and tileable.dtypes is None
117
118
  and info.table_meta is not None
118
119
  ):
119
- tileable.refresh_from_table_meta(info.table_meta)
120
+ if info.table_meta.pd_column_dtypes is not None:
121
+ tileable.refresh_from_table_meta(info.table_meta)
122
+ else:
123
+ # need to get meta directly from table
124
+ table = self._odps_entry.get_table(info.full_table_name)
125
+ pd_dtypes = odps_schema_to_pandas_dtypes(table.table_schema).drop(
126
+ info.table_meta.table_index_column_names
127
+ )
128
+ tileable.refresh_from_dtypes(pd_dtypes)
120
129
 
121
130
  if tileable.shape and any(pd.isna(x) for x in tileable.shape):
122
131
  part_specs = [None] if not info.partition_specs else info.partition_specs
123
132
 
124
133
  with sync_pyodps_options():
125
134
  table = self._odps_entry.get_table(info.full_table_name)
126
- tunnel = TableTunnel(self._odps_entry)
127
- total_records = 0
128
- for part_spec in part_specs:
129
- session = tunnel.create_download_session(table, part_spec)
130
- total_records += session.count
135
+ if isinstance(tileable, DATAFRAME_TYPE) and tileable.dtypes is None:
136
+ dtypes = odps_schema_to_pandas_dtypes(table.table_schema)
137
+ tileable.refresh_from_dtypes(dtypes)
138
+
139
+ part_sessions = TunnelTableIO.create_download_sessions(
140
+ self._odps_entry, info.full_table_name, part_specs
141
+ )
142
+ total_records = sum(session.count for session in part_sessions.values())
131
143
 
132
144
  new_shape_list = list(tileable.shape)
133
145
  new_shape_list[0] = total_records
@@ -236,7 +248,10 @@ class ODPSVolumeFetcher(ToThreadMixin, ResultFetcher):
236
248
  ) -> Any:
237
249
  def volume_fetch_func():
238
250
  reader = ODPSVolumeReader(
239
- self._odps_entry, info.volume_name, info.volume_path
251
+ self._odps_entry,
252
+ info.volume_name,
253
+ info.volume_path,
254
+ replace_internal_host=True,
240
255
  )
241
256
  io_handler = get_object_io_handler(tileable)()
242
257
  return io_handler.read_object(reader, tileable, indexes)
@@ -14,6 +14,7 @@
14
14
 
15
15
  import abc
16
16
  import asyncio
17
+ import copy
17
18
  import logging
18
19
  import time
19
20
  import weakref
@@ -25,6 +26,7 @@ import numpy as np
25
26
  import pandas as pd
26
27
  from odps import ODPS
27
28
  from odps import options as odps_options
29
+ from odps.console import in_ipython_frontend
28
30
 
29
31
  from maxframe.config import options
30
32
  from maxframe.core import Entity, TileableGraph, build_fetch, enter_mode
@@ -82,10 +84,21 @@ class MaxFrameServiceCaller(metaclass=abc.ABCMeta):
82
84
  def get_settings_to_upload(self) -> Dict[str, Any]:
83
85
  sql_settings = (odps_options.sql.settings or {}).copy()
84
86
  sql_settings.update(options.sql.settings or {})
85
-
86
87
  quota_name = options.session.quota_name or getattr(
87
88
  odps_options, "quota_name", None
88
89
  )
90
+ quota_settings = {
91
+ sql_settings.get("odps.task.wlm.quota", None),
92
+ options.spe.task.settings.get("odps.task.wlm.quota", None),
93
+ options.pythonpack.task.settings.get("odps.task.wlm.quota", None),
94
+ quota_name,
95
+ }.difference([None])
96
+ if len(quota_settings) >= 2:
97
+ raise ValueError(
98
+ "Quota settings are conflicting: %s" % ", ".join(sorted(quota_settings))
99
+ )
100
+ elif len(quota_settings) == 1:
101
+ quota_name = quota_settings.pop()
89
102
  lifecycle = options.session.table_lifecycle or odps_options.lifecycle
90
103
  temp_lifecycle = (
91
104
  options.session.temp_table_lifecycle or odps_options.temp_lifecycle
@@ -113,6 +126,8 @@ class MaxFrameServiceCaller(metaclass=abc.ABCMeta):
113
126
  mf_settings["session.quota_name"] = quota_name
114
127
  if enable_schema is not None:
115
128
  mf_settings["session.enable_schema"] = enable_schema
129
+ if options.session.enable_high_availability is None:
130
+ mf_settings["session.enable_high_availability"] = not in_ipython_frontend()
116
131
  mf_settings["session.default_schema"] = default_schema or "default"
117
132
  return mf_settings
118
133
 
@@ -184,6 +199,8 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
184
199
 
185
200
  self._caller = self._create_caller(odps_entry, address, **kwargs)
186
201
  self._last_settings = None
202
+ self._pull_interval = 1 if in_ipython_frontend() else 3
203
+ self._replace_internal_host = kwargs.get("replace_internal_host", True)
187
204
 
188
205
  @classmethod
189
206
  def _create_caller(
@@ -193,7 +210,7 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
193
210
 
194
211
  async def _init(self, _address: str):
195
212
  session_info = await self.ensure_async_call(self._caller.create_session)
196
- self._last_settings = self._caller.get_settings_to_upload()
213
+ self._last_settings = copy.deepcopy(self._caller.get_settings_to_upload())
197
214
  self._session_id = session_info.session_id
198
215
  await self._show_logview_address()
199
216
 
@@ -250,7 +267,12 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
250
267
  self, t: TileableType
251
268
  ) -> Optional[TileableType]:
252
269
  vol_name = build_session_volume_name(self.session_id)
253
- writer = ODPSVolumeWriter(self._odps_entry, vol_name, t.key)
270
+ writer = ODPSVolumeWriter(
271
+ self._odps_entry,
272
+ vol_name,
273
+ t.key,
274
+ replace_internal_host=self._replace_internal_host,
275
+ )
254
276
  io_handler = get_object_io_handler(t)
255
277
  io_handler().write_object(writer, t, t.op.data)
256
278
  return build_fetch(t).data
@@ -318,9 +340,14 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
318
340
  def _get_diff_settings(self) -> Dict[str, Any]:
319
341
  new_settings = self._caller.get_settings_to_upload()
320
342
  if not self._last_settings: # pragma: no cover
321
- self._last_settings = new_settings
343
+ self._last_settings = copy.deepcopy(new_settings)
322
344
  return new_settings
323
345
 
346
+ if self._last_settings.get("session.quota_name", None) != new_settings.get(
347
+ "session.quota_name", None
348
+ ):
349
+ raise ValueError("Quota name cannot be changed after sessions are created")
350
+
324
351
  update = dict()
325
352
  for k in new_settings.keys():
326
353
  old_item = self._last_settings.get(k)
@@ -330,7 +357,7 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
330
357
  update[k] = new_item
331
358
  except: # noqa: E722 # nosec # pylint: disable=bare-except
332
359
  update[k] = new_item
333
- self._last_settings = new_settings
360
+ self._last_settings = copy.deepcopy(new_settings)
334
361
  return update
335
362
 
336
363
  async def execute(self, *tileables, **kwargs) -> ExecutionInfo:
@@ -379,18 +406,18 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
379
406
  start_time = time.time()
380
407
  session_id = dag_info.session_id
381
408
  dag_id = dag_info.dag_id
382
- wait_timeout = 10
383
409
  server_no_response_time = None
384
410
  with enter_mode(build=True, kernel=True):
385
411
  key_to_tileables = {t.key: t for t in tileables}
386
-
412
+ timeout_val = 0.1
387
413
  try:
388
414
  while True:
389
415
  elapsed_time = time.time() - start_time
416
+ next_timeout_val = min(timeout_val * 2, self._pull_interval)
390
417
  timeout_val = (
391
- min(self.timeout - elapsed_time, wait_timeout)
418
+ min(self.timeout - elapsed_time, next_timeout_val)
392
419
  if self.timeout
393
- else wait_timeout
420
+ else next_timeout_val
394
421
  )
395
422
  if timeout_val <= 0:
396
423
  raise TimeoutError("Running DAG timed out")
@@ -584,7 +611,9 @@ class MaxFrameRestCaller(MaxFrameServiceCaller):
584
611
  managed_input_infos: Dict[str, ResultInfo] = None,
585
612
  new_settings: Dict[str, Any] = None,
586
613
  ) -> DagInfo:
587
- return await self._client.submit_dag(self._session_id, dag, managed_input_infos)
614
+ return await self._client.submit_dag(
615
+ self._session_id, dag, managed_input_infos, new_settings=new_settings
616
+ )
588
617
 
589
618
  async def get_dag_info(self, dag_id: str) -> DagInfo:
590
619
  return await self._client.get_dag_info(self._session_id, dag_id)
@@ -617,7 +646,7 @@ class MaxFrameRestSession(MaxFrameSession):
617
646
  real_endpoint = address.replace(f"{parsed_endpoint.scheme}://", f"{scheme}://")
618
647
 
619
648
  super().__init__(
620
- real_endpoint, session_id, odps_entry=odps_entry, timeout=timeout
649
+ real_endpoint, session_id, odps_entry=odps_entry, timeout=timeout, **kwargs
621
650
  )
622
651
 
623
652
  @classmethod