maxframe 1.0.0rc1__cp38-cp38-macosx_10_9_universal2.whl → 1.0.0rc2__cp38-cp38-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 (64) hide show
  1. maxframe/_utils.cpython-38-darwin.so +0 -0
  2. maxframe/codegen.py +0 -4
  3. maxframe/config/config.py +34 -2
  4. maxframe/config/validators.py +1 -0
  5. maxframe/conftest.py +2 -0
  6. maxframe/core/entity/objects.py +1 -1
  7. maxframe/core/graph/core.cpython-38-darwin.so +0 -0
  8. maxframe/dataframe/__init__.py +1 -1
  9. maxframe/dataframe/arithmetic/around.py +5 -17
  10. maxframe/dataframe/arithmetic/core.py +15 -7
  11. maxframe/dataframe/arithmetic/docstring.py +5 -55
  12. maxframe/dataframe/arithmetic/tests/test_arithmetic.py +22 -0
  13. maxframe/dataframe/core.py +5 -5
  14. maxframe/dataframe/datasource/date_range.py +2 -2
  15. maxframe/dataframe/datasource/read_odps_query.py +6 -0
  16. maxframe/dataframe/datasource/read_odps_table.py +2 -1
  17. maxframe/dataframe/datasource/tests/test_datasource.py +14 -0
  18. maxframe/dataframe/groupby/cum.py +0 -1
  19. maxframe/dataframe/groupby/tests/test_groupby.py +4 -0
  20. maxframe/dataframe/indexing/add_prefix_suffix.py +1 -1
  21. maxframe/dataframe/indexing/rename.py +3 -37
  22. maxframe/dataframe/indexing/sample.py +0 -1
  23. maxframe/dataframe/indexing/set_index.py +68 -1
  24. maxframe/dataframe/merge/merge.py +236 -2
  25. maxframe/dataframe/merge/tests/test_merge.py +123 -0
  26. maxframe/dataframe/misc/apply.py +3 -10
  27. maxframe/dataframe/misc/case_when.py +1 -1
  28. maxframe/dataframe/misc/describe.py +2 -2
  29. maxframe/dataframe/misc/drop_duplicates.py +4 -25
  30. maxframe/dataframe/misc/eval.py +4 -0
  31. maxframe/dataframe/misc/pct_change.py +1 -83
  32. maxframe/dataframe/misc/transform.py +1 -30
  33. maxframe/dataframe/misc/value_counts.py +4 -17
  34. maxframe/dataframe/missing/dropna.py +1 -1
  35. maxframe/dataframe/missing/fillna.py +5 -5
  36. maxframe/dataframe/sort/sort_values.py +1 -11
  37. maxframe/dataframe/statistics/quantile.py +5 -17
  38. maxframe/dataframe/utils.py +4 -7
  39. maxframe/learn/contrib/xgboost/dmatrix.py +2 -2
  40. maxframe/learn/contrib/xgboost/predict.py +2 -2
  41. maxframe/learn/contrib/xgboost/train.py +2 -2
  42. maxframe/lib/mmh3.cpython-38-darwin.so +0 -0
  43. maxframe/odpsio/__init__.py +1 -1
  44. maxframe/odpsio/arrow.py +8 -4
  45. maxframe/odpsio/schema.py +10 -7
  46. maxframe/odpsio/tableio.py +388 -14
  47. maxframe/odpsio/tests/test_schema.py +16 -15
  48. maxframe/odpsio/tests/test_tableio.py +48 -21
  49. maxframe/protocol.py +40 -2
  50. maxframe/serialization/core.cpython-38-darwin.so +0 -0
  51. maxframe/serialization/serializables/core.py +48 -9
  52. maxframe/tensor/__init__.py +59 -0
  53. maxframe/tensor/base/unique.py +2 -2
  54. maxframe/tensor/statistics/quantile.py +2 -2
  55. maxframe/tests/utils.py +11 -2
  56. maxframe/utils.py +17 -9
  57. {maxframe-1.0.0rc1.dist-info → maxframe-1.0.0rc2.dist-info}/METADATA +74 -1
  58. {maxframe-1.0.0rc1.dist-info → maxframe-1.0.0rc2.dist-info}/RECORD +64 -64
  59. {maxframe-1.0.0rc1.dist-info → maxframe-1.0.0rc2.dist-info}/WHEEL +1 -1
  60. maxframe_client/fetcher.py +38 -27
  61. maxframe_client/session/odps.py +5 -5
  62. maxframe_client/tests/test_fetcher.py +21 -3
  63. maxframe_client/tests/test_session.py +13 -2
  64. {maxframe-1.0.0rc1.dist-info → maxframe-1.0.0rc2.dist-info}/top_level.txt +0 -0
@@ -1,54 +1,54 @@
1
- maxframe-1.0.0rc1.dist-info/RECORD,,
2
- maxframe-1.0.0rc1.dist-info/WHEEL,sha256=J_5GGGAognyPkCA4mep3TG73WFTRAhUZ5YHiyekwc-A,113
3
- maxframe-1.0.0rc1.dist-info/top_level.txt,sha256=O_LOO6KS5Y1ZKdmCjA9mzfg0-b1sB_P6Oy-hD8aSDfM,25
4
- maxframe-1.0.0rc1.dist-info/METADATA,sha256=YbKuyerj5kotQU8UiyPs2KY_OjKcsM4bhm2R9eZJVmg,3053
1
+ maxframe-1.0.0rc2.dist-info/RECORD,,
2
+ maxframe-1.0.0rc2.dist-info/WHEEL,sha256=7emL_Abc5lO2qSa4d4jy4gFP_kXfOFOEhf1i6BTjJ98,112
3
+ maxframe-1.0.0rc2.dist-info/top_level.txt,sha256=O_LOO6KS5Y1ZKdmCjA9mzfg0-b1sB_P6Oy-hD8aSDfM,25
4
+ maxframe-1.0.0rc2.dist-info/METADATA,sha256=qszXXNEuBgJoGkf34QFHxRTLdK9nUi0WecWP2rsQ6Ok,4992
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=p2hsVE2ihvhtuVCAaJhKccCiebl5f6BBPN6KIXOO0jo,8949
7
+ maxframe_client/fetcher.py,sha256=PFU-EbawknnOthBnP41cYABkEB5yBO8SVcnUWn9f2Uo,9174
8
8
  maxframe_client/clients/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
9
9
  maxframe_client/clients/framedriver.py,sha256=Rn09529D2qBTgNGc0oCY0l7b3FgzT87TqS1nujGQaHw,4463
10
- maxframe_client/tests/test_session.py,sha256=F6cT1Lgudm2KHK6YpxpxiDveJdHGChRc4jhuEvDBP6k,9325
10
+ maxframe_client/tests/test_session.py,sha256=Hqq-Gx1HXI8OzNKLidZAc7M1G52h3QClHGUapuY3hko,9726
11
11
  maxframe_client/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
12
- maxframe_client/tests/test_fetcher.py,sha256=q7kYCznM6WSxx9TCbHrxs7Zy1L2a5zu9D-Pi1XNgQzg,3516
12
+ maxframe_client/tests/test_fetcher.py,sha256=jAZbrHQdjv0BxML03kJr9XqGYNGYZOHjfYjSnmpHW-o,4155
13
13
  maxframe_client/session/task.py,sha256=v0tnS2QtkiNt7D47l_3QjXOqNqlkD7NGL8dJ_h4Fr_E,11101
14
14
  maxframe_client/session/graph.py,sha256=nwILNOIVaIf4E3xWffTAAlRsKRYU_zGW3oVO10du8Xw,4351
15
15
  maxframe_client/session/__init__.py,sha256=KPqhSlAJiuUz8TC-z5o7mHDVXzLSqWwrZ33zNni7piY,832
16
16
  maxframe_client/session/consts.py,sha256=R37BxDF3kgCy0qmDdwLaH5jB7mb7SzfYV6g9yHBKAwk,1344
17
- maxframe_client/session/odps.py,sha256=26UjVEIxrTpYtfHxdd-h1aF4OL9TD38UE6aqWeE_8pA,19363
17
+ maxframe_client/session/odps.py,sha256=h2Qz71MoLZmMoxDfgK8TH1D_5DLI-uUOV9swJkOUtAM,19384
18
18
  maxframe_client/session/tests/test_task.py,sha256=lDdw3gToaM3xSaRXEmHUoAo2h0id7t4v_VvpdKxQAao,3279
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=ZzwKhGp7LAVpzQYJkniwIUQqIegcaDQAhyzDyU2qld4,4264
21
+ maxframe/conftest.py,sha256=teZJlD2T3yuSAccgXiSncYxbmIKGzQponAy8DH78o7o,4356
22
22
  maxframe/opcodes.py,sha256=1Da6d3a82mecIHmnyZve4gSH_KN-q3Snl0nSygue2Ng,10191
23
23
  maxframe/env.py,sha256=_K499f7giN7Iu9f39iI9p_naaEDoJ0rx8dInbzqFOVI,1402
24
24
  maxframe/mixin.py,sha256=HBAeWYGb7N6ZIgkA-YpkKiSY1GetcEVNTuMb0ieznBs,3524
25
- maxframe/protocol.py,sha256=VfJNsUYPUwJ73ZpMMMranrN9F2pAJPmcZYuHcSAXQRs,17817
25
+ maxframe/protocol.py,sha256=hpYjrF5_EZ6MSfT0-c2T-FxJcK9ilOONrRLzfct0Tgk,19368
26
26
  maxframe/session.py,sha256=o2jp5NQP1pVMkp4AujN_3DB1HffZ0rMd5EbYZiLJxls,36205
27
27
  maxframe/__init__.py,sha256=SqTFS_1o2HDuVY1mhS0ELlqDuM-biwM_MN0EYGkJLf0,1004
28
- maxframe/_utils.cpython-38-darwin.so,sha256=y6HYD2OlsY_qAK5t6i21GApEi3Fot7Ki4IJ1tQtcVnw,846784
29
- maxframe/utils.py,sha256=E9BbGYrwW4JMCM6BweUESSnGrZGQ7JZvnnFemvKOSoQ,34372
28
+ maxframe/_utils.cpython-38-darwin.so,sha256=_PwfV9t4dS_1IrnYojLlQE-TJOeJ_0YIa49yu5Q2fdk,846784
29
+ maxframe/utils.py,sha256=PvCGHwOTQwT4HNmniVIVgppmcT3Vq-H7XApkD7sYGQo,34499
30
30
  maxframe/extension.py,sha256=F5XTYzW5hNw0AIQz3d6u6Yk7adDdiV4c-HD7bF0X1FI,2659
31
31
  maxframe/errors.py,sha256=vHcpVrKRHmoZPa6IwsdDT-jOZUTlhCp8c0e8F2C-5uU,966
32
32
  maxframe/udf.py,sha256=-FzQCuV0GNyo3SH1r3rPQ3QMAydhYtE7KI8ff4Mv_PU,4288
33
33
  maxframe/typing_.py,sha256=fzHETru3IOZAJwU9I7n_ib3wHuQRJ9XFVmAk7WpqkMo,1096
34
- maxframe/codegen.py,sha256=qO5Q8XbqIVGvWphyIqR6eimboIsbVV7KEBLH7e9sIYY,17809
34
+ maxframe/codegen.py,sha256=3Fl7uy-HG_XB82957RR_7BOQlKS7YPrvGYO7ZGh3lmk,17599
35
35
  maxframe/_utils.pxd,sha256=AhJ4vA_UqZqPshi5nvIZq1xgr80fhIVQ9dm5-UdkYJ8,1154
36
36
  maxframe/dataframe/arrays.py,sha256=RWzimUcrds5CsIlPausfJAkLUjcktBSSXwdXyUNKEtU,28752
37
- maxframe/dataframe/__init__.py,sha256=T08TZjNg2yWh7RmI0hX9PiBTlD5e9L_s3KnKsSLnBFA,2237
38
- maxframe/dataframe/core.py,sha256=b27b0XomeqISCPxltavESlueTTYEXF5wjtrTKEZtld4,74413
37
+ maxframe/dataframe/__init__.py,sha256=ojcTejC6A-txmh1fPhaZxIiXNQejd1Qf_nH0nRr6TbM,2242
38
+ maxframe/dataframe/core.py,sha256=5CMPn9kuKVMhUtFi3QLy6utFN71EXkMndTyDUyb-1Rg,74374
39
39
  maxframe/dataframe/initializer.py,sha256=4BpZJB8bbyFnABUYWBrk_qzzrogEsWgFuU21Ma9IsjY,10264
40
- maxframe/dataframe/utils.py,sha256=uaRpQp5Lciow-9UBDnuUacYvi4erJgyvTDnQziRDkFU,44272
40
+ maxframe/dataframe/utils.py,sha256=aPQrT3-TBTL2O_9QS70KlG4oV9EiFTTswofd7n3IKEM,44213
41
41
  maxframe/dataframe/operators.py,sha256=T7Ik1shfoyrMZ1x0wHXG26bsod1_YjMGQgGAFNpH6k0,7871
42
42
  maxframe/dataframe/statistics/corr.py,sha256=3dExebs9QC8GBaZZUSKXrN2eYt-hWMayJ2MHHzTn-8s,9483
43
- maxframe/dataframe/statistics/quantile.py,sha256=eH-kAg-SZ5JdI8K3P6p9gNeDu4cbJaUC3Dt-zoCoTv0,11713
43
+ maxframe/dataframe/statistics/quantile.py,sha256=ySXi2m8TrArfdidFc07VsOG-RdXJy-YIiOJRrlebfWU,11303
44
44
  maxframe/dataframe/statistics/__init__.py,sha256=Ate3HERUCrjhRoGhpR9SNZA5JHlvuIVSrHgYPEcJd6Q,1084
45
45
  maxframe/dataframe/statistics/tests/test_statistics.py,sha256=3kpFq9EoUI8PBikQGwMoMN7vwBTeoQeF3XG2h2Hzcu0,2730
46
46
  maxframe/dataframe/statistics/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
47
47
  maxframe/dataframe/misc/accessor.py,sha256=QXjV5Q6LW0KNs67X5h2bCBhwHV8R7riP6TmTY_ECpmA,10027
48
- maxframe/dataframe/misc/describe.py,sha256=Qvmv_5rj-fk_ABcS5h8IxNHY-EAPB1rG446LiB1MRgU,4387
48
+ maxframe/dataframe/misc/describe.py,sha256=Ym9DrZVBSOK0EcsiqKzjMSIK5LNPA12GPoLkFjACyZM,4370
49
49
  maxframe/dataframe/misc/astype.py,sha256=OkGDO6PBZli46m0kKq0BOO2OOwJWEyatzeBFV_mnKz8,7797
50
50
  maxframe/dataframe/misc/to_numeric.py,sha256=gG5fxEtC71SkDeHaJ0Vd1JZrIM8gMHGFaiwyFtMwbWs,6262
51
- maxframe/dataframe/misc/case_when.py,sha256=CqR8YRc7PKja3dUdPxe8nd7oAcZrvHAPJvdzlj9wZT0,4851
51
+ maxframe/dataframe/misc/case_when.py,sha256=1Eiy_OP_ljq8rTSjhDthT30ybTq6UUfgfCgG2DroECI,4861
52
52
  maxframe/dataframe/misc/check_monotonic.py,sha256=apHehWNRUTuzux3hI4JflWiuvpaeEFwtpPTWVide7wU,2422
53
53
  maxframe/dataframe/misc/datetimes.py,sha256=fgLczaX-yDdairnNW1EsabEzoioP5gUsO0ukYANisLE,2503
54
54
  maxframe/dataframe/misc/string_.py,sha256=eG4uMA6ScB0Pfby6pBLH24Ln01Aai2aAn-hMyRM5YFo,8101
@@ -56,7 +56,7 @@ maxframe/dataframe/misc/cut.py,sha256=aB8iuk6k2W3G2S3j0jPsryvBhOmaQJSZGIpZ5u1rWb
56
56
  maxframe/dataframe/misc/get_dummies.py,sha256=q4f-1RCw-WWz53bT2FseYyzBNV3pDJTKNBKFx0dd888,7087
57
57
  maxframe/dataframe/misc/__init__.py,sha256=U1p-l0iC1dbh7WLv5kVPelXqK7tb00LJvtu_H7GdtGA,5267
58
58
  maxframe/dataframe/misc/qcut.py,sha256=De8kM1FfOWMEDvRNWRaupSHBRGLaOVrtGbLmtHAZvOg,3737
59
- maxframe/dataframe/misc/pct_change.py,sha256=dNvj5VDPndRqc8lPweWcTiSz4p4oSibeQ2yxCVusLpI,4586
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
62
  maxframe/dataframe/misc/map.py,sha256=RbUi0xPzT0hnsKid5RA5uHYyTeBnpzXlukR48Ntooxk,8149
@@ -66,16 +66,16 @@ maxframe/dataframe/misc/shift.py,sha256=feTqtnIRm0YGha5Ps_feQOqHLxSbicnOMbthmZc6
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=aUyAB_FvmSMZJ3_f6YMwvwC7DzsJstUJvpXJqNKdtqY,11639
69
+ maxframe/dataframe/misc/transform.py,sha256=ZUeFD2ZByJxGHuyUlCCFVBT05WPewdWK6FDw6S7JuDw,10920
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=Rghb6qB9-IY7Bcx9TT2QgLmyQfErF2G8IvQiFkiTiyQ,8347
72
+ maxframe/dataframe/misc/drop_duplicates.py,sha256=t8Rq93Qp4ZHGqJH9YzYJ9qdx9-StoKkkX9YVBfU9ErQ,7851
73
73
  maxframe/dataframe/misc/_duplicate.py,sha256=lCryaC64c46YA6R3UjTBfh77L4yyB8ub3EPzBMe_HPg,1470
74
- maxframe/dataframe/misc/eval.py,sha256=-2svFR5uraqnzKeCS2bJRx5POHRxqST2lbk6qzee7hQ,24263
75
- maxframe/dataframe/misc/value_counts.py,sha256=ds3EVCs0jL1hcTWREzPgb7-20ezcYSNvu9ZtCYqrvfk,5492
74
+ maxframe/dataframe/misc/eval.py,sha256=jXIQyGK4d1c8A-n3BBdisKK3dIjLbZO07hh-qtslBdE,24359
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=UQf9LsH3d33bUaiHNGwyvz_wjoBYro9YbuzAChcU5G0,23436
78
+ maxframe/dataframe/misc/apply.py,sha256=hPwYKPvdxtj_jqEX1DOxH1_O7Hz3giM6NOdyN1VRPqU,23370
79
79
  maxframe/dataframe/misc/tests/test_misc.py,sha256=5yF01TfqHmNBayMGWc5_4bS8vEc2bQ-kPMSwn54ytM0,15630
80
80
  maxframe/dataframe/misc/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
81
81
  maxframe/dataframe/datasource/index.py,sha256=D7PcfIWS-6Hv1-8o6adNesditOAa9kb4JOQK1WlqNDQ,4401
@@ -84,27 +84,27 @@ 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=CP7krcDLWrjReaQVIzr4FF4pI54D02aE0UXFYY89DFE,9970
87
+ maxframe/dataframe/datasource/read_odps_query.py,sha256=ij9QCFJwONQ9aDxm627yFbF9H3WyQ-cqaThmKufuUZc,10217
88
88
  maxframe/dataframe/datasource/core.py,sha256=ozFmDgw1og7nK9_jU-u3tLEq9pNbitN-8w8XWdbKkJ0,2687
89
- maxframe/dataframe/datasource/date_range.py,sha256=CDGpxDyjLwnb66j-MIiiTfXGXHGh5MLhEmj6x2riIlU,17244
90
- maxframe/dataframe/datasource/read_odps_table.py,sha256=UThcVjHKvt3GtNNd4zSEee3m87pKt9ngeksTvQSfH9k,9172
89
+ maxframe/dataframe/datasource/date_range.py,sha256=8JMr_Ife5pKCS_ca7W50Fyoc1JigOJirVzdVaPDzeFo,17227
90
+ maxframe/dataframe/datasource/read_odps_table.py,sha256=V8GQo33ijDU1OHMt5JzAlGa1IDW7fgxaDS__sgiik34,9225
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=4O3N-XD-MpJxEQfILu4cS7gU82hqgS9g9gnDDEsw56k,14640
94
+ maxframe/dataframe/datasource/tests/test_datasource.py,sha256=CMgDm-fENFgjcrenWqOoQhhzT_dj6TMnUBWr5LG9GHQ,15073
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
98
- maxframe/dataframe/sort/sort_values.py,sha256=GINU0I7CT6EcLjW8YLyCMX7Hshh951Pdk1XfI2u8_OU,8868
98
+ maxframe/dataframe/sort/sort_values.py,sha256=-B0C2MXo9U33rW36xUFWqR8igPTdYwxAbI8-Vd4E4t0,8702
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=pWNUAJmVtl9c0YSqBEwW5pQuWpbG1SjdLpV1WUXrsIo,21638
102
+ maxframe/dataframe/merge/merge.py,sha256=TEybvYFQAn67HEXPx_m1poLPPNW2sTdkJ7q0WUMpGpc,30423
103
103
  maxframe/dataframe/merge/concat.py,sha256=A6KGkekcT7E_cHgw9LIZN0zynydCKSm42yHjD5DTeHM,11482
104
104
  maxframe/dataframe/merge/__init__.py,sha256=isesjujGNB_rzutbCEQLApYY16O7qRgpp4cvFQVcN_8,1037
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=jl7k0IdDF74gi_RRmim3iWkTIlItaL6070AN5kk7c28,7265
107
+ maxframe/dataframe/merge/tests/test_merge.py,sha256=XZXfGcnlmRFI9IjO0q_bg9BUd-jVlIypUl73lNW4Vyo,11150
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
@@ -114,8 +114,8 @@ maxframe/dataframe/tests/test_initializer.py,sha256=wgV1a3YK6Q4xzVVcfS_3qIWdO-t8
114
114
  maxframe/dataframe/ufunc/ufunc.py,sha256=P8mh9CwKnxoN624IaoZ010kwH1n4RiUUGMuU5IgHTOM,1651
115
115
  maxframe/dataframe/ufunc/__init__.py,sha256=-_obmEV3B4Az5V0x-P-T8cfdeSoYHrLBOgj_-gqv1c4,889
116
116
  maxframe/dataframe/ufunc/tensor.py,sha256=SeWQbDflxL5fipzPJdhVKFk9ntM4VXtGazb8lD2JwSM,1618
117
- maxframe/dataframe/missing/dropna.py,sha256=iIpY4n8tpmR5Vtl63N2aVhCwYezEKrZkJQYayyxKm4Q,8238
118
- maxframe/dataframe/missing/fillna.py,sha256=ueWDS0KySyh6xw8_ZIAKU-xZua0Nhqh1uw6uWcWoyQY,8905
117
+ maxframe/dataframe/missing/dropna.py,sha256=apc4SsUPtAMtHab3ErMj6BmZj_AxdS6Zp_zSeOjhXLI,8240
118
+ maxframe/dataframe/missing/fillna.py,sha256=dGSeq6OASn9mfPR1-kc0fqJaL4N8AVzD8u-9PHc6B0Y,8905
119
119
  maxframe/dataframe/missing/checkna.py,sha256=k7T6a1-qASATtJzeOJ1LqpMRt9lA6vpoYGuUANZaJvY,6890
120
120
  maxframe/dataframe/missing/__init__.py,sha256=kqtLysfyQQstx6Dsy0qEDAXdRaycU1IGVn7J-sshJO0,1813
121
121
  maxframe/dataframe/missing/replace.py,sha256=sYFzkyChrev8Vl0NocDGTCdWTdHjXvzBzHbf6Bpb9EM,13340
@@ -128,7 +128,7 @@ maxframe/dataframe/extensions/tests/test_extensions.py,sha256=1YMaakSRbvr-A_-F8U
128
128
  maxframe/dataframe/extensions/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
129
129
  maxframe/dataframe/groupby/aggregation.py,sha256=BuhqZal6RLHkjvwJep86oT1a7rMqxxUAPxQ_dao6I6E,11953
130
130
  maxframe/dataframe/groupby/fill.py,sha256=JF3NxyXigZqg8ecKtLSndDmNMX8S6g_ChQR9JAK036E,4721
131
- maxframe/dataframe/groupby/cum.py,sha256=jdGQm7U-GosgHMfneHZC5Z2uraj6iBmSFOhqP3m18B0,3755
131
+ maxframe/dataframe/groupby/cum.py,sha256=F5uX97hR1rMQG9YtvoR7MFFvP3zMDDv1GD9b2NqLcOI,3683
132
132
  maxframe/dataframe/groupby/__init__.py,sha256=nZkz1OAdYRj8qwQkUAZDax0pfCsUH_fprwuksS97vuc,3361
133
133
  maxframe/dataframe/groupby/getitem.py,sha256=kUcI9oIrjOcAHnho96Le9yEJxFydALsWbGpZfTtF8gY,3252
134
134
  maxframe/dataframe/groupby/core.py,sha256=K1hg9jod6z3C65SYoidmEAd_k0Mear4l5IQuwNMjpxQ,6075
@@ -137,7 +137,7 @@ maxframe/dataframe/groupby/head.py,sha256=ZDkbSn3HuUR4GGkZJqo_fL-6KFJfs55aKXQkAh
137
137
  maxframe/dataframe/groupby/sample.py,sha256=IdoyzT-V5309txYvM_iaYKupsULfozMGwm1K3oihTf4,6935
138
138
  maxframe/dataframe/groupby/apply.py,sha256=gZVHN8nMXoy7BEHTBAVLQKtGicQ_jB3dsny8jEn0pUY,9484
139
139
  maxframe/dataframe/groupby/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
140
- maxframe/dataframe/groupby/tests/test_groupby.py,sha256=VsHDG-UaZUXlZ1l498y44ecfzJJ9D2oY4QmPCjS6wBs,12142
140
+ maxframe/dataframe/groupby/tests/test_groupby.py,sha256=ctkAniUwunVsgCG-b6b2qKSCqHXFtYItr2ptoTrIB48,12362
141
141
  maxframe/dataframe/datastore/__init__.py,sha256=Ujd4ix4UJ7Zq-sV2pXTRDvZkKUvtt8sr-FfiUoi6Kh4,784
142
142
  maxframe/dataframe/datastore/core.py,sha256=hLGhqYxX73tq9sOFxMyYBRMawTnsVQqluW5FcE3YHfE,743
143
143
  maxframe/dataframe/datastore/to_csv.py,sha256=xVfpEsicD5A5uXLSdCN08K8uGyWB4QxnRcAbgBVUzbs,7747
@@ -205,15 +205,15 @@ maxframe/dataframe/arithmetic/cos.py,sha256=I7faGLNqhY66zrKljTZ-b75c5y_-i7PRZIim
205
205
  maxframe/dataframe/arithmetic/tan.py,sha256=ecKpsFWNl8eP2yAIc1eCpMLIx0e6nLIInOm2iVf4dN0,915
206
206
  maxframe/dataframe/arithmetic/abs.py,sha256=qpKKyVJx296tnXDaqEJY_MHwYspUPGrSKxcNALy0AIc,983
207
207
  maxframe/dataframe/arithmetic/__init__.py,sha256=DNekqWOuBpopzQTbRaDWN2fGwC8HmdQ9XrrV2xf3wc0,12478
208
- maxframe/dataframe/arithmetic/core.py,sha256=6sN0sm9MbwhLPWWZCBC6tfNsjEBiCfpTq_ygHaAf9Fc,13759
208
+ maxframe/dataframe/arithmetic/core.py,sha256=uJIU_dHoS178TSmJvy36GfjUMc_m_pCLnq2m2s61dAc,14059
209
209
  maxframe/dataframe/arithmetic/floor.py,sha256=bM91bdHP-302gSlTeVphqy9I8JVa2mW_idfMpemD_Gc,925
210
- maxframe/dataframe/arithmetic/around.py,sha256=IgGkDaybD_-7epPkHdr5ek5vMHT6zcTUUDuQVlJKnnE,4138
210
+ maxframe/dataframe/arithmetic/around.py,sha256=aeviUKYjPt-TnhIEEfRej4s2abABDLK38ePSgTcS8nA,3823
211
211
  maxframe/dataframe/arithmetic/is_ufuncs.py,sha256=hEcMAXUMQSkem3xNxdgqIbyEmfG5Vd2VZ6NcPjvfU4Y,1736
212
212
  maxframe/dataframe/arithmetic/ceil.py,sha256=2Kg7DhGutwqRpH88pvbY0mXz0n6fI0KB_EuMP_nVCTE,920
213
213
  maxframe/dataframe/arithmetic/bitwise_or.py,sha256=BNYyKUshOkyQ1pnEPr4YV77ANRvV5VfY6QXuHs1oARk,1546
214
214
  maxframe/dataframe/arithmetic/bitwise_and.py,sha256=G3IMIAmFz9HTcuNnVdSiWCKcSUdNKniR_f7wLhJ4ubM,1427
215
215
  maxframe/dataframe/arithmetic/log10.py,sha256=yT9ziTGU0QogZLdwHiZA8VHqes2tKzHfKRsrrhEbEtg,925
216
- maxframe/dataframe/arithmetic/docstring.py,sha256=YSjlrLp8bydiRPOhnbk4REGVG6yK1zqV9GoZKfmgMLE,12519
216
+ maxframe/dataframe/arithmetic/docstring.py,sha256=NlmLreMXi3Y7Q7U0tPnvJOIM0LtNw7n7cW3F_d5yT08,11074
217
217
  maxframe/dataframe/arithmetic/truediv.py,sha256=KNMlFa7D8ui89ILKKg5QG1TmTYA3C3Gttv9UAq3UGK4,1808
218
218
  maxframe/dataframe/arithmetic/exp2.py,sha256=cwyEZ7uyjbiqD-7Y9PqEDOI80hf6ReabtbGq6DLjwCg,920
219
219
  maxframe/dataframe/arithmetic/expm1.py,sha256=XfDd6LQ1YzBq8mnTVFTWf3lBtIOMzaO4yc9b5ZRuIQU,925
@@ -236,23 +236,23 @@ maxframe/dataframe/arithmetic/not_equal.py,sha256=lvdiCA977jMpSSksJYvKntaCioD-4i
236
236
  maxframe/dataframe/arithmetic/radians.py,sha256=pSq9S0KlV0Xx0vGSdxdol3348dSyYuxG4jMFbGFdQ6E,935
237
237
  maxframe/dataframe/arithmetic/sin.py,sha256=zgWoijVpASlkZ7cnZZxKSSHUiLqQ0pKUAIOHEfCBubc,915
238
238
  maxframe/dataframe/arithmetic/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
239
- maxframe/dataframe/arithmetic/tests/test_arithmetic.py,sha256=Zm0hwTo_NqFAa3iDmYF2Q10-884d8ltOsby2WjcioBA,24372
239
+ maxframe/dataframe/arithmetic/tests/test_arithmetic.py,sha256=-FowcMCeazWtgBRW77VSdo9-JS3J0Js_FUMP1MW2JHw,25257
240
240
  maxframe/dataframe/indexing/reset_index.py,sha256=uzGszHfkhwZgZtEaygy5UPrvHPNPXgWZaTOXdNxGBT8,13122
241
241
  maxframe/dataframe/indexing/iat.py,sha256=ANURJ8qn_UitgM01gDPeaQOlSBxbk0pmN4Yr-iPRXM8,1127
242
242
  maxframe/dataframe/indexing/loc.py,sha256=ZmiK3a2f-krkXFvNLSlzRRa6GWGiAAXk_3mWZC_MqdQ,14845
243
243
  maxframe/dataframe/indexing/align.py,sha256=hEuoaNX4bI9LBWp_1kGG7GSs3PDF95tDXo7GX5nypGI,12085
244
- maxframe/dataframe/indexing/rename.py,sha256=W4CV2FK9Wt15GWukHbeWi7scXwiVL1ZRoXeAy7zIsLQ,13547
244
+ maxframe/dataframe/indexing/rename.py,sha256=Gz0p9zVLsQ-I4cKg_Ok_mimzdCa8r5mS8shMBkM3KkQ,12463
245
245
  maxframe/dataframe/indexing/setitem.py,sha256=PgVZr2A_joTHz9GUbnGfuSI28qSnwe-n84yKFJagLUc,5004
246
246
  maxframe/dataframe/indexing/where.py,sha256=3h64jI_tXmWAu1ZvfeS58h8nUfBN7K7OZ0C22_5-_uk,8567
247
247
  maxframe/dataframe/indexing/iloc.py,sha256=sP4hV9Wo3S4Iimxak5Q-EB_Vph2dCbbDsVS003jEeFI,17421
248
248
  maxframe/dataframe/indexing/__init__.py,sha256=BdT5tBzjW8tESUPI3blrO7KxKzgZmf8_pQhvZzUU66o,3213
249
249
  maxframe/dataframe/indexing/getitem.py,sha256=3LHjTcvU0PSTf_VI6x1MwirIiK_ynLcGb_dHdMPnVBk,7754
250
- maxframe/dataframe/indexing/set_index.py,sha256=1YQP11Bpq5hGDiym573NiH84QFZubApli8HHhGwJoe4,2119
250
+ maxframe/dataframe/indexing/set_index.py,sha256=Sa49Z0n3bwAM1OTJJPdTSCZb4qMZjyfhiEpi4mALviU,4195
251
251
  maxframe/dataframe/indexing/at.py,sha256=cGzJ3eM_kVIYDPf24JQxbhrRNtb2urscMtV0XUKzWkw,2217
252
252
  maxframe/dataframe/indexing/rename_axis.py,sha256=w5B67qlcsdjNhN6OZnov5L5ovJXpu_Oqpux0AP0elzk,6302
253
- maxframe/dataframe/indexing/add_prefix_suffix.py,sha256=tSNslK43yx9tOieXcEuWamW7HWysxSoqqEM4p5NN55k,2966
253
+ maxframe/dataframe/indexing/add_prefix_suffix.py,sha256=-PY64B6avq7XeYSyAcZW4ABidakzfAepd3llO_C0nGg,2970
254
254
  maxframe/dataframe/indexing/insert.py,sha256=GG9VGNozKDdeREdtsQJ6WztFUwuYuBP-LW1Lv4RftN0,2911
255
- maxframe/dataframe/indexing/sample.py,sha256=MhpBSu5YuHFCMyjCqY1Xf5HiTbY9frZhg_-myXD8_IY,8172
255
+ maxframe/dataframe/indexing/sample.py,sha256=Dm3qqFa2nL0A24rSrqDs_4U1m9a-noWQMp_CNE-Suak,8171
256
256
  maxframe/dataframe/indexing/set_axis.py,sha256=n5obYjkg-YKSOGHA0gfM25qUPGcGHBeeo-uyvhYCI34,5530
257
257
  maxframe/dataframe/indexing/reindex.py,sha256=mrDBxDZwbaqhjwy_fWGRtWI6MhJ6O1sR1ANhCXuQz8A,19173
258
258
  maxframe/dataframe/indexing/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
@@ -263,11 +263,11 @@ maxframe/learn/utils/core.py,sha256=_tskQMfdvr5VAV68fDzM0DSVF2S7SMDnNXA8j_gHmGI,
263
263
  maxframe/learn/contrib/__init__.py,sha256=WvCqsncQZKtDURfK8ma9GoPHVVK02yW2ueom_kBMl44,632
264
264
  maxframe/learn/contrib/utils.py,sha256=k5jlwY8pru_PD8olOBOsMcBLeo31NMx53TjJmSvbvy8,1662
265
265
  maxframe/learn/contrib/xgboost/classifier.py,sha256=IXNuAGtJMfZstcQoOyWUogZQsRvzRsBGp-gge-mqQsA,2936
266
- maxframe/learn/contrib/xgboost/dmatrix.py,sha256=uZI3KxXZ7fa1SQ8dRs_ZTFpyNNt0ZmM4SR-WRkIvkjk,4856
267
- maxframe/learn/contrib/xgboost/predict.py,sha256=yMV_wF3Cbx1PdZOjoy4mkVYnTQApmaC3ORK_9J8KicQ,4664
266
+ maxframe/learn/contrib/xgboost/dmatrix.py,sha256=7ZEE6u1ZF_J80DAsaKM9_qD-gg-KFQHx_QID5y43huQ,4839
267
+ maxframe/learn/contrib/xgboost/predict.py,sha256=-i5O4Msxo2KqCRTC7dnFDmz6mpsn_TKhX2sDbyePw_A,4647
268
268
  maxframe/learn/contrib/xgboost/__init__.py,sha256=kbYrokjDXjMBqRka5NTkUjU5zrNUoT_TkTyuW9G5s-0,899
269
269
  maxframe/learn/contrib/xgboost/core.py,sha256=uilXCgjYuDKpxLNGkB5g-TDGijJ6EqnEvfXoEFC0JNQ,5194
270
- maxframe/learn/contrib/xgboost/train.py,sha256=YkNTzyaxj_s9G-F2h0GX5L12PkJwOpcaTJX_R6DCQMQ,3958
270
+ maxframe/learn/contrib/xgboost/train.py,sha256=3qylOInvKOn6b-6EU7RMQnNkIT8RqpagpkctFFHquhY,3941
271
271
  maxframe/learn/contrib/xgboost/regressor.py,sha256=vAQHM2RQ3hKhQz3cqQ0twXpIDAkVOS9u4ivsQ5hX5dY,2532
272
272
  maxframe/learn/contrib/xgboost/tests/test_core.py,sha256=0Q3A1EFW30vsQLl7bSTTuw-ldlLEO43ljVSJBb8j1LM,1406
273
273
  maxframe/learn/contrib/xgboost/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
@@ -285,12 +285,12 @@ maxframe/core/entity/core.py,sha256=t7Ex9Yb7A1h_XwyRG88Fx4ZOai-NQKi2luRVS_jFPEo,
285
285
  maxframe/core/entity/utils.py,sha256=IuNgFmBQFRioAA1hgZe6nTEggOmDY-iooZqncQQrV28,942
286
286
  maxframe/core/entity/executable.py,sha256=HKXHXdPIyxg9i-OWmJxIY3KfXwX0x3xN9QcR5Xhc7dQ,10938
287
287
  maxframe/core/entity/output_types.py,sha256=uqApvFK8w6_aMxRets69dTwD1ndBDgVgqDCflyt9ubg,2645
288
- maxframe/core/entity/objects.py,sha256=TikNltV350KxFxP1xNovK7CONda6K4PixmqD_ZLOR-Q,1840
288
+ maxframe/core/entity/objects.py,sha256=R6bUWA5eq3oSSUFcw3zKLdbokXvyeiga9RgsmbFJ6QU,1841
289
289
  maxframe/core/entity/fuse.py,sha256=47U6MHRzA2ZvUi-kJb7b3mC_gN07x3yebBgX2Jj7VZo,2277
290
290
  maxframe/core/entity/chunks.py,sha256=yNSLCWOpA_Z6aGr6ZI32dIJf3xPdRBWbvdsl8sTM3BE,2134
291
291
  maxframe/core/graph/__init__.py,sha256=rnsXwW0ouh1f7SVtq73-PzLE-MBM6Op_0l6J7b7wGRE,821
292
292
  maxframe/core/graph/entity.py,sha256=56gjXyDXN-TTPm3AQOxuRVQbb_fguKFDL_Xm7i95XEk,5559
293
- maxframe/core/graph/core.cpython-38-darwin.so,sha256=I0oev34TSt2ndB0YI0QWkXwXid7v6VqbG3GCoUNKnL8,685712
293
+ maxframe/core/graph/core.cpython-38-darwin.so,sha256=F3HIVyU9re_lnoX0e6y-Pk1vdHehg4WnKmIQ9TcVccA,685712
294
294
  maxframe/core/graph/core.pyx,sha256=kyqE5-X9Tc82wU4N_zsf8jNthAHWHTVRNFQWNNbzgpM,15923
295
295
  maxframe/core/graph/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
296
296
  maxframe/core/graph/tests/test_graph.py,sha256=kZfe_SfMOoHjEfXvtVtn0RjK4lOd-tFasxSpfL4G1WE,7462
@@ -310,8 +310,8 @@ maxframe/core/operator/fuse.py,sha256=0RGemF99gQCwV4aEk-K6T5KAGToO-487dFk8LyYDIZ
310
310
  maxframe/core/operator/base.py,sha256=nxuSKjbBzDrItM9PGmFo8RLwParazu525jMLWj0kXkM,15251
311
311
  maxframe/core/operator/tests/test_core.py,sha256=57aICnc5VLqdVK7icAORTWC81bSjBxeeVWIJcha9J_0,1691
312
312
  maxframe/core/operator/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
313
- maxframe/config/config.py,sha256=acJ2WVY1JDBsty2VPTn5Twtp2jt4c9BUH7ZDELiNxVE,13734
314
- maxframe/config/validators.py,sha256=2m9MrkjDUFiU4PPaWIw8tjwMaOy8AYmuJFqVnnY8IMY,1615
313
+ maxframe/config/config.py,sha256=DFHXodCuGUnL4Wgmvwg7dsQIx8CAf-66Hp3Fyj8CJHM,14669
314
+ maxframe/config/validators.py,sha256=T7dWYehFQxlmai0oqsDSsnyTfGyI_zbUXP6jv5eKseY,1676
315
315
  maxframe/config/__init__.py,sha256=g5lN3nP2HTAXa6ExGxU1NwU1M9ulYPmAcsV-gU7nIW8,656
316
316
  maxframe/config/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
317
317
  maxframe/config/tests/test_validators.py,sha256=U_7yKSl0FdVdDwKU1EsnCzNWaOXi8xrIC08x7hb_O4c,1240
@@ -325,37 +325,37 @@ maxframe/serialization/__init__.py,sha256=9eSnoDww1uw2DAXEBBTB2atJQHzd-38XVxrCko
325
325
  maxframe/serialization/maxframe_objects.py,sha256=R9WEjbHL0Kr56OGkYDU9fcGi7gII6fGlXhi6IyihTsM,1365
326
326
  maxframe/serialization/numpy.py,sha256=8_GSo45l_eNoMn4NAGEb9NLXY_9i4tf9KK4EzG0mKpA,3213
327
327
  maxframe/serialization/scipy.py,sha256=hP0fAW0di9UgJrGtANB2S8hLDbFBtR8p5NDqAMt5rDI,2427
328
- maxframe/serialization/core.cpython-38-darwin.so,sha256=vXCkQ4cu3DBlrpwKZq1lMTAtt3glq8MdFQNYVLYnXNI,1159824
328
+ maxframe/serialization/core.cpython-38-darwin.so,sha256=x3rHZETjwWFturx2pSiNdgIRZ2q_-ATjrwFwSgZH5l4,1159840
329
329
  maxframe/serialization/core.pyx,sha256=ZLVh7W7LgUb4KPb7rtuezRL6sQC4GNb3hLndAeSbiyU,35198
330
330
  maxframe/serialization/tests/test_serial.py,sha256=Wj_I6CBQMaOtE8WtqdUaBoU8FhBOihht6SfeHOJV-zU,12511
331
331
  maxframe/serialization/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
332
332
  maxframe/serialization/serializables/field.py,sha256=atVgX-9rsVG1fTev7vjQArVwIEaCRjXoSEjpQ3mh6bA,16015
333
333
  maxframe/serialization/serializables/__init__.py,sha256=_wyFZF5QzSP32wSXlXHEPl98DN658I66WamP8XPJy0c,1351
334
- maxframe/serialization/serializables/core.py,sha256=C8J2lxNUNQWgoKc5rF-Eb8H7JSqFDRZpvM9eEUYjxCY,13796
334
+ maxframe/serialization/serializables/core.py,sha256=4eZdmtrrz10aT6rVhEfCWWP0_slHFFpIkIXmRdZgcos,15602
335
335
  maxframe/serialization/serializables/field_type.py,sha256=Feh09hu8XyaxS5MaJ4za_pcvqJVuMkOeGxwQ9OuJw6I,14865
336
336
  maxframe/serialization/serializables/tests/test_field_type.py,sha256=T3ebXbUkKveC9Pq1nIl85e4eYascFeJ52d0REHbz5jo,4381
337
337
  maxframe/serialization/serializables/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
338
338
  maxframe/serialization/serializables/tests/test_serializable.py,sha256=P6BCYvm-0HxlEHruyw-SIdVBywxQw16JUMws_lvqTk0,9867
339
- maxframe/odpsio/tableio.py,sha256=TiXZViZMqWq_RaSCCcw8EJuj7ymsKe7chIkUthrnS7I,10148
340
- maxframe/odpsio/arrow.py,sha256=5GyAOaQLY_UeJS1CL98zNQpLMw5OfPrcI_YHP-G5Bas,3793
341
- maxframe/odpsio/__init__.py,sha256=HcxZsE4hRwbhtE-ZXhDWZMmQlv-2dOTvQq2NajhGEo4,799
339
+ maxframe/odpsio/tableio.py,sha256=NgMkE4TD99ZP00OYU7oH-o90rLEHOeFjESEGcyCtblY,23835
340
+ maxframe/odpsio/arrow.py,sha256=6MLSoVy1m5ggUl770DiLo1xlYnedxEHln2YgXiXElt0,3922
341
+ maxframe/odpsio/__init__.py,sha256=rYsf3Nwu_o0hUVUyZ0UFsIiRoyYkdkyPSiTi8k3f_Rs,812
342
342
  maxframe/odpsio/volumeio.py,sha256=b2SQqusgrtkJJ6uMjnFv5s56XjchF8F4lLTTSHynRMc,3743
343
- maxframe/odpsio/schema.py,sha256=aXvK_1BSwttuUyROyIa_HNHohLZBp7LrW9VXzHPGXyY,12115
344
- maxframe/odpsio/tests/test_tableio.py,sha256=5nKq8I8Pzrfl89BjIIGyrvqPRiXdejTcYCtd-R2vTAo,4653
343
+ maxframe/odpsio/schema.py,sha256=qOUL-uPh9NXcXHYLlWesKOUsMiuP15vknh7je-Leaq4,12313
344
+ maxframe/odpsio/tests/test_tableio.py,sha256=0qvANpbSn5adem9oyX-6pdTHPxMcBzoVKJrKcJRhxWE,5603
345
345
  maxframe/odpsio/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
346
- maxframe/odpsio/tests/test_schema.py,sha256=XTixGKHOWiprp5PZVOo2q9h4-HAUPL8vTUmoeXQDIiM,11958
346
+ maxframe/odpsio/tests/test_schema.py,sha256=BDQ0Bc4EV4PBclK1X75k0PRsTYKJ5nsfaRXJrEXuC4M,11965
347
347
  maxframe/odpsio/tests/test_arrow.py,sha256=SQ9EmI9_VOOC8u6Rg6nh3IPC2fPbLvJ9HwtpMNDRhL8,3106
348
348
  maxframe/odpsio/tests/test_volumeio.py,sha256=UEqFANuPKyFtlIh2JNi-LoixH52bxsgHdxu3himnEvs,3022
349
349
  maxframe/tests/test_utils.py,sha256=imfe7sN1_4EjWuT4qMYMwjOjgL0t5oewyhebBGPDBhY,11504
350
350
  maxframe/tests/test_protocol.py,sha256=9DWr3z1AI2DUMnLyak91PKSfV_ILkOtwAZPCmM42kcg,6103
351
351
  maxframe/tests/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
352
- maxframe/tests/utils.py,sha256=YfK3o5VRSowVFnertoNmog3ABzNoeoiIF6MRNf4FV-U,4576
352
+ maxframe/tests/utils.py,sha256=c3A_4pU7OO5OTfKorc7uOks3ppL1NB0jGupsiDi7b9s,4884
353
353
  maxframe/tests/test_codegen.py,sha256=GMrnpSb2eyB_nmuv8-_p47Kw877ElKS3BP52SpqZNIQ,2208
354
354
  maxframe/lib/wrapped_pickle.py,sha256=HJCb8ERK6clUVgPe529vduMmbMVqBlrQ3W8mH3tYcaE,3836
355
355
  maxframe/lib/version.py,sha256=yQ6HkDOvU9X1rpI49auh-qku2g7gIiztgEH6v1urOrk,18321
356
356
  maxframe/lib/compression.py,sha256=k9DSrl_dNBsn5azLjBdL5B4WZ6eNvmCrdMbcF1G7JSc,1442
357
357
  maxframe/lib/__init__.py,sha256=CzfbLNqqm1yR1i6fDwCd4h1ptuKVDbURFVCb0ra7QNc,642
358
- maxframe/lib/mmh3.cpython-38-darwin.so,sha256=JdOOaNLLEuUhFB7tvEms8eHboh6xfyYAyvUfmsSPp-0,119784
358
+ maxframe/lib/mmh3.cpython-38-darwin.so,sha256=BxdUhpSIX7OsnLb0_oP12O7DQU5fQCpCETkz4sinttQ,119784
359
359
  maxframe/lib/mmh3.pyi,sha256=AOp_XqbA5-NwepeeBeG0OFJj5tjEAFLzcViyRNZ0eVI,1494
360
360
  maxframe/lib/functools_compat.py,sha256=PMSkct9GIbzq-aBwTnggrOLNfLh4xQnYTIFMPblzCUA,2616
361
361
  maxframe/lib/mmh3_src/mmh3module.cpp,sha256=9J9eA42eKWTl546fvfQPNuIM3B2jpWSADpgIw3tr2jg,11604
@@ -404,11 +404,11 @@ maxframe/lib/tblib/__init__.py,sha256=c4aVldbxJdS-bFsSDcmDQy_mW0qAcMrb4pHS2tjYhY
404
404
  maxframe/lib/tblib/cpython.py,sha256=FQ0f6WTQyQHoMRhgPqrA0y0Ygxlbj5IC53guxA4h9Cw,2418
405
405
  maxframe/lib/tblib/decorators.py,sha256=bcllK3kVuPnj6SNZGmlJGxTK0ovdt7TJDXrhA4UE5sQ,1063
406
406
  maxframe/tensor/array_utils.py,sha256=259vG4SjyhiheARCZeEnfJdZjoojyrELn41oRcyAELs,4943
407
- maxframe/tensor/__init__.py,sha256=BJgqcCnG0jgPBafI4Aa01gHL4nagu6l7kmlry7u8Zm8,3519
407
+ maxframe/tensor/__init__.py,sha256=WL91OOxt5qnPWMrvOmFdak1Gfoi0i8dSz7Cid_DxdEs,4302
408
408
  maxframe/tensor/core.py,sha256=Ojxaf5b8sJ6ZZGezyFHQJ5XsSpUrBOnZgFeUQgpVJpI,21914
409
409
  maxframe/tensor/utils.py,sha256=bwVN0iuVic1tpFai6Hk-1tQLqckQ2IYS7yZKMTcOU1I,22914
410
410
  maxframe/tensor/operators.py,sha256=iGkDIRz152gXrPb5JbqOvXngpq3QaCg-aNO4gHZPLN0,3461
411
- maxframe/tensor/statistics/quantile.py,sha256=UFzTmBwgNL7k_QOJ84qPfycQrW8MyOa1gcp-uFsylIY,9484
411
+ maxframe/tensor/statistics/quantile.py,sha256=GYs4dlBwvUTu4-PZ9PnM4JTjzpQkS_8oFcOT85or404,9467
412
412
  maxframe/tensor/statistics/__init__.py,sha256=FEFOVLi3o2GpZoedTtLYvbie0eQBehJIjtCrWca2ZHw,596
413
413
  maxframe/tensor/statistics/percentile.py,sha256=U7ssKDJbBVp6i1n1EP_qJ2HomIQJwt73asGrXire3ww,6047
414
414
  maxframe/tensor/reshape/reshape.py,sha256=wufzBHgqVpmNPNmgr7lCuGbMkghfOUV1q4t1tH2USJg,6453
@@ -636,7 +636,7 @@ maxframe/tensor/random/tests/__init__.py,sha256=CzfbLNqqm1yR1i6fDwCd4h1ptuKVDbUR
636
636
  maxframe/tensor/random/tests/test_random.py,sha256=2hGaik9A783PFuuxIrhCDZ2O-SYKwUh98LKPwf1psLs,4275
637
637
  maxframe/tensor/base/astype.py,sha256=zeLfyWkuc1LxMIiIO6ghZ_enR7IPgq0Hy4O18h8JQPk,4394
638
638
  maxframe/tensor/base/where.py,sha256=fMGBfppo4QToHX-B3rtTorstz83m8uWWhOQj6Qbu34U,4000
639
- maxframe/tensor/base/unique.py,sha256=52OM0UvbxbgvpjSGcTdCRi3fJUzFA-GxZpn7RExJGEo,6738
639
+ maxframe/tensor/base/unique.py,sha256=EO7EYn0mHr9aZ7hVZxwiKNSPwbXvrpDWRWP5PksfgxY,6721
640
640
  maxframe/tensor/base/__init__.py,sha256=FMnuIAaGUObPZpXBnN-9eTSmmdq0Cdb-VI_JNHKVy3Q,1079
641
641
  maxframe/tensor/base/transpose.py,sha256=yDfr1vD6doNlsuKuU94daE0IgIwGMuyBfXhKauQ1UaM,3414
642
642
  maxframe/tensor/base/ravel.py,sha256=pJkez1NHoLqVMBPm5aA8uMNFeWURTAJV_iU98Vqr-50,3173
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (71.1.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp38-cp38-macosx_10_9_universal2
5
5
 
@@ -12,11 +12,9 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- import base64
16
- import json
17
15
  from abc import ABC, abstractmethod
18
16
  from numbers import Integral
19
- from typing import Any, Dict, List, Optional, Type, Union
17
+ from typing import Any, Dict, List, Optional, Tuple, Type, Union
20
18
 
21
19
  import pandas as pd
22
20
  import pyarrow as pa
@@ -28,7 +26,7 @@ from tornado import httpclient
28
26
  from maxframe.core import OBJECT_TYPE
29
27
  from maxframe.dataframe.core import DATAFRAME_TYPE
30
28
  from maxframe.lib import wrapped_pickle as pickle
31
- from maxframe.odpsio import HaloTableIO, arrow_to_pandas, build_dataframe_table_meta
29
+ from maxframe.odpsio import ODPSTableIO, arrow_to_pandas, build_dataframe_table_meta
32
30
  from maxframe.protocol import (
33
31
  DataFrameTableMeta,
34
32
  ODPSTableResultInfo,
@@ -38,7 +36,7 @@ from maxframe.protocol import (
38
36
  )
39
37
  from maxframe.tensor.core import TENSOR_TYPE
40
38
  from maxframe.typing_ import PandasObjectTypes, TileableType
41
- from maxframe.utils import ToThreadMixin, deserialize_serializable
39
+ from maxframe.utils import ToThreadMixin
42
40
 
43
41
  _result_fetchers: Dict[ResultType, Type["ResultFetcher"]] = dict()
44
42
 
@@ -109,17 +107,12 @@ class ODPSTableFetcher(ToThreadMixin, ResultFetcher):
109
107
  tileable: TileableType,
110
108
  info: ODPSTableResultInfo,
111
109
  ) -> None:
112
- if isinstance(tileable, DATAFRAME_TYPE) and tileable.dtypes is None:
113
- tb_comment = await self.to_thread(
114
- self._get_table_comment, info.full_table_name
115
- )
116
- if tb_comment: # pragma: no branch
117
- comment_data = json.loads(tb_comment)
118
-
119
- table_meta: DataFrameTableMeta = deserialize_serializable(
120
- base64.b64decode(comment_data["table_meta"])
121
- )
122
- tileable.refresh_from_table_meta(table_meta)
110
+ if (
111
+ isinstance(tileable, DATAFRAME_TYPE)
112
+ and tileable.dtypes is None
113
+ and info.table_meta is not None
114
+ ):
115
+ tileable.refresh_from_table_meta(info.table_meta)
123
116
 
124
117
  if tileable.shape and any(pd.isna(x) for x in tileable.shape):
125
118
  part_specs = [None] if not info.partition_specs else info.partition_specs
@@ -131,16 +124,39 @@ class ODPSTableFetcher(ToThreadMixin, ResultFetcher):
131
124
  )
132
125
  total_records += session.count
133
126
  new_shape_list = list(tileable.shape)
134
- new_shape_list[-1] = total_records
127
+ new_shape_list[0] = total_records
135
128
  tileable.params = {"shape": tuple(new_shape_list)}
136
129
 
130
+ @staticmethod
131
+ def _align_selection_with_shape(
132
+ row_sel: slice, shape: Tuple[Optional[int], ...]
133
+ ) -> dict:
134
+ size = shape[0]
135
+ if not row_sel.start and not row_sel.stop:
136
+ return {}
137
+ is_reversed = row_sel.step is not None and row_sel.step < 0
138
+ read_kw = {
139
+ "start": row_sel.start,
140
+ "stop": row_sel.stop,
141
+ "reverse_range": is_reversed,
142
+ }
143
+ if pd.isna(size):
144
+ return read_kw
145
+
146
+ if is_reversed and row_sel.start is not None:
147
+ read_kw["start"] = min(size - 1, row_sel.start)
148
+ if not is_reversed and row_sel.stop is not None:
149
+ read_kw["stop"] = min(size, row_sel.stop)
150
+ return read_kw
151
+
137
152
  def _read_single_source(
138
153
  self,
139
154
  table_meta: DataFrameTableMeta,
140
155
  info: ODPSTableResultInfo,
141
156
  indexes: List[Union[None, Integral, slice]],
157
+ shape: Tuple[Optional[int], ...],
142
158
  ):
143
- table_io = HaloTableIO(self._odps_entry)
159
+ table_io = ODPSTableIO(self._odps_entry)
144
160
  read_kw = {}
145
161
  row_step = None
146
162
  if indexes:
@@ -148,13 +164,8 @@ class ODPSTableFetcher(ToThreadMixin, ResultFetcher):
148
164
  indexes += [None]
149
165
  row_sel, col_sel = indexes
150
166
  if isinstance(row_sel, slice):
151
- if row_sel.start or row_sel.stop:
152
- read_kw["start"] = row_sel.start
153
- read_kw["stop"] = row_sel.stop
154
- read_kw["reverse_range"] = (
155
- row_sel.step is not None and row_sel.step < 0
156
- )
157
- row_step = row_sel.step
167
+ row_step = row_sel.step
168
+ read_kw = self._align_selection_with_shape(row_sel, shape)
158
169
  elif isinstance(row_sel, int):
159
170
  read_kw["start"] = row_sel
160
171
  read_kw["stop"] = row_sel + 1
@@ -173,8 +184,8 @@ class ODPSTableFetcher(ToThreadMixin, ResultFetcher):
173
184
  with table_io.open_reader(
174
185
  info.full_table_name, info.partition_specs, **read_kw
175
186
  ) as reader:
176
- reader_count = reader.count
177
187
  result = reader.read_all()
188
+ reader_count = result.num_rows
178
189
 
179
190
  if not row_step:
180
191
  return result
@@ -195,7 +206,7 @@ class ODPSTableFetcher(ToThreadMixin, ResultFetcher):
195
206
  ) -> PandasObjectTypes:
196
207
  table_meta = build_dataframe_table_meta(tileable)
197
208
  arrow_table: pa.Table = await self.to_thread(
198
- self._read_single_source, table_meta, info, indexes
209
+ self._read_single_source, table_meta, info, indexes, tileable.shape
199
210
  )
200
211
  return arrow_to_pandas(arrow_table, table_meta)
201
212
 
@@ -36,7 +36,7 @@ from maxframe.errors import (
36
36
  NoTaskServerResponseError,
37
37
  SessionAlreadyClosedError,
38
38
  )
39
- from maxframe.odpsio import HaloTableIO, pandas_to_arrow, pandas_to_odps_schema
39
+ from maxframe.odpsio import ODPSTableIO, pandas_to_arrow, pandas_to_odps_schema
40
40
  from maxframe.protocol import (
41
41
  DagInfo,
42
42
  DagStatus,
@@ -164,8 +164,8 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
164
164
  batch_size = options.session.upload_batch_size
165
165
 
166
166
  if len(data):
167
- halo_client = HaloTableIO(self._odps_entry)
168
- with halo_client.open_writer(table_obj.full_table_name) as writer:
167
+ table_client = ODPSTableIO(self._odps_entry)
168
+ with table_client.open_writer(table_obj.full_table_name) as writer:
169
169
  for batch_start in range(0, len(data), batch_size):
170
170
  if isinstance(data, pd.Index):
171
171
  batch = data[batch_start : batch_start + batch_size]
@@ -188,7 +188,7 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
188
188
  read_tileable.name = t.name
189
189
  else: # INDEX_TYPE
190
190
  if list(read_tileable.names) != list(t.names):
191
- read_tileable.names = t.names
191
+ read_tileable.rename(t.names, inplace=True)
192
192
  read_tileable._key = t.key
193
193
  read_tileable.params = t.params
194
194
  return read_tileable.data
@@ -384,7 +384,7 @@ class MaxFrameSession(ToThreadMixin, IsolatedAsyncSession):
384
384
  data_tileable, indexes = self._get_data_tileable_and_indexes(tileable)
385
385
  info = self._tileable_to_infos[data_tileable]
386
386
  fetcher = get_fetcher_cls(info.result_type)(self._odps_entry)
387
- results.append(await fetcher.fetch(tileable, info, indexes))
387
+ results.append(await fetcher.fetch(data_tileable, info, indexes))
388
388
  return results
389
389
 
390
390
  async def decref(self, *tileable_keys):
@@ -17,19 +17,32 @@ import uuid
17
17
  import numpy as np
18
18
  import pandas as pd
19
19
  import pyarrow as pa
20
+ import pytest
20
21
  from odps import ODPS
21
22
 
22
23
  import maxframe.dataframe as md
23
- from maxframe.odpsio import HaloTableIO
24
+ from maxframe.config import options
25
+ from maxframe.odpsio import ODPSTableIO
24
26
  from maxframe.protocol import ODPSTableResultInfo, ResultType
25
27
  from maxframe.tests.utils import tn
26
28
 
27
29
  from ..fetcher import ODPSTableFetcher
28
30
 
29
31
 
30
- async def test_table_fetcher():
32
+ @pytest.fixture
33
+ def switch_table_io(request):
34
+ old_use_common_table = options.use_common_table
35
+ try:
36
+ options.use_common_table = request.param
37
+ yield
38
+ finally:
39
+ options.use_common_table = old_use_common_table
40
+
41
+
42
+ @pytest.mark.parametrize("switch_table_io", [False, True], indirect=True)
43
+ async def test_table_fetcher(switch_table_io):
31
44
  odps_entry = ODPS.from_environments()
32
- halo_table_io = HaloTableIO(odps_entry)
45
+ halo_table_io = ODPSTableIO(odps_entry)
33
46
  fetcher = ODPSTableFetcher(odps_entry)
34
47
 
35
48
  data = pd.DataFrame(
@@ -58,6 +71,11 @@ async def test_table_fetcher():
58
71
  assert len(fetched) == 1000
59
72
  pd.testing.assert_frame_equal(raw_data, fetched)
60
73
 
74
+ result_info = ODPSTableResultInfo(ResultType.ODPS_TABLE, full_table_name=table_name)
75
+ fetched = await fetcher.fetch(tileable, result_info, [slice(None, 2000), None])
76
+ assert len(fetched) == 1000
77
+ pd.testing.assert_frame_equal(raw_data, fetched)
78
+
61
79
  result_info = ODPSTableResultInfo(ResultType.ODPS_TABLE, full_table_name=table_name)
62
80
  fetched = await fetcher.fetch(tileable, result_info, [2, None])
63
81
  assert len(fetched) == 1
@@ -195,7 +195,8 @@ def test_run_dataframe_from_to_odps_table(start_mock_session):
195
195
  assert len(result_df) == 10
196
196
  assert len(result_df.columns) == 6
197
197
 
198
- df = md.read_odps_table(table_obj, index_col="index").head(10).execute().fetch()
198
+ df = md.read_odps_table(table_obj, index_col="index").head(10).execute()
199
+ assert df.shape == (10, 5)
199
200
  assert len(df) == 10
200
201
  assert len(df.columns) == 5
201
202
  finally:
@@ -280,7 +281,7 @@ def test_pivot_dataframe(start_mock_session):
280
281
  df = md.DataFrame(pd_df)
281
282
  pivot = df.pivot_table(values="D", index=["A", "B"], columns=["C"], aggfunc="sum")
282
283
  executed = pivot.execute()
283
- assert pivot.shape == (2, 4)
284
+ assert pivot.shape == (4, 2)
284
285
  pd.testing.assert_index_equal(
285
286
  pivot.dtypes.index, pd.Index(["large", "small"], name="C")
286
287
  )
@@ -289,3 +290,13 @@ def test_pivot_dataframe(start_mock_session):
289
290
  values="D", index=["A", "B"], columns=["C"], aggfunc="sum"
290
291
  )
291
292
  pd.testing.assert_frame_equal(executed.to_pandas(), expected)
293
+
294
+
295
+ def test_index_drop_duplicates(start_mock_session):
296
+ pd_idx = pd.Index(["lame", "cow", "lame", "beetle", "lame", "hippo"])
297
+ idx = md.Index(pd_idx)
298
+ executed = idx.drop_duplicates(keep="first").execute()
299
+ expected = pd_idx.drop_duplicates(keep="first")
300
+ pd.testing.assert_index_equal(
301
+ executed.to_pandas().sort_values(), expected.sort_values()
302
+ )