maxframe 2.2.0__cp312-cp312-macosx_10_9_x86_64.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 (1094) hide show
  1. maxframe/__init__.py +33 -0
  2. maxframe/_utils.cpython-312-darwin.so +0 -0
  3. maxframe/_utils.pxd +33 -0
  4. maxframe/_utils.pyi +21 -0
  5. maxframe/_utils.pyx +561 -0
  6. maxframe/codegen/__init__.py +27 -0
  7. maxframe/codegen/core.py +596 -0
  8. maxframe/codegen/spe/__init__.py +16 -0
  9. maxframe/codegen/spe/core.py +307 -0
  10. maxframe/codegen/spe/dataframe/__init__.py +38 -0
  11. maxframe/codegen/spe/dataframe/accessors/__init__.py +15 -0
  12. maxframe/codegen/spe/dataframe/accessors/base.py +71 -0
  13. maxframe/codegen/spe/dataframe/accessors/dict_.py +89 -0
  14. maxframe/codegen/spe/dataframe/accessors/list_.py +44 -0
  15. maxframe/codegen/spe/dataframe/accessors/struct_.py +28 -0
  16. maxframe/codegen/spe/dataframe/arithmetic.py +89 -0
  17. maxframe/codegen/spe/dataframe/datasource.py +181 -0
  18. maxframe/codegen/spe/dataframe/datastore.py +204 -0
  19. maxframe/codegen/spe/dataframe/extensions.py +63 -0
  20. maxframe/codegen/spe/dataframe/fetch.py +26 -0
  21. maxframe/codegen/spe/dataframe/groupby.py +312 -0
  22. maxframe/codegen/spe/dataframe/indexing.py +333 -0
  23. maxframe/codegen/spe/dataframe/merge.py +106 -0
  24. maxframe/codegen/spe/dataframe/misc.py +262 -0
  25. maxframe/codegen/spe/dataframe/missing.py +64 -0
  26. maxframe/codegen/spe/dataframe/reduction.py +165 -0
  27. maxframe/codegen/spe/dataframe/reshape.py +46 -0
  28. maxframe/codegen/spe/dataframe/sort.py +96 -0
  29. maxframe/codegen/spe/dataframe/statistics.py +46 -0
  30. maxframe/codegen/spe/dataframe/tests/__init__.py +13 -0
  31. maxframe/codegen/spe/dataframe/tests/accessors/__init__.py +13 -0
  32. maxframe/codegen/spe/dataframe/tests/accessors/test_base.py +33 -0
  33. maxframe/codegen/spe/dataframe/tests/accessors/test_dict.py +304 -0
  34. maxframe/codegen/spe/dataframe/tests/accessors/test_list.py +134 -0
  35. maxframe/codegen/spe/dataframe/tests/accessors/test_struct.py +75 -0
  36. maxframe/codegen/spe/dataframe/tests/indexing/__init__.py +13 -0
  37. maxframe/codegen/spe/dataframe/tests/indexing/conftest.py +58 -0
  38. maxframe/codegen/spe/dataframe/tests/indexing/test_getitem.py +124 -0
  39. maxframe/codegen/spe/dataframe/tests/indexing/test_iloc.py +95 -0
  40. maxframe/codegen/spe/dataframe/tests/indexing/test_indexing.py +39 -0
  41. maxframe/codegen/spe/dataframe/tests/indexing/test_loc.py +35 -0
  42. maxframe/codegen/spe/dataframe/tests/indexing/test_rename.py +51 -0
  43. maxframe/codegen/spe/dataframe/tests/indexing/test_reset_index.py +88 -0
  44. maxframe/codegen/spe/dataframe/tests/indexing/test_sample.py +45 -0
  45. maxframe/codegen/spe/dataframe/tests/indexing/test_set_axis.py +45 -0
  46. maxframe/codegen/spe/dataframe/tests/indexing/test_set_index.py +41 -0
  47. maxframe/codegen/spe/dataframe/tests/indexing/test_setitem.py +46 -0
  48. maxframe/codegen/spe/dataframe/tests/misc/__init__.py +13 -0
  49. maxframe/codegen/spe/dataframe/tests/misc/test_apply.py +133 -0
  50. maxframe/codegen/spe/dataframe/tests/misc/test_drop_duplicates.py +92 -0
  51. maxframe/codegen/spe/dataframe/tests/misc/test_misc.py +202 -0
  52. maxframe/codegen/spe/dataframe/tests/missing/__init__.py +13 -0
  53. maxframe/codegen/spe/dataframe/tests/missing/test_checkna.py +94 -0
  54. maxframe/codegen/spe/dataframe/tests/missing/test_dropna.py +50 -0
  55. maxframe/codegen/spe/dataframe/tests/missing/test_fillna.py +94 -0
  56. maxframe/codegen/spe/dataframe/tests/missing/test_replace.py +45 -0
  57. maxframe/codegen/spe/dataframe/tests/test_arithmetic.py +73 -0
  58. maxframe/codegen/spe/dataframe/tests/test_datasource.py +184 -0
  59. maxframe/codegen/spe/dataframe/tests/test_datastore.py +200 -0
  60. maxframe/codegen/spe/dataframe/tests/test_extensions.py +88 -0
  61. maxframe/codegen/spe/dataframe/tests/test_groupby.py +288 -0
  62. maxframe/codegen/spe/dataframe/tests/test_merge.py +426 -0
  63. maxframe/codegen/spe/dataframe/tests/test_reduction.py +104 -0
  64. maxframe/codegen/spe/dataframe/tests/test_reshape.py +79 -0
  65. maxframe/codegen/spe/dataframe/tests/test_sort.py +179 -0
  66. maxframe/codegen/spe/dataframe/tests/test_statistics.py +70 -0
  67. maxframe/codegen/spe/dataframe/tests/test_tseries.py +29 -0
  68. maxframe/codegen/spe/dataframe/tests/test_value_counts.py +60 -0
  69. maxframe/codegen/spe/dataframe/tests/test_window.py +69 -0
  70. maxframe/codegen/spe/dataframe/tseries.py +46 -0
  71. maxframe/codegen/spe/dataframe/udf.py +62 -0
  72. maxframe/codegen/spe/dataframe/value_counts.py +31 -0
  73. maxframe/codegen/spe/dataframe/window.py +65 -0
  74. maxframe/codegen/spe/learn/__init__.py +15 -0
  75. maxframe/codegen/spe/learn/contrib/__init__.py +15 -0
  76. maxframe/codegen/spe/learn/contrib/lightgbm.py +160 -0
  77. maxframe/codegen/spe/learn/contrib/models.py +41 -0
  78. maxframe/codegen/spe/learn/contrib/pytorch.py +49 -0
  79. maxframe/codegen/spe/learn/contrib/tests/__init__.py +13 -0
  80. maxframe/codegen/spe/learn/contrib/tests/test_lightgbm.py +123 -0
  81. maxframe/codegen/spe/learn/contrib/tests/test_models.py +41 -0
  82. maxframe/codegen/spe/learn/contrib/tests/test_pytorch.py +53 -0
  83. maxframe/codegen/spe/learn/contrib/tests/test_xgboost.py +99 -0
  84. maxframe/codegen/spe/learn/contrib/xgboost.py +152 -0
  85. maxframe/codegen/spe/learn/metrics/__init__.py +15 -0
  86. maxframe/codegen/spe/learn/metrics/_classification.py +120 -0
  87. maxframe/codegen/spe/learn/metrics/_ranking.py +76 -0
  88. maxframe/codegen/spe/learn/metrics/pairwise.py +51 -0
  89. maxframe/codegen/spe/learn/metrics/tests/__init__.py +13 -0
  90. maxframe/codegen/spe/learn/metrics/tests/test_classification.py +93 -0
  91. maxframe/codegen/spe/learn/metrics/tests/test_pairwise.py +36 -0
  92. maxframe/codegen/spe/learn/metrics/tests/test_ranking.py +59 -0
  93. maxframe/codegen/spe/learn/model_selection/__init__.py +13 -0
  94. maxframe/codegen/spe/learn/model_selection/tests/__init__.py +13 -0
  95. maxframe/codegen/spe/learn/model_selection/tests/test_split.py +41 -0
  96. maxframe/codegen/spe/learn/preprocessing/__init__.py +15 -0
  97. maxframe/codegen/spe/learn/preprocessing/_data.py +37 -0
  98. maxframe/codegen/spe/learn/preprocessing/_label.py +47 -0
  99. maxframe/codegen/spe/learn/preprocessing/tests/__init__.py +13 -0
  100. maxframe/codegen/spe/learn/preprocessing/tests/test_data.py +31 -0
  101. maxframe/codegen/spe/learn/preprocessing/tests/test_label.py +43 -0
  102. maxframe/codegen/spe/learn/utils/__init__.py +15 -0
  103. maxframe/codegen/spe/learn/utils/checks.py +55 -0
  104. maxframe/codegen/spe/learn/utils/multiclass.py +60 -0
  105. maxframe/codegen/spe/learn/utils/shuffle.py +85 -0
  106. maxframe/codegen/spe/learn/utils/sparsefuncs.py +35 -0
  107. maxframe/codegen/spe/learn/utils/tests/__init__.py +13 -0
  108. maxframe/codegen/spe/learn/utils/tests/test_checks.py +48 -0
  109. maxframe/codegen/spe/learn/utils/tests/test_multiclass.py +52 -0
  110. maxframe/codegen/spe/learn/utils/tests/test_shuffle.py +50 -0
  111. maxframe/codegen/spe/learn/utils/tests/test_sparsefuncs.py +34 -0
  112. maxframe/codegen/spe/learn/utils/tests/test_validation.py +44 -0
  113. maxframe/codegen/spe/learn/utils/validation.py +35 -0
  114. maxframe/codegen/spe/objects.py +26 -0
  115. maxframe/codegen/spe/remote.py +29 -0
  116. maxframe/codegen/spe/tensor/__init__.py +31 -0
  117. maxframe/codegen/spe/tensor/arithmetic.py +95 -0
  118. maxframe/codegen/spe/tensor/core.py +41 -0
  119. maxframe/codegen/spe/tensor/datasource.py +165 -0
  120. maxframe/codegen/spe/tensor/extensions.py +35 -0
  121. maxframe/codegen/spe/tensor/fetch.py +26 -0
  122. maxframe/codegen/spe/tensor/fft.py +74 -0
  123. maxframe/codegen/spe/tensor/indexing.py +63 -0
  124. maxframe/codegen/spe/tensor/linalg.py +90 -0
  125. maxframe/codegen/spe/tensor/merge.py +31 -0
  126. maxframe/codegen/spe/tensor/misc.py +175 -0
  127. maxframe/codegen/spe/tensor/random.py +29 -0
  128. maxframe/codegen/spe/tensor/reduction.py +39 -0
  129. maxframe/codegen/spe/tensor/reshape.py +26 -0
  130. maxframe/codegen/spe/tensor/sort.py +42 -0
  131. maxframe/codegen/spe/tensor/spatial.py +45 -0
  132. maxframe/codegen/spe/tensor/special.py +35 -0
  133. maxframe/codegen/spe/tensor/statistics.py +68 -0
  134. maxframe/codegen/spe/tensor/tests/__init__.py +13 -0
  135. maxframe/codegen/spe/tensor/tests/test_arithmetic.py +103 -0
  136. maxframe/codegen/spe/tensor/tests/test_datasource.py +99 -0
  137. maxframe/codegen/spe/tensor/tests/test_extensions.py +37 -0
  138. maxframe/codegen/spe/tensor/tests/test_fft.py +64 -0
  139. maxframe/codegen/spe/tensor/tests/test_indexing.py +44 -0
  140. maxframe/codegen/spe/tensor/tests/test_linalg.py +52 -0
  141. maxframe/codegen/spe/tensor/tests/test_merge.py +28 -0
  142. maxframe/codegen/spe/tensor/tests/test_misc.py +144 -0
  143. maxframe/codegen/spe/tensor/tests/test_random.py +55 -0
  144. maxframe/codegen/spe/tensor/tests/test_reduction.py +65 -0
  145. maxframe/codegen/spe/tensor/tests/test_reshape.py +39 -0
  146. maxframe/codegen/spe/tensor/tests/test_sort.py +49 -0
  147. maxframe/codegen/spe/tensor/tests/test_spatial.py +33 -0
  148. maxframe/codegen/spe/tensor/tests/test_special.py +28 -0
  149. maxframe/codegen/spe/tensor/tests/test_statistics.py +43 -0
  150. maxframe/codegen/spe/tests/__init__.py +13 -0
  151. maxframe/codegen/spe/tests/test_remote.py +29 -0
  152. maxframe/codegen/spe/tests/test_spe_codegen.py +135 -0
  153. maxframe/codegen/spe/utils.py +56 -0
  154. maxframe/codegen/tests/__init__.py +13 -0
  155. maxframe/codegen/tests/test_codegen.py +67 -0
  156. maxframe/config/__init__.py +15 -0
  157. maxframe/config/config.py +627 -0
  158. maxframe/config/tests/__init__.py +13 -0
  159. maxframe/config/tests/test_config.py +114 -0
  160. maxframe/config/tests/test_validators.py +46 -0
  161. maxframe/config/validators.py +142 -0
  162. maxframe/conftest.py +251 -0
  163. maxframe/core/__init__.py +53 -0
  164. maxframe/core/accessor.py +45 -0
  165. maxframe/core/base.py +156 -0
  166. maxframe/core/context.py +110 -0
  167. maxframe/core/entity/__init__.py +34 -0
  168. maxframe/core/entity/core.py +150 -0
  169. maxframe/core/entity/executable.py +337 -0
  170. maxframe/core/entity/objects.py +115 -0
  171. maxframe/core/entity/output_types.py +98 -0
  172. maxframe/core/entity/tests/__init__.py +13 -0
  173. maxframe/core/entity/tests/test_objects.py +42 -0
  174. maxframe/core/entity/tileables.py +367 -0
  175. maxframe/core/entity/utils.py +39 -0
  176. maxframe/core/graph/__init__.py +22 -0
  177. maxframe/core/graph/builder/__init__.py +15 -0
  178. maxframe/core/graph/builder/base.py +91 -0
  179. maxframe/core/graph/builder/tileable.py +34 -0
  180. maxframe/core/graph/builder/utils.py +37 -0
  181. maxframe/core/graph/core.cpython-312-darwin.so +0 -0
  182. maxframe/core/graph/core.pyx +478 -0
  183. maxframe/core/graph/entity.py +158 -0
  184. maxframe/core/graph/tests/__init__.py +13 -0
  185. maxframe/core/graph/tests/test_graph.py +205 -0
  186. maxframe/core/mode.py +96 -0
  187. maxframe/core/operator/__init__.py +32 -0
  188. maxframe/core/operator/base.py +480 -0
  189. maxframe/core/operator/core.py +307 -0
  190. maxframe/core/operator/fetch.py +40 -0
  191. maxframe/core/operator/objects.py +43 -0
  192. maxframe/core/operator/shuffle.py +45 -0
  193. maxframe/core/operator/tests/__init__.py +13 -0
  194. maxframe/core/operator/tests/test_core.py +64 -0
  195. maxframe/core/operator/utils.py +68 -0
  196. maxframe/core/tests/__init__.py +13 -0
  197. maxframe/core/tests/test_mode.py +75 -0
  198. maxframe/dataframe/__init__.py +89 -0
  199. maxframe/dataframe/accessors/__init__.py +15 -0
  200. maxframe/dataframe/accessors/compat.py +45 -0
  201. maxframe/dataframe/accessors/datetime_/__init__.py +35 -0
  202. maxframe/dataframe/accessors/datetime_/accessor.py +67 -0
  203. maxframe/dataframe/accessors/datetime_/core.py +82 -0
  204. maxframe/dataframe/accessors/datetime_/tests/__init__.py +13 -0
  205. maxframe/dataframe/accessors/datetime_/tests/test_datetime_accessor.py +41 -0
  206. maxframe/dataframe/accessors/dict_/__init__.py +43 -0
  207. maxframe/dataframe/accessors/dict_/accessor.py +39 -0
  208. maxframe/dataframe/accessors/dict_/contains.py +72 -0
  209. maxframe/dataframe/accessors/dict_/core.py +48 -0
  210. maxframe/dataframe/accessors/dict_/getitem.py +140 -0
  211. maxframe/dataframe/accessors/dict_/length.py +64 -0
  212. maxframe/dataframe/accessors/dict_/remove.py +75 -0
  213. maxframe/dataframe/accessors/dict_/setitem.py +79 -0
  214. maxframe/dataframe/accessors/dict_/tests/__init__.py +13 -0
  215. maxframe/dataframe/accessors/dict_/tests/test_dict_accessor.py +168 -0
  216. maxframe/dataframe/accessors/list_/__init__.py +37 -0
  217. maxframe/dataframe/accessors/list_/accessor.py +39 -0
  218. maxframe/dataframe/accessors/list_/core.py +48 -0
  219. maxframe/dataframe/accessors/list_/getitem.py +128 -0
  220. maxframe/dataframe/accessors/list_/length.py +64 -0
  221. maxframe/dataframe/accessors/list_/tests/__init__.py +13 -0
  222. maxframe/dataframe/accessors/list_/tests/test_list_accessor.py +81 -0
  223. maxframe/dataframe/accessors/plotting/__init__.py +40 -0
  224. maxframe/dataframe/accessors/plotting/core.py +78 -0
  225. maxframe/dataframe/accessors/plotting/tests/__init__.py +13 -0
  226. maxframe/dataframe/accessors/plotting/tests/test_plotting_accessor.py +136 -0
  227. maxframe/dataframe/accessors/string_/__init__.py +36 -0
  228. maxframe/dataframe/accessors/string_/accessor.py +215 -0
  229. maxframe/dataframe/accessors/string_/core.py +224 -0
  230. maxframe/dataframe/accessors/string_/tests/__init__.py +13 -0
  231. maxframe/dataframe/accessors/string_/tests/test_string_accessor.py +73 -0
  232. maxframe/dataframe/accessors/struct_/__init__.py +37 -0
  233. maxframe/dataframe/accessors/struct_/accessor.py +39 -0
  234. maxframe/dataframe/accessors/struct_/core.py +43 -0
  235. maxframe/dataframe/accessors/struct_/dtypes.py +53 -0
  236. maxframe/dataframe/accessors/struct_/field.py +123 -0
  237. maxframe/dataframe/accessors/struct_/tests/__init__.py +13 -0
  238. maxframe/dataframe/accessors/struct_/tests/test_struct_accessor.py +91 -0
  239. maxframe/dataframe/arithmetic/__init__.py +369 -0
  240. maxframe/dataframe/arithmetic/abs.py +33 -0
  241. maxframe/dataframe/arithmetic/add.py +60 -0
  242. maxframe/dataframe/arithmetic/arccos.py +28 -0
  243. maxframe/dataframe/arithmetic/arccosh.py +28 -0
  244. maxframe/dataframe/arithmetic/arcsin.py +28 -0
  245. maxframe/dataframe/arithmetic/arcsinh.py +28 -0
  246. maxframe/dataframe/arithmetic/arctan.py +28 -0
  247. maxframe/dataframe/arithmetic/arctanh.py +28 -0
  248. maxframe/dataframe/arithmetic/between.py +106 -0
  249. maxframe/dataframe/arithmetic/bitwise_and.py +46 -0
  250. maxframe/dataframe/arithmetic/bitwise_or.py +50 -0
  251. maxframe/dataframe/arithmetic/bitwise_xor.py +46 -0
  252. maxframe/dataframe/arithmetic/ceil.py +28 -0
  253. maxframe/dataframe/arithmetic/core.py +361 -0
  254. maxframe/dataframe/arithmetic/cos.py +28 -0
  255. maxframe/dataframe/arithmetic/cosh.py +28 -0
  256. maxframe/dataframe/arithmetic/degrees.py +28 -0
  257. maxframe/dataframe/arithmetic/docstring.py +416 -0
  258. maxframe/dataframe/arithmetic/dot.py +237 -0
  259. maxframe/dataframe/arithmetic/equal.py +58 -0
  260. maxframe/dataframe/arithmetic/exp.py +28 -0
  261. maxframe/dataframe/arithmetic/exp2.py +28 -0
  262. maxframe/dataframe/arithmetic/expm1.py +28 -0
  263. maxframe/dataframe/arithmetic/floor.py +28 -0
  264. maxframe/dataframe/arithmetic/floordiv.py +64 -0
  265. maxframe/dataframe/arithmetic/greater.py +59 -0
  266. maxframe/dataframe/arithmetic/greater_equal.py +59 -0
  267. maxframe/dataframe/arithmetic/invert.py +33 -0
  268. maxframe/dataframe/arithmetic/is_ufuncs.py +62 -0
  269. maxframe/dataframe/arithmetic/less.py +57 -0
  270. maxframe/dataframe/arithmetic/less_equal.py +59 -0
  271. maxframe/dataframe/arithmetic/log.py +28 -0
  272. maxframe/dataframe/arithmetic/log10.py +28 -0
  273. maxframe/dataframe/arithmetic/log2.py +28 -0
  274. maxframe/dataframe/arithmetic/mod.py +60 -0
  275. maxframe/dataframe/arithmetic/multiply.py +60 -0
  276. maxframe/dataframe/arithmetic/negative.py +33 -0
  277. maxframe/dataframe/arithmetic/not_equal.py +58 -0
  278. maxframe/dataframe/arithmetic/power.py +68 -0
  279. maxframe/dataframe/arithmetic/radians.py +28 -0
  280. maxframe/dataframe/arithmetic/round.py +144 -0
  281. maxframe/dataframe/arithmetic/sin.py +28 -0
  282. maxframe/dataframe/arithmetic/sinh.py +28 -0
  283. maxframe/dataframe/arithmetic/sqrt.py +28 -0
  284. maxframe/dataframe/arithmetic/subtract.py +64 -0
  285. maxframe/dataframe/arithmetic/tan.py +28 -0
  286. maxframe/dataframe/arithmetic/tanh.py +28 -0
  287. maxframe/dataframe/arithmetic/tests/__init__.py +13 -0
  288. maxframe/dataframe/arithmetic/tests/test_arithmetic.py +724 -0
  289. maxframe/dataframe/arithmetic/truediv.py +64 -0
  290. maxframe/dataframe/arithmetic/trunc.py +28 -0
  291. maxframe/dataframe/arrays.py +864 -0
  292. maxframe/dataframe/core.py +2393 -0
  293. maxframe/dataframe/datasource/__init__.py +33 -0
  294. maxframe/dataframe/datasource/core.py +88 -0
  295. maxframe/dataframe/datasource/dataframe.py +59 -0
  296. maxframe/dataframe/datasource/date_range.py +512 -0
  297. maxframe/dataframe/datasource/from_dict.py +124 -0
  298. maxframe/dataframe/datasource/from_index.py +58 -0
  299. maxframe/dataframe/datasource/from_records.py +191 -0
  300. maxframe/dataframe/datasource/from_tensor.py +498 -0
  301. maxframe/dataframe/datasource/index.py +117 -0
  302. maxframe/dataframe/datasource/read_csv.py +533 -0
  303. maxframe/dataframe/datasource/read_odps_query.py +513 -0
  304. maxframe/dataframe/datasource/read_odps_table.py +273 -0
  305. maxframe/dataframe/datasource/read_parquet.py +426 -0
  306. maxframe/dataframe/datasource/series.py +55 -0
  307. maxframe/dataframe/datasource/tests/__init__.py +13 -0
  308. maxframe/dataframe/datasource/tests/test_datasource.py +663 -0
  309. maxframe/dataframe/datastore/__init__.py +30 -0
  310. maxframe/dataframe/datastore/core.py +19 -0
  311. maxframe/dataframe/datastore/tests/__init__.py +13 -0
  312. maxframe/dataframe/datastore/tests/test_to_odps.py +99 -0
  313. maxframe/dataframe/datastore/to_csv.py +219 -0
  314. maxframe/dataframe/datastore/to_odps.py +258 -0
  315. maxframe/dataframe/extensions/__init__.py +70 -0
  316. maxframe/dataframe/extensions/accessor.py +35 -0
  317. maxframe/dataframe/extensions/apply_chunk.py +733 -0
  318. maxframe/dataframe/extensions/cartesian_chunk.py +153 -0
  319. maxframe/dataframe/extensions/collect_kv.py +126 -0
  320. maxframe/dataframe/extensions/extract_kv.py +177 -0
  321. maxframe/dataframe/extensions/flatjson.py +132 -0
  322. maxframe/dataframe/extensions/flatmap.py +329 -0
  323. maxframe/dataframe/extensions/map_reduce.py +263 -0
  324. maxframe/dataframe/extensions/rebalance.py +62 -0
  325. maxframe/dataframe/extensions/reshuffle.py +83 -0
  326. maxframe/dataframe/extensions/tests/__init__.py +13 -0
  327. maxframe/dataframe/extensions/tests/test_apply_chunk.py +194 -0
  328. maxframe/dataframe/extensions/tests/test_extensions.py +198 -0
  329. maxframe/dataframe/extensions/tests/test_map_reduce.py +135 -0
  330. maxframe/dataframe/fetch/__init__.py +15 -0
  331. maxframe/dataframe/fetch/core.py +97 -0
  332. maxframe/dataframe/groupby/__init__.py +101 -0
  333. maxframe/dataframe/groupby/aggregation.py +437 -0
  334. maxframe/dataframe/groupby/apply.py +235 -0
  335. maxframe/dataframe/groupby/apply_chunk.py +409 -0
  336. maxframe/dataframe/groupby/core.py +326 -0
  337. maxframe/dataframe/groupby/cum.py +102 -0
  338. maxframe/dataframe/groupby/expanding.py +264 -0
  339. maxframe/dataframe/groupby/extensions.py +26 -0
  340. maxframe/dataframe/groupby/fill.py +149 -0
  341. maxframe/dataframe/groupby/getitem.py +105 -0
  342. maxframe/dataframe/groupby/head.py +115 -0
  343. maxframe/dataframe/groupby/rank.py +136 -0
  344. maxframe/dataframe/groupby/rolling.py +206 -0
  345. maxframe/dataframe/groupby/sample.py +214 -0
  346. maxframe/dataframe/groupby/shift.py +114 -0
  347. maxframe/dataframe/groupby/tests/__init__.py +13 -0
  348. maxframe/dataframe/groupby/tests/test_groupby.py +373 -0
  349. maxframe/dataframe/groupby/transform.py +264 -0
  350. maxframe/dataframe/indexing/__init__.py +103 -0
  351. maxframe/dataframe/indexing/add_prefix_suffix.py +110 -0
  352. maxframe/dataframe/indexing/align.py +350 -0
  353. maxframe/dataframe/indexing/at.py +83 -0
  354. maxframe/dataframe/indexing/droplevel.py +195 -0
  355. maxframe/dataframe/indexing/filter.py +169 -0
  356. maxframe/dataframe/indexing/get_level_values.py +76 -0
  357. maxframe/dataframe/indexing/getitem.py +205 -0
  358. maxframe/dataframe/indexing/iat.py +82 -0
  359. maxframe/dataframe/indexing/iloc.py +711 -0
  360. maxframe/dataframe/indexing/insert.py +90 -0
  361. maxframe/dataframe/indexing/loc.py +694 -0
  362. maxframe/dataframe/indexing/reindex.py +541 -0
  363. maxframe/dataframe/indexing/rename.py +445 -0
  364. maxframe/dataframe/indexing/rename_axis.py +217 -0
  365. maxframe/dataframe/indexing/reorder_levels.py +143 -0
  366. maxframe/dataframe/indexing/reset_index.py +427 -0
  367. maxframe/dataframe/indexing/sample.py +232 -0
  368. maxframe/dataframe/indexing/set_axis.py +197 -0
  369. maxframe/dataframe/indexing/set_index.py +128 -0
  370. maxframe/dataframe/indexing/setitem.py +133 -0
  371. maxframe/dataframe/indexing/swaplevel.py +185 -0
  372. maxframe/dataframe/indexing/take.py +99 -0
  373. maxframe/dataframe/indexing/tests/__init__.py +13 -0
  374. maxframe/dataframe/indexing/tests/test_indexing.py +488 -0
  375. maxframe/dataframe/indexing/truncate.py +140 -0
  376. maxframe/dataframe/indexing/where.py +300 -0
  377. maxframe/dataframe/indexing/xs.py +148 -0
  378. maxframe/dataframe/initializer.py +298 -0
  379. maxframe/dataframe/merge/__init__.py +50 -0
  380. maxframe/dataframe/merge/append.py +120 -0
  381. maxframe/dataframe/merge/combine_first.py +120 -0
  382. maxframe/dataframe/merge/compare.py +387 -0
  383. maxframe/dataframe/merge/concat.py +500 -0
  384. maxframe/dataframe/merge/merge.py +806 -0
  385. maxframe/dataframe/merge/tests/__init__.py +13 -0
  386. maxframe/dataframe/merge/tests/test_merge.py +390 -0
  387. maxframe/dataframe/merge/update.py +271 -0
  388. maxframe/dataframe/misc/__init__.py +131 -0
  389. maxframe/dataframe/misc/_duplicate.py +56 -0
  390. maxframe/dataframe/misc/apply.py +730 -0
  391. maxframe/dataframe/misc/astype.py +237 -0
  392. maxframe/dataframe/misc/case_when.py +145 -0
  393. maxframe/dataframe/misc/check_monotonic.py +84 -0
  394. maxframe/dataframe/misc/check_unique.py +51 -0
  395. maxframe/dataframe/misc/clip.py +145 -0
  396. maxframe/dataframe/misc/cut.py +386 -0
  397. maxframe/dataframe/misc/describe.py +278 -0
  398. maxframe/dataframe/misc/diff.py +210 -0
  399. maxframe/dataframe/misc/drop.py +442 -0
  400. maxframe/dataframe/misc/drop_duplicates.py +251 -0
  401. maxframe/dataframe/misc/duplicated.py +292 -0
  402. maxframe/dataframe/misc/eval.py +730 -0
  403. maxframe/dataframe/misc/explode.py +171 -0
  404. maxframe/dataframe/misc/get_dummies.py +241 -0
  405. maxframe/dataframe/misc/isin.py +220 -0
  406. maxframe/dataframe/misc/map.py +347 -0
  407. maxframe/dataframe/misc/memory_usage.py +248 -0
  408. maxframe/dataframe/misc/pct_change.py +68 -0
  409. maxframe/dataframe/misc/qcut.py +104 -0
  410. maxframe/dataframe/misc/rechunk.py +59 -0
  411. maxframe/dataframe/misc/select_dtypes.py +104 -0
  412. maxframe/dataframe/misc/shift.py +259 -0
  413. maxframe/dataframe/misc/tests/__init__.py +13 -0
  414. maxframe/dataframe/misc/tests/test_misc.py +615 -0
  415. maxframe/dataframe/misc/to_numeric.py +181 -0
  416. maxframe/dataframe/misc/transform.py +346 -0
  417. maxframe/dataframe/misc/transpose.py +148 -0
  418. maxframe/dataframe/misc/valid_index.py +115 -0
  419. maxframe/dataframe/misc/value_counts.py +206 -0
  420. maxframe/dataframe/missing/__init__.py +53 -0
  421. maxframe/dataframe/missing/checkna.py +230 -0
  422. maxframe/dataframe/missing/dropna.py +294 -0
  423. maxframe/dataframe/missing/fillna.py +283 -0
  424. maxframe/dataframe/missing/replace.py +446 -0
  425. maxframe/dataframe/missing/tests/__init__.py +13 -0
  426. maxframe/dataframe/missing/tests/test_missing.py +90 -0
  427. maxframe/dataframe/operators.py +231 -0
  428. maxframe/dataframe/reduction/__init__.py +124 -0
  429. maxframe/dataframe/reduction/aggregation.py +499 -0
  430. maxframe/dataframe/reduction/all.py +78 -0
  431. maxframe/dataframe/reduction/any.py +78 -0
  432. maxframe/dataframe/reduction/argmax.py +100 -0
  433. maxframe/dataframe/reduction/argmin.py +100 -0
  434. maxframe/dataframe/reduction/core.py +898 -0
  435. maxframe/dataframe/reduction/count.py +63 -0
  436. maxframe/dataframe/reduction/cov.py +166 -0
  437. maxframe/dataframe/reduction/cummax.py +30 -0
  438. maxframe/dataframe/reduction/cummin.py +30 -0
  439. maxframe/dataframe/reduction/cumprod.py +30 -0
  440. maxframe/dataframe/reduction/cumsum.py +30 -0
  441. maxframe/dataframe/reduction/custom_reduction.py +42 -0
  442. maxframe/dataframe/reduction/idxmax.py +185 -0
  443. maxframe/dataframe/reduction/idxmin.py +185 -0
  444. maxframe/dataframe/reduction/kurtosis.py +111 -0
  445. maxframe/dataframe/reduction/max.py +65 -0
  446. maxframe/dataframe/reduction/mean.py +63 -0
  447. maxframe/dataframe/reduction/median.py +56 -0
  448. maxframe/dataframe/reduction/min.py +65 -0
  449. maxframe/dataframe/reduction/nunique.py +142 -0
  450. maxframe/dataframe/reduction/prod.py +81 -0
  451. maxframe/dataframe/reduction/reduction_size.py +36 -0
  452. maxframe/dataframe/reduction/sem.py +73 -0
  453. maxframe/dataframe/reduction/skew.py +93 -0
  454. maxframe/dataframe/reduction/std.py +53 -0
  455. maxframe/dataframe/reduction/str_concat.py +51 -0
  456. maxframe/dataframe/reduction/sum.py +81 -0
  457. maxframe/dataframe/reduction/tests/__init__.py +13 -0
  458. maxframe/dataframe/reduction/tests/test_reduction.py +529 -0
  459. maxframe/dataframe/reduction/unique.py +153 -0
  460. maxframe/dataframe/reduction/var.py +76 -0
  461. maxframe/dataframe/reshape/__init__.py +38 -0
  462. maxframe/dataframe/reshape/melt.py +169 -0
  463. maxframe/dataframe/reshape/pivot.py +233 -0
  464. maxframe/dataframe/reshape/pivot_table.py +275 -0
  465. maxframe/dataframe/reshape/stack.py +240 -0
  466. maxframe/dataframe/reshape/unstack.py +114 -0
  467. maxframe/dataframe/sort/__init__.py +42 -0
  468. maxframe/dataframe/sort/argsort.py +62 -0
  469. maxframe/dataframe/sort/core.py +37 -0
  470. maxframe/dataframe/sort/nlargest.py +238 -0
  471. maxframe/dataframe/sort/nsmallest.py +228 -0
  472. maxframe/dataframe/sort/sort_index.py +153 -0
  473. maxframe/dataframe/sort/sort_values.py +301 -0
  474. maxframe/dataframe/sort/tests/__init__.py +13 -0
  475. maxframe/dataframe/sort/tests/test_sort.py +81 -0
  476. maxframe/dataframe/statistics/__init__.py +33 -0
  477. maxframe/dataframe/statistics/corr.py +284 -0
  478. maxframe/dataframe/statistics/quantile.py +338 -0
  479. maxframe/dataframe/statistics/tests/__init__.py +13 -0
  480. maxframe/dataframe/statistics/tests/test_statistics.py +82 -0
  481. maxframe/dataframe/tests/__init__.py +13 -0
  482. maxframe/dataframe/tests/test_initializer.py +60 -0
  483. maxframe/dataframe/tests/test_typing.py +104 -0
  484. maxframe/dataframe/tests/test_utils.py +165 -0
  485. maxframe/dataframe/tseries/__init__.py +13 -0
  486. maxframe/dataframe/tseries/tests/__init__.py +13 -0
  487. maxframe/dataframe/tseries/tests/test_tseries.py +30 -0
  488. maxframe/dataframe/tseries/to_datetime.py +299 -0
  489. maxframe/dataframe/typing_.py +185 -0
  490. maxframe/dataframe/ufunc/__init__.py +27 -0
  491. maxframe/dataframe/ufunc/tensor.py +54 -0
  492. maxframe/dataframe/ufunc/ufunc.py +53 -0
  493. maxframe/dataframe/utils.py +1647 -0
  494. maxframe/dataframe/window/__init__.py +29 -0
  495. maxframe/dataframe/window/aggregation.py +100 -0
  496. maxframe/dataframe/window/core.py +82 -0
  497. maxframe/dataframe/window/ewm.py +247 -0
  498. maxframe/dataframe/window/expanding.py +151 -0
  499. maxframe/dataframe/window/rolling.py +389 -0
  500. maxframe/dataframe/window/tests/__init__.py +13 -0
  501. maxframe/dataframe/window/tests/test_ewm.py +70 -0
  502. maxframe/dataframe/window/tests/test_expanding.py +60 -0
  503. maxframe/dataframe/window/tests/test_rolling.py +57 -0
  504. maxframe/env.py +37 -0
  505. maxframe/errors.py +47 -0
  506. maxframe/extension.py +107 -0
  507. maxframe/io/__init__.py +13 -0
  508. maxframe/io/objects/__init__.py +24 -0
  509. maxframe/io/objects/core.py +156 -0
  510. maxframe/io/objects/tensor.py +132 -0
  511. maxframe/io/objects/tests/__init__.py +13 -0
  512. maxframe/io/objects/tests/test_object_io.py +79 -0
  513. maxframe/io/odpsio/__init__.py +23 -0
  514. maxframe/io/odpsio/arrow.py +161 -0
  515. maxframe/io/odpsio/schema.py +496 -0
  516. maxframe/io/odpsio/tableio.py +727 -0
  517. maxframe/io/odpsio/tests/__init__.py +13 -0
  518. maxframe/io/odpsio/tests/test_arrow.py +132 -0
  519. maxframe/io/odpsio/tests/test_schema.py +580 -0
  520. maxframe/io/odpsio/tests/test_tableio.py +205 -0
  521. maxframe/io/odpsio/tests/test_volumeio.py +75 -0
  522. maxframe/io/odpsio/volumeio.py +102 -0
  523. maxframe/learn/__init__.py +25 -0
  524. maxframe/learn/cluster/__init__.py +15 -0
  525. maxframe/learn/cluster/_kmeans.py +782 -0
  526. maxframe/learn/contrib/__init__.py +17 -0
  527. maxframe/learn/contrib/graph/__init__.py +15 -0
  528. maxframe/learn/contrib/graph/connected_components.py +216 -0
  529. maxframe/learn/contrib/graph/tests/__init__.py +13 -0
  530. maxframe/learn/contrib/graph/tests/test_connected_components.py +53 -0
  531. maxframe/learn/contrib/lightgbm/__init__.py +33 -0
  532. maxframe/learn/contrib/lightgbm/_predict.py +138 -0
  533. maxframe/learn/contrib/lightgbm/_train.py +163 -0
  534. maxframe/learn/contrib/lightgbm/callback.py +114 -0
  535. maxframe/learn/contrib/lightgbm/classifier.py +199 -0
  536. maxframe/learn/contrib/lightgbm/core.py +372 -0
  537. maxframe/learn/contrib/lightgbm/dataset.py +153 -0
  538. maxframe/learn/contrib/lightgbm/regressor.py +29 -0
  539. maxframe/learn/contrib/lightgbm/tests/__init__.py +13 -0
  540. maxframe/learn/contrib/lightgbm/tests/test_callback.py +58 -0
  541. maxframe/learn/contrib/llm/__init__.py +17 -0
  542. maxframe/learn/contrib/llm/core.py +77 -0
  543. maxframe/learn/contrib/llm/models/__init__.py +15 -0
  544. maxframe/learn/contrib/llm/models/dashscope.py +108 -0
  545. maxframe/learn/contrib/llm/models/managed.py +54 -0
  546. maxframe/learn/contrib/llm/multi_modal.py +135 -0
  547. maxframe/learn/contrib/llm/text.py +302 -0
  548. maxframe/learn/contrib/models.py +106 -0
  549. maxframe/learn/contrib/pytorch/__init__.py +16 -0
  550. maxframe/learn/contrib/pytorch/run_function.py +110 -0
  551. maxframe/learn/contrib/pytorch/run_script.py +102 -0
  552. maxframe/learn/contrib/pytorch/tests/__init__.py +13 -0
  553. maxframe/learn/contrib/pytorch/tests/test_pytorch.py +42 -0
  554. maxframe/learn/contrib/utils.py +108 -0
  555. maxframe/learn/contrib/xgboost/__init__.py +33 -0
  556. maxframe/learn/contrib/xgboost/callback.py +86 -0
  557. maxframe/learn/contrib/xgboost/classifier.py +117 -0
  558. maxframe/learn/contrib/xgboost/core.py +445 -0
  559. maxframe/learn/contrib/xgboost/dmatrix.py +157 -0
  560. maxframe/learn/contrib/xgboost/predict.py +131 -0
  561. maxframe/learn/contrib/xgboost/regressor.py +86 -0
  562. maxframe/learn/contrib/xgboost/tests/__init__.py +13 -0
  563. maxframe/learn/contrib/xgboost/tests/test_callback.py +41 -0
  564. maxframe/learn/contrib/xgboost/tests/test_core.py +43 -0
  565. maxframe/learn/contrib/xgboost/train.py +179 -0
  566. maxframe/learn/core.py +344 -0
  567. maxframe/learn/datasets/__init__.py +20 -0
  568. maxframe/learn/datasets/samples_generator.py +628 -0
  569. maxframe/learn/linear_model/__init__.py +15 -0
  570. maxframe/learn/linear_model/_base.py +220 -0
  571. maxframe/learn/linear_model/_lin_reg.py +175 -0
  572. maxframe/learn/metrics/__init__.py +31 -0
  573. maxframe/learn/metrics/_check_targets.py +95 -0
  574. maxframe/learn/metrics/_classification.py +1266 -0
  575. maxframe/learn/metrics/_ranking.py +477 -0
  576. maxframe/learn/metrics/_regression.py +256 -0
  577. maxframe/learn/metrics/_scorer.py +60 -0
  578. maxframe/learn/metrics/pairwise/__init__.py +21 -0
  579. maxframe/learn/metrics/pairwise/core.py +77 -0
  580. maxframe/learn/metrics/pairwise/cosine.py +115 -0
  581. maxframe/learn/metrics/pairwise/euclidean.py +176 -0
  582. maxframe/learn/metrics/pairwise/haversine.py +96 -0
  583. maxframe/learn/metrics/pairwise/manhattan.py +80 -0
  584. maxframe/learn/metrics/pairwise/pairwise.py +127 -0
  585. maxframe/learn/metrics/pairwise/pairwise_distances_topk.py +121 -0
  586. maxframe/learn/metrics/pairwise/rbf_kernel.py +51 -0
  587. maxframe/learn/metrics/tests/__init__.py +13 -0
  588. maxframe/learn/metrics/tests/test_scorer.py +26 -0
  589. maxframe/learn/model_selection/__init__.py +15 -0
  590. maxframe/learn/model_selection/_split.py +451 -0
  591. maxframe/learn/model_selection/tests/__init__.py +13 -0
  592. maxframe/learn/model_selection/tests/test_split.py +156 -0
  593. maxframe/learn/preprocessing/__init__.py +16 -0
  594. maxframe/learn/preprocessing/_data/__init__.py +17 -0
  595. maxframe/learn/preprocessing/_data/min_max_scaler.py +390 -0
  596. maxframe/learn/preprocessing/_data/normalize.py +127 -0
  597. maxframe/learn/preprocessing/_data/standard_scaler.py +503 -0
  598. maxframe/learn/preprocessing/_data/utils.py +79 -0
  599. maxframe/learn/preprocessing/_label/__init__.py +16 -0
  600. maxframe/learn/preprocessing/_label/_label_binarizer.py +599 -0
  601. maxframe/learn/preprocessing/_label/_label_encoder.py +174 -0
  602. maxframe/learn/utils/__init__.py +19 -0
  603. maxframe/learn/utils/_encode.py +314 -0
  604. maxframe/learn/utils/checks.py +160 -0
  605. maxframe/learn/utils/core.py +121 -0
  606. maxframe/learn/utils/extmath.py +213 -0
  607. maxframe/learn/utils/multiclass.py +292 -0
  608. maxframe/learn/utils/odpsio.py +193 -0
  609. maxframe/learn/utils/shuffle.py +114 -0
  610. maxframe/learn/utils/sparsefuncs.py +87 -0
  611. maxframe/learn/utils/validation.py +775 -0
  612. maxframe/lib/__init__.py +13 -0
  613. maxframe/lib/aio/__init__.py +27 -0
  614. maxframe/lib/aio/_runners.py +162 -0
  615. maxframe/lib/aio/_threads.py +35 -0
  616. maxframe/lib/aio/base.py +82 -0
  617. maxframe/lib/aio/file.py +85 -0
  618. maxframe/lib/aio/isolation.py +100 -0
  619. maxframe/lib/aio/lru.py +242 -0
  620. maxframe/lib/aio/parallelism.py +37 -0
  621. maxframe/lib/aio/tests/__init__.py +13 -0
  622. maxframe/lib/aio/tests/test_aio_file.py +55 -0
  623. maxframe/lib/compat.py +185 -0
  624. maxframe/lib/compression.py +55 -0
  625. maxframe/lib/cython/__init__.py +13 -0
  626. maxframe/lib/cython/libcpp.pxd +30 -0
  627. maxframe/lib/dtypes_extension/__init__.py +30 -0
  628. maxframe/lib/dtypes_extension/_fake_arrow_dtype.py +604 -0
  629. maxframe/lib/dtypes_extension/blob.py +304 -0
  630. maxframe/lib/dtypes_extension/dtypes.py +106 -0
  631. maxframe/lib/dtypes_extension/tests/__init__.py +13 -0
  632. maxframe/lib/dtypes_extension/tests/test_blob.py +88 -0
  633. maxframe/lib/dtypes_extension/tests/test_dtypes.py +63 -0
  634. maxframe/lib/dtypes_extension/tests/test_fake_arrow_dtype.py +75 -0
  635. maxframe/lib/filesystem/__init__.py +21 -0
  636. maxframe/lib/filesystem/_glob.py +173 -0
  637. maxframe/lib/filesystem/_oss_lib/__init__.py +13 -0
  638. maxframe/lib/filesystem/_oss_lib/common.py +270 -0
  639. maxframe/lib/filesystem/_oss_lib/glob.py +147 -0
  640. maxframe/lib/filesystem/_oss_lib/handle.py +152 -0
  641. maxframe/lib/filesystem/arrow.py +236 -0
  642. maxframe/lib/filesystem/base.py +263 -0
  643. maxframe/lib/filesystem/core.py +95 -0
  644. maxframe/lib/filesystem/fsmap.py +164 -0
  645. maxframe/lib/filesystem/hdfs.py +31 -0
  646. maxframe/lib/filesystem/local.py +112 -0
  647. maxframe/lib/filesystem/oss.py +226 -0
  648. maxframe/lib/filesystem/tests/__init__.py +13 -0
  649. maxframe/lib/filesystem/tests/test_filesystem.py +225 -0
  650. maxframe/lib/filesystem/tests/test_oss.py +220 -0
  651. maxframe/lib/functools_compat.py +81 -0
  652. maxframe/lib/mmh3.cpython-312-darwin.so +0 -0
  653. maxframe/lib/mmh3.pyi +43 -0
  654. maxframe/lib/mmh3_src/MurmurHash3.cpp +339 -0
  655. maxframe/lib/mmh3_src/MurmurHash3.h +43 -0
  656. maxframe/lib/mmh3_src/mmh3module.cpp +387 -0
  657. maxframe/lib/sparse/__init__.py +856 -0
  658. maxframe/lib/sparse/array.py +1616 -0
  659. maxframe/lib/sparse/core.py +90 -0
  660. maxframe/lib/sparse/linalg.py +31 -0
  661. maxframe/lib/sparse/matrix.py +244 -0
  662. maxframe/lib/sparse/tests/__init__.py +13 -0
  663. maxframe/lib/sparse/tests/test_sparse.py +476 -0
  664. maxframe/lib/sparse/vector.py +148 -0
  665. maxframe/lib/tblib/LICENSE +20 -0
  666. maxframe/lib/tblib/__init__.py +327 -0
  667. maxframe/lib/tblib/cpython.py +83 -0
  668. maxframe/lib/tblib/decorators.py +44 -0
  669. maxframe/lib/tblib/pickling_support.py +90 -0
  670. maxframe/lib/tests/__init__.py +13 -0
  671. maxframe/lib/tests/test_wrapped_pickle.py +51 -0
  672. maxframe/lib/version.py +620 -0
  673. maxframe/lib/wrapped_pickle.py +150 -0
  674. maxframe/mixin.py +157 -0
  675. maxframe/opcodes.py +649 -0
  676. maxframe/protocol.py +607 -0
  677. maxframe/remote/__init__.py +18 -0
  678. maxframe/remote/core.py +208 -0
  679. maxframe/remote/run_script.py +124 -0
  680. maxframe/serialization/__init__.py +39 -0
  681. maxframe/serialization/arrow.py +120 -0
  682. maxframe/serialization/blob.py +32 -0
  683. maxframe/serialization/core.cpython-312-darwin.so +0 -0
  684. maxframe/serialization/core.pxd +50 -0
  685. maxframe/serialization/core.pyi +66 -0
  686. maxframe/serialization/core.pyx +1265 -0
  687. maxframe/serialization/exception.py +84 -0
  688. maxframe/serialization/maxframe_objects.py +39 -0
  689. maxframe/serialization/numpy.py +110 -0
  690. maxframe/serialization/pandas.py +278 -0
  691. maxframe/serialization/scipy.py +71 -0
  692. maxframe/serialization/serializables/__init__.py +55 -0
  693. maxframe/serialization/serializables/core.py +469 -0
  694. maxframe/serialization/serializables/field.py +624 -0
  695. maxframe/serialization/serializables/field_type.py +592 -0
  696. maxframe/serialization/serializables/tests/__init__.py +13 -0
  697. maxframe/serialization/serializables/tests/test_field_type.py +119 -0
  698. maxframe/serialization/serializables/tests/test_serializable.py +313 -0
  699. maxframe/serialization/tests/__init__.py +13 -0
  700. maxframe/serialization/tests/test_serial.py +487 -0
  701. maxframe/session.py +1250 -0
  702. maxframe/sperunner.py +165 -0
  703. maxframe/tensor/__init__.py +325 -0
  704. maxframe/tensor/arithmetic/__init__.py +322 -0
  705. maxframe/tensor/arithmetic/abs.py +66 -0
  706. maxframe/tensor/arithmetic/absolute.py +66 -0
  707. maxframe/tensor/arithmetic/add.py +112 -0
  708. maxframe/tensor/arithmetic/angle.py +70 -0
  709. maxframe/tensor/arithmetic/arccos.py +101 -0
  710. maxframe/tensor/arithmetic/arccosh.py +89 -0
  711. maxframe/tensor/arithmetic/arcsin.py +92 -0
  712. maxframe/tensor/arithmetic/arcsinh.py +84 -0
  713. maxframe/tensor/arithmetic/arctan.py +104 -0
  714. maxframe/tensor/arithmetic/arctan2.py +126 -0
  715. maxframe/tensor/arithmetic/arctanh.py +84 -0
  716. maxframe/tensor/arithmetic/around.py +112 -0
  717. maxframe/tensor/arithmetic/bitand.py +93 -0
  718. maxframe/tensor/arithmetic/bitor.py +100 -0
  719. maxframe/tensor/arithmetic/bitxor.py +93 -0
  720. maxframe/tensor/arithmetic/cbrt.py +64 -0
  721. maxframe/tensor/arithmetic/ceil.py +69 -0
  722. maxframe/tensor/arithmetic/clip.py +165 -0
  723. maxframe/tensor/arithmetic/conj.py +72 -0
  724. maxframe/tensor/arithmetic/copysign.py +76 -0
  725. maxframe/tensor/arithmetic/core.py +552 -0
  726. maxframe/tensor/arithmetic/cos.py +83 -0
  727. maxframe/tensor/arithmetic/cosh.py +70 -0
  728. maxframe/tensor/arithmetic/deg2rad.py +70 -0
  729. maxframe/tensor/arithmetic/degrees.py +75 -0
  730. maxframe/tensor/arithmetic/divide.py +112 -0
  731. maxframe/tensor/arithmetic/equal.py +74 -0
  732. maxframe/tensor/arithmetic/exp.py +104 -0
  733. maxframe/tensor/arithmetic/exp2.py +65 -0
  734. maxframe/tensor/arithmetic/expm1.py +77 -0
  735. maxframe/tensor/arithmetic/fabs.py +72 -0
  736. maxframe/tensor/arithmetic/fix.py +67 -0
  737. maxframe/tensor/arithmetic/float_power.py +101 -0
  738. maxframe/tensor/arithmetic/floor.py +75 -0
  739. maxframe/tensor/arithmetic/floordiv.py +92 -0
  740. maxframe/tensor/arithmetic/fmax.py +103 -0
  741. maxframe/tensor/arithmetic/fmin.py +104 -0
  742. maxframe/tensor/arithmetic/fmod.py +97 -0
  743. maxframe/tensor/arithmetic/frexp.py +96 -0
  744. maxframe/tensor/arithmetic/greater.py +75 -0
  745. maxframe/tensor/arithmetic/greater_equal.py +67 -0
  746. maxframe/tensor/arithmetic/hypot.py +75 -0
  747. maxframe/tensor/arithmetic/i0.py +87 -0
  748. maxframe/tensor/arithmetic/imag.py +65 -0
  749. maxframe/tensor/arithmetic/invert.py +108 -0
  750. maxframe/tensor/arithmetic/isclose.py +114 -0
  751. maxframe/tensor/arithmetic/iscomplex.py +62 -0
  752. maxframe/tensor/arithmetic/iscomplexobj.py +53 -0
  753. maxframe/tensor/arithmetic/isfinite.py +104 -0
  754. maxframe/tensor/arithmetic/isinf.py +101 -0
  755. maxframe/tensor/arithmetic/isnan.py +80 -0
  756. maxframe/tensor/arithmetic/isreal.py +61 -0
  757. maxframe/tensor/arithmetic/ldexp.py +97 -0
  758. maxframe/tensor/arithmetic/less.py +67 -0
  759. maxframe/tensor/arithmetic/less_equal.py +67 -0
  760. maxframe/tensor/arithmetic/log.py +90 -0
  761. maxframe/tensor/arithmetic/log10.py +83 -0
  762. maxframe/tensor/arithmetic/log1p.py +93 -0
  763. maxframe/tensor/arithmetic/log2.py +83 -0
  764. maxframe/tensor/arithmetic/logaddexp.py +78 -0
  765. maxframe/tensor/arithmetic/logaddexp2.py +76 -0
  766. maxframe/tensor/arithmetic/logical_and.py +79 -0
  767. maxframe/tensor/arithmetic/logical_not.py +72 -0
  768. maxframe/tensor/arithmetic/logical_or.py +80 -0
  769. maxframe/tensor/arithmetic/logical_xor.py +86 -0
  770. maxframe/tensor/arithmetic/lshift.py +80 -0
  771. maxframe/tensor/arithmetic/maximum.py +106 -0
  772. maxframe/tensor/arithmetic/minimum.py +106 -0
  773. maxframe/tensor/arithmetic/mod.py +102 -0
  774. maxframe/tensor/arithmetic/modf.py +87 -0
  775. maxframe/tensor/arithmetic/multiply.py +114 -0
  776. maxframe/tensor/arithmetic/nan_to_num.py +97 -0
  777. maxframe/tensor/arithmetic/negative.py +63 -0
  778. maxframe/tensor/arithmetic/nextafter.py +66 -0
  779. maxframe/tensor/arithmetic/not_equal.py +70 -0
  780. maxframe/tensor/arithmetic/positive.py +45 -0
  781. maxframe/tensor/arithmetic/power.py +104 -0
  782. maxframe/tensor/arithmetic/rad2deg.py +69 -0
  783. maxframe/tensor/arithmetic/radians.py +75 -0
  784. maxframe/tensor/arithmetic/real.py +68 -0
  785. maxframe/tensor/arithmetic/reciprocal.py +78 -0
  786. maxframe/tensor/arithmetic/rint.py +66 -0
  787. maxframe/tensor/arithmetic/rshift.py +79 -0
  788. maxframe/tensor/arithmetic/setimag.py +27 -0
  789. maxframe/tensor/arithmetic/setreal.py +27 -0
  790. maxframe/tensor/arithmetic/sign.py +79 -0
  791. maxframe/tensor/arithmetic/signbit.py +63 -0
  792. maxframe/tensor/arithmetic/sin.py +96 -0
  793. maxframe/tensor/arithmetic/sinc.py +100 -0
  794. maxframe/tensor/arithmetic/sinh.py +91 -0
  795. maxframe/tensor/arithmetic/spacing.py +70 -0
  796. maxframe/tensor/arithmetic/sqrt.py +79 -0
  797. maxframe/tensor/arithmetic/square.py +67 -0
  798. maxframe/tensor/arithmetic/subtract.py +83 -0
  799. maxframe/tensor/arithmetic/tan.py +86 -0
  800. maxframe/tensor/arithmetic/tanh.py +90 -0
  801. maxframe/tensor/arithmetic/tests/__init__.py +13 -0
  802. maxframe/tensor/arithmetic/tests/test_arithmetic.py +458 -0
  803. maxframe/tensor/arithmetic/truediv.py +102 -0
  804. maxframe/tensor/arithmetic/trunc.py +70 -0
  805. maxframe/tensor/arithmetic/utils.py +91 -0
  806. maxframe/tensor/array_utils.py +164 -0
  807. maxframe/tensor/core.py +594 -0
  808. maxframe/tensor/datasource/__init__.py +40 -0
  809. maxframe/tensor/datasource/arange.py +154 -0
  810. maxframe/tensor/datasource/array.py +399 -0
  811. maxframe/tensor/datasource/core.py +114 -0
  812. maxframe/tensor/datasource/diag.py +140 -0
  813. maxframe/tensor/datasource/diagflat.py +69 -0
  814. maxframe/tensor/datasource/empty.py +167 -0
  815. maxframe/tensor/datasource/eye.py +95 -0
  816. maxframe/tensor/datasource/from_dataframe.py +68 -0
  817. maxframe/tensor/datasource/from_dense.py +37 -0
  818. maxframe/tensor/datasource/from_sparse.py +45 -0
  819. maxframe/tensor/datasource/full.py +184 -0
  820. maxframe/tensor/datasource/identity.py +54 -0
  821. maxframe/tensor/datasource/indices.py +115 -0
  822. maxframe/tensor/datasource/linspace.py +140 -0
  823. maxframe/tensor/datasource/meshgrid.py +135 -0
  824. maxframe/tensor/datasource/ones.py +178 -0
  825. maxframe/tensor/datasource/scalar.py +40 -0
  826. maxframe/tensor/datasource/tests/__init__.py +13 -0
  827. maxframe/tensor/datasource/tests/test_datasource.py +310 -0
  828. maxframe/tensor/datasource/tri_array.py +107 -0
  829. maxframe/tensor/datasource/zeros.py +192 -0
  830. maxframe/tensor/extensions/__init__.py +33 -0
  831. maxframe/tensor/extensions/accessor.py +25 -0
  832. maxframe/tensor/extensions/apply_chunk.py +137 -0
  833. maxframe/tensor/extensions/rebalance.py +65 -0
  834. maxframe/tensor/fetch/__init__.py +15 -0
  835. maxframe/tensor/fetch/core.py +54 -0
  836. maxframe/tensor/fft/__init__.py +32 -0
  837. maxframe/tensor/fft/core.py +168 -0
  838. maxframe/tensor/fft/fft.py +112 -0
  839. maxframe/tensor/fft/fft2.py +118 -0
  840. maxframe/tensor/fft/fftfreq.py +80 -0
  841. maxframe/tensor/fft/fftn.py +123 -0
  842. maxframe/tensor/fft/fftshift.py +79 -0
  843. maxframe/tensor/fft/hfft.py +112 -0
  844. maxframe/tensor/fft/ifft.py +114 -0
  845. maxframe/tensor/fft/ifft2.py +115 -0
  846. maxframe/tensor/fft/ifftn.py +123 -0
  847. maxframe/tensor/fft/ifftshift.py +73 -0
  848. maxframe/tensor/fft/ihfft.py +93 -0
  849. maxframe/tensor/fft/irfft.py +118 -0
  850. maxframe/tensor/fft/irfft2.py +62 -0
  851. maxframe/tensor/fft/irfftn.py +114 -0
  852. maxframe/tensor/fft/rfft.py +116 -0
  853. maxframe/tensor/fft/rfft2.py +63 -0
  854. maxframe/tensor/fft/rfftfreq.py +87 -0
  855. maxframe/tensor/fft/rfftn.py +113 -0
  856. maxframe/tensor/indexing/__init__.py +47 -0
  857. maxframe/tensor/indexing/choose.py +198 -0
  858. maxframe/tensor/indexing/compress.py +122 -0
  859. maxframe/tensor/indexing/core.py +190 -0
  860. maxframe/tensor/indexing/extract.py +69 -0
  861. maxframe/tensor/indexing/fill_diagonal.py +180 -0
  862. maxframe/tensor/indexing/flatnonzero.py +58 -0
  863. maxframe/tensor/indexing/getitem.py +144 -0
  864. maxframe/tensor/indexing/nonzero.py +118 -0
  865. maxframe/tensor/indexing/setitem.py +142 -0
  866. maxframe/tensor/indexing/slice.py +32 -0
  867. maxframe/tensor/indexing/take.py +128 -0
  868. maxframe/tensor/indexing/tests/__init__.py +13 -0
  869. maxframe/tensor/indexing/tests/test_indexing.py +232 -0
  870. maxframe/tensor/indexing/unravel_index.py +103 -0
  871. maxframe/tensor/lib/__init__.py +16 -0
  872. maxframe/tensor/lib/index_tricks.py +404 -0
  873. maxframe/tensor/linalg/__init__.py +43 -0
  874. maxframe/tensor/linalg/_einsumfunc.py +1025 -0
  875. maxframe/tensor/linalg/cholesky.py +117 -0
  876. maxframe/tensor/linalg/dot.py +145 -0
  877. maxframe/tensor/linalg/einsum.py +339 -0
  878. maxframe/tensor/linalg/inner.py +36 -0
  879. maxframe/tensor/linalg/inv.py +83 -0
  880. maxframe/tensor/linalg/lstsq.py +100 -0
  881. maxframe/tensor/linalg/lu.py +115 -0
  882. maxframe/tensor/linalg/matmul.py +225 -0
  883. maxframe/tensor/linalg/matrix_norm.py +75 -0
  884. maxframe/tensor/linalg/norm.py +249 -0
  885. maxframe/tensor/linalg/qr.py +124 -0
  886. maxframe/tensor/linalg/solve.py +72 -0
  887. maxframe/tensor/linalg/solve_triangular.py +103 -0
  888. maxframe/tensor/linalg/svd.py +167 -0
  889. maxframe/tensor/linalg/tensordot.py +213 -0
  890. maxframe/tensor/linalg/vdot.py +73 -0
  891. maxframe/tensor/linalg/vector_norm.py +113 -0
  892. maxframe/tensor/merge/__init__.py +21 -0
  893. maxframe/tensor/merge/append.py +74 -0
  894. maxframe/tensor/merge/column_stack.py +63 -0
  895. maxframe/tensor/merge/concatenate.py +103 -0
  896. maxframe/tensor/merge/dstack.py +71 -0
  897. maxframe/tensor/merge/hstack.py +70 -0
  898. maxframe/tensor/merge/stack.py +130 -0
  899. maxframe/tensor/merge/tests/__init__.py +13 -0
  900. maxframe/tensor/merge/tests/test_merge.py +79 -0
  901. maxframe/tensor/merge/vstack.py +74 -0
  902. maxframe/tensor/misc/__init__.py +72 -0
  903. maxframe/tensor/misc/argwhere.py +72 -0
  904. maxframe/tensor/misc/array_split.py +46 -0
  905. maxframe/tensor/misc/astype.py +121 -0
  906. maxframe/tensor/misc/atleast_1d.py +72 -0
  907. maxframe/tensor/misc/atleast_2d.py +70 -0
  908. maxframe/tensor/misc/atleast_3d.py +85 -0
  909. maxframe/tensor/misc/broadcast_arrays.py +57 -0
  910. maxframe/tensor/misc/broadcast_to.py +89 -0
  911. maxframe/tensor/misc/copy.py +64 -0
  912. maxframe/tensor/misc/copyto.py +130 -0
  913. maxframe/tensor/misc/delete.py +104 -0
  914. maxframe/tensor/misc/diff.py +115 -0
  915. maxframe/tensor/misc/dsplit.py +68 -0
  916. maxframe/tensor/misc/ediff1d.py +74 -0
  917. maxframe/tensor/misc/expand_dims.py +85 -0
  918. maxframe/tensor/misc/flatten.py +63 -0
  919. maxframe/tensor/misc/flip.py +90 -0
  920. maxframe/tensor/misc/fliplr.py +64 -0
  921. maxframe/tensor/misc/flipud.py +68 -0
  922. maxframe/tensor/misc/hsplit.py +85 -0
  923. maxframe/tensor/misc/in1d.py +94 -0
  924. maxframe/tensor/misc/insert.py +139 -0
  925. maxframe/tensor/misc/isin.py +130 -0
  926. maxframe/tensor/misc/moveaxis.py +83 -0
  927. maxframe/tensor/misc/ndim.py +53 -0
  928. maxframe/tensor/misc/ravel.py +90 -0
  929. maxframe/tensor/misc/repeat.py +129 -0
  930. maxframe/tensor/misc/result_type.py +88 -0
  931. maxframe/tensor/misc/roll.py +124 -0
  932. maxframe/tensor/misc/rollaxis.py +77 -0
  933. maxframe/tensor/misc/searchsorted.py +147 -0
  934. maxframe/tensor/misc/setdiff1d.py +58 -0
  935. maxframe/tensor/misc/shape.py +89 -0
  936. maxframe/tensor/misc/split.py +190 -0
  937. maxframe/tensor/misc/squeeze.py +117 -0
  938. maxframe/tensor/misc/swapaxes.py +113 -0
  939. maxframe/tensor/misc/tests/__init__.py +13 -0
  940. maxframe/tensor/misc/tests/test_misc.py +112 -0
  941. maxframe/tensor/misc/tile.py +109 -0
  942. maxframe/tensor/misc/transpose.py +133 -0
  943. maxframe/tensor/misc/trapezoid.py +123 -0
  944. maxframe/tensor/misc/unique.py +205 -0
  945. maxframe/tensor/misc/vsplit.py +74 -0
  946. maxframe/tensor/misc/where.py +129 -0
  947. maxframe/tensor/operators.py +83 -0
  948. maxframe/tensor/random/__init__.py +166 -0
  949. maxframe/tensor/random/beta.py +87 -0
  950. maxframe/tensor/random/binomial.py +135 -0
  951. maxframe/tensor/random/bytes.py +37 -0
  952. maxframe/tensor/random/chisquare.py +108 -0
  953. maxframe/tensor/random/choice.py +187 -0
  954. maxframe/tensor/random/core.py +249 -0
  955. maxframe/tensor/random/dirichlet.py +121 -0
  956. maxframe/tensor/random/exponential.py +92 -0
  957. maxframe/tensor/random/f.py +133 -0
  958. maxframe/tensor/random/gamma.py +126 -0
  959. maxframe/tensor/random/geometric.py +91 -0
  960. maxframe/tensor/random/gumbel.py +165 -0
  961. maxframe/tensor/random/hypergeometric.py +146 -0
  962. maxframe/tensor/random/laplace.py +131 -0
  963. maxframe/tensor/random/logistic.py +127 -0
  964. maxframe/tensor/random/lognormal.py +157 -0
  965. maxframe/tensor/random/logseries.py +120 -0
  966. maxframe/tensor/random/multinomial.py +131 -0
  967. maxframe/tensor/random/multivariate_normal.py +190 -0
  968. maxframe/tensor/random/negative_binomial.py +123 -0
  969. maxframe/tensor/random/noncentral_chisquare.py +130 -0
  970. maxframe/tensor/random/noncentral_f.py +124 -0
  971. maxframe/tensor/random/normal.py +141 -0
  972. maxframe/tensor/random/pareto.py +138 -0
  973. maxframe/tensor/random/permutation.py +107 -0
  974. maxframe/tensor/random/poisson.py +109 -0
  975. maxframe/tensor/random/power.py +140 -0
  976. maxframe/tensor/random/rand.py +80 -0
  977. maxframe/tensor/random/randint.py +119 -0
  978. maxframe/tensor/random/randn.py +94 -0
  979. maxframe/tensor/random/random_integers.py +121 -0
  980. maxframe/tensor/random/random_sample.py +84 -0
  981. maxframe/tensor/random/rayleigh.py +108 -0
  982. maxframe/tensor/random/shuffle.py +61 -0
  983. maxframe/tensor/random/standard_cauchy.py +103 -0
  984. maxframe/tensor/random/standard_exponential.py +70 -0
  985. maxframe/tensor/random/standard_gamma.py +118 -0
  986. maxframe/tensor/random/standard_normal.py +72 -0
  987. maxframe/tensor/random/standard_t.py +133 -0
  988. maxframe/tensor/random/tests/__init__.py +13 -0
  989. maxframe/tensor/random/tests/test_random.py +165 -0
  990. maxframe/tensor/random/triangular.py +117 -0
  991. maxframe/tensor/random/uniform.py +129 -0
  992. maxframe/tensor/random/vonmises.py +129 -0
  993. maxframe/tensor/random/wald.py +112 -0
  994. maxframe/tensor/random/weibull.py +138 -0
  995. maxframe/tensor/random/zipf.py +120 -0
  996. maxframe/tensor/rechunk/__init__.py +26 -0
  997. maxframe/tensor/rechunk/rechunk.py +43 -0
  998. maxframe/tensor/reduction/__init__.py +64 -0
  999. maxframe/tensor/reduction/all.py +101 -0
  1000. maxframe/tensor/reduction/allclose.py +86 -0
  1001. maxframe/tensor/reduction/any.py +103 -0
  1002. maxframe/tensor/reduction/argmax.py +101 -0
  1003. maxframe/tensor/reduction/argmin.py +101 -0
  1004. maxframe/tensor/reduction/array_equal.py +63 -0
  1005. maxframe/tensor/reduction/core.py +166 -0
  1006. maxframe/tensor/reduction/count_nonzero.py +80 -0
  1007. maxframe/tensor/reduction/cumprod.py +95 -0
  1008. maxframe/tensor/reduction/cumsum.py +99 -0
  1009. maxframe/tensor/reduction/max.py +118 -0
  1010. maxframe/tensor/reduction/mean.py +122 -0
  1011. maxframe/tensor/reduction/min.py +118 -0
  1012. maxframe/tensor/reduction/nanargmax.py +80 -0
  1013. maxframe/tensor/reduction/nanargmin.py +74 -0
  1014. maxframe/tensor/reduction/nancumprod.py +89 -0
  1015. maxframe/tensor/reduction/nancumsum.py +92 -0
  1016. maxframe/tensor/reduction/nanmax.py +109 -0
  1017. maxframe/tensor/reduction/nanmean.py +105 -0
  1018. maxframe/tensor/reduction/nanmin.py +109 -0
  1019. maxframe/tensor/reduction/nanprod.py +92 -0
  1020. maxframe/tensor/reduction/nanstd.py +124 -0
  1021. maxframe/tensor/reduction/nansum.py +113 -0
  1022. maxframe/tensor/reduction/nanvar.py +149 -0
  1023. maxframe/tensor/reduction/prod.py +128 -0
  1024. maxframe/tensor/reduction/std.py +132 -0
  1025. maxframe/tensor/reduction/sum.py +123 -0
  1026. maxframe/tensor/reduction/tests/__init__.py +13 -0
  1027. maxframe/tensor/reduction/tests/test_reduction.py +189 -0
  1028. maxframe/tensor/reduction/var.py +176 -0
  1029. maxframe/tensor/reshape/__init__.py +15 -0
  1030. maxframe/tensor/reshape/reshape.py +192 -0
  1031. maxframe/tensor/reshape/tests/__init__.py +13 -0
  1032. maxframe/tensor/reshape/tests/test_reshape.py +35 -0
  1033. maxframe/tensor/sort/__init__.py +18 -0
  1034. maxframe/tensor/sort/argpartition.py +98 -0
  1035. maxframe/tensor/sort/argsort.py +150 -0
  1036. maxframe/tensor/sort/partition.py +228 -0
  1037. maxframe/tensor/sort/sort.py +295 -0
  1038. maxframe/tensor/spatial/__init__.py +15 -0
  1039. maxframe/tensor/spatial/distance/__init__.py +17 -0
  1040. maxframe/tensor/spatial/distance/cdist.py +421 -0
  1041. maxframe/tensor/spatial/distance/pdist.py +398 -0
  1042. maxframe/tensor/spatial/distance/squareform.py +153 -0
  1043. maxframe/tensor/special/__init__.py +175 -0
  1044. maxframe/tensor/special/airy.py +55 -0
  1045. maxframe/tensor/special/bessel.py +199 -0
  1046. maxframe/tensor/special/core.py +99 -0
  1047. maxframe/tensor/special/ellip_func_integrals.py +155 -0
  1048. maxframe/tensor/special/ellip_harm.py +55 -0
  1049. maxframe/tensor/special/err_fresnel.py +223 -0
  1050. maxframe/tensor/special/gamma_funcs.py +303 -0
  1051. maxframe/tensor/special/hypergeometric_funcs.py +69 -0
  1052. maxframe/tensor/special/info_theory.py +189 -0
  1053. maxframe/tensor/special/misc.py +163 -0
  1054. maxframe/tensor/special/statistical.py +56 -0
  1055. maxframe/tensor/statistics/__init__.py +24 -0
  1056. maxframe/tensor/statistics/average.py +143 -0
  1057. maxframe/tensor/statistics/bincount.py +133 -0
  1058. maxframe/tensor/statistics/corrcoef.py +77 -0
  1059. maxframe/tensor/statistics/cov.py +222 -0
  1060. maxframe/tensor/statistics/digitize.py +126 -0
  1061. maxframe/tensor/statistics/histogram.py +520 -0
  1062. maxframe/tensor/statistics/median.py +85 -0
  1063. maxframe/tensor/statistics/percentile.py +175 -0
  1064. maxframe/tensor/statistics/ptp.py +89 -0
  1065. maxframe/tensor/statistics/quantile.py +290 -0
  1066. maxframe/tensor/ufunc/__init__.py +24 -0
  1067. maxframe/tensor/ufunc/ufunc.py +198 -0
  1068. maxframe/tensor/utils.py +716 -0
  1069. maxframe/tests/__init__.py +13 -0
  1070. maxframe/tests/test_protocol.py +178 -0
  1071. maxframe/tests/test_utils.py +615 -0
  1072. maxframe/tests/utils.py +245 -0
  1073. maxframe/typing_.py +42 -0
  1074. maxframe/udf.py +260 -0
  1075. maxframe/utils.py +1721 -0
  1076. maxframe-2.2.0.dist-info/METADATA +110 -0
  1077. maxframe-2.2.0.dist-info/RECORD +1094 -0
  1078. maxframe-2.2.0.dist-info/WHEEL +5 -0
  1079. maxframe-2.2.0.dist-info/top_level.txt +3 -0
  1080. maxframe_client/__init__.py +16 -0
  1081. maxframe_client/clients/__init__.py +13 -0
  1082. maxframe_client/clients/framedriver.py +137 -0
  1083. maxframe_client/conftest.py +15 -0
  1084. maxframe_client/fetcher.py +411 -0
  1085. maxframe_client/session/__init__.py +22 -0
  1086. maxframe_client/session/consts.py +39 -0
  1087. maxframe_client/session/graph.py +125 -0
  1088. maxframe_client/session/odps.py +802 -0
  1089. maxframe_client/session/task.py +322 -0
  1090. maxframe_client/session/tests/__init__.py +13 -0
  1091. maxframe_client/session/tests/test_task.py +115 -0
  1092. maxframe_client/tests/__init__.py +13 -0
  1093. maxframe_client/tests/test_fetcher.py +180 -0
  1094. maxframe_client/tests/test_session.py +385 -0
@@ -0,0 +1,19 @@
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from ..operators import DataFrameOperator, DataFrameOperatorMixin
16
+
17
+
18
+ class DataFrameDataStore(DataFrameOperator, DataFrameOperatorMixin):
19
+ pass
@@ -0,0 +1,13 @@
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
@@ -0,0 +1,99 @@
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ import pandas as pd
16
+ import pytest
17
+
18
+ from ... import DataFrame, Index
19
+ from ..to_odps import to_odps_table
20
+
21
+
22
+ @pytest.fixture
23
+ def df():
24
+ return DataFrame({"A": [1, 2], "B": [3, 4]})
25
+
26
+
27
+ @pytest.fixture
28
+ def df_with_named_index():
29
+ return DataFrame({"A": [1, 2], "B": [3, 4]}, index=Index([1, 2], name="A"))
30
+
31
+
32
+ @pytest.fixture
33
+ def df_with_named_multi_indexes():
34
+ arrays = [
35
+ ["c1", "c2"],
36
+ ["d1", "d2"],
37
+ ["e1", "e2"],
38
+ ]
39
+ multi_index = pd.MultiIndex.from_arrays(arrays, names=("C", "D", "E"))
40
+ return DataFrame(
41
+ {"A": [1, 2], "B": [3, 4]},
42
+ index=multi_index,
43
+ )
44
+
45
+
46
+ @pytest.mark.parametrize(
47
+ "kwargs",
48
+ [
49
+ {"partition_col": ["A", "C"]},
50
+ {"partition_col": "C"},
51
+ {"partition": "a=1,C=2"},
52
+ ],
53
+ )
54
+ def test_to_odps_table_validation(df, kwargs):
55
+ with pytest.raises(ValueError):
56
+ to_odps_table(df, "test_table", **kwargs)
57
+
58
+
59
+ @pytest.mark.parametrize(
60
+ "kwargs",
61
+ [
62
+ {"partition_col": ["a", "B"]},
63
+ {"partition_col": "a"},
64
+ {"partition": "C=1,d=2"},
65
+ ],
66
+ )
67
+ def test_to_odps_table_vaild(df, kwargs):
68
+ to_odps_table(df, "test_table", **kwargs)
69
+
70
+
71
+ def test_to_odps_table_column_conflicts(
72
+ df, df_with_named_index, df_with_named_multi_indexes
73
+ ):
74
+ to_odps_table(df.reset_index(), "test_table", index=False)
75
+ to_odps_table(df.reset_index(), "test_table", index_label="C")
76
+ with pytest.raises(ValueError):
77
+ to_odps_table(df.reset_index(), "test_table")
78
+
79
+ to_odps_table(df_with_named_index, "test_table", index=False)
80
+ to_odps_table(df_with_named_index, "test_table", index_label="C")
81
+ with pytest.raises(ValueError):
82
+ to_odps_table(df_with_named_index, "test_table")
83
+
84
+ to_odps_table(df, "test_table", partition="C='1'")
85
+ with pytest.raises(ValueError):
86
+ to_odps_table(df, "test_table", partition="A='1'")
87
+
88
+ with pytest.raises(ValueError):
89
+ to_odps_table(df, "test_table", partition="A='1'")
90
+
91
+ to_odps_table(df_with_named_multi_indexes, "test_table")
92
+ to_odps_table(
93
+ df_with_named_multi_indexes, "test_table", partition="C='1'", index=False
94
+ )
95
+ with pytest.raises(ValueError):
96
+ to_odps_table(df_with_named_multi_indexes, "test_table", partition="C='1'")
97
+
98
+ df_with_named_multi_indexes.index.names = ["C1", "D1", "E1"]
99
+ to_odps_table(df_with_named_multi_indexes, "test_table", partition="C='1'")
@@ -0,0 +1,219 @@
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from ... import opcodes
16
+ from ...serialization.serializables import (
17
+ AnyField,
18
+ BoolField,
19
+ DictField,
20
+ Int32Field,
21
+ Int64Field,
22
+ ListField,
23
+ StringField,
24
+ )
25
+ from ..utils import parse_index
26
+ from .core import DataFrameDataStore
27
+
28
+
29
+ class DataFrameToCSV(DataFrameDataStore):
30
+ _op_type_ = opcodes.TO_CSV
31
+
32
+ path = AnyField("path", default=None)
33
+ sep = StringField("sep", default=None)
34
+ na_rep = StringField("na_rep", default=None)
35
+ float_format = StringField("float_format", default=None)
36
+ columns = ListField("columns", default=None)
37
+ header = AnyField("header", default=None)
38
+ index = BoolField("index", default=None)
39
+ index_label = AnyField("index_label", default=None)
40
+ mode = StringField("mode", default=None)
41
+ encoding = StringField("encoding", default=None)
42
+ compression = AnyField("compression", default=None)
43
+ quoting = Int32Field("quoting", default=None)
44
+ quotechar = StringField("quotechar", default=None)
45
+ line_terminator = StringField("line_terminator", default=None)
46
+ chunksize = Int64Field("chunksize", default=None)
47
+ date_format = StringField("date_format", default=None)
48
+ doublequote = BoolField("doublequote", default=None)
49
+ escapechar = StringField("escapechar", default=None)
50
+ decimal = StringField("decimal", default=None)
51
+ storage_options = DictField("storage_options", default=None)
52
+
53
+ def __init__(self, output_types=None, **kw):
54
+ super().__init__(_output_types=output_types, **kw)
55
+
56
+ @property
57
+ def one_file(self):
58
+ # if wildcard in path, write csv into multiple files
59
+ return "*" not in self.path
60
+
61
+ def __call__(self, df):
62
+ index_value = parse_index(df.index_value.to_pandas()[:0], df)
63
+ if df.ndim == 2:
64
+ columns_value = parse_index(
65
+ df.columns_value.to_pandas()[:0], store_data=True
66
+ )
67
+ return self.new_dataframe(
68
+ [df],
69
+ shape=(0, 0),
70
+ dtypes=df.dtypes[:0],
71
+ index_value=index_value,
72
+ columns_value=columns_value,
73
+ )
74
+ else:
75
+ return self.new_series(
76
+ [df], shape=(0,), dtype=df.dtype, index_value=index_value
77
+ )
78
+
79
+
80
+ def to_csv(
81
+ df,
82
+ path,
83
+ sep=",",
84
+ na_rep="",
85
+ float_format=None,
86
+ columns=None,
87
+ header=True,
88
+ index=True,
89
+ index_label=None,
90
+ mode="w",
91
+ encoding=None,
92
+ compression="infer",
93
+ quoting=None,
94
+ quotechar='"',
95
+ lineterminator=None,
96
+ chunksize=None,
97
+ date_format=None,
98
+ doublequote=True,
99
+ escapechar=None,
100
+ decimal=".",
101
+ storage_options=None,
102
+ **kw,
103
+ ):
104
+ r"""
105
+ Write object to a comma-separated values (csv) file.
106
+
107
+ Parameters
108
+ ----------
109
+ path : str
110
+ File path.
111
+ If path is a string with wildcard e.g. '/to/path/out-*.csv',
112
+ to_csv will try to write multiple files, for instance,
113
+ chunk (0, 0) will write data into '/to/path/out-0.csv'.
114
+ If path is a string without wildcard,
115
+ all data will be written into a single file.
116
+ sep : str, default ','
117
+ String of length 1. Field delimiter for the output file.
118
+ na_rep : str, default ''
119
+ Missing data representation.
120
+ float_format : str, default None
121
+ Format string for floating point numbers.
122
+ columns : sequence, optional
123
+ Columns to write.
124
+ header : bool or list of str, default True
125
+ Write out the column names. If a list of strings is given it is
126
+ assumed to be aliases for the column names.
127
+ index : bool, default True
128
+ Write row names (index).
129
+ index_label : str or sequence, or False, default None
130
+ Column label for index column(s) if desired. If None is given, and
131
+ `header` and `index` are True, then the index names are used. A
132
+ sequence should be given if the object uses MultiIndex. If
133
+ False do not print fields for index names. Use index_label=False
134
+ for easier importing in R.
135
+ mode : str
136
+ Python write mode, default 'w'.
137
+ encoding : str, optional
138
+ A string representing the encoding to use in the output file,
139
+ defaults to 'utf-8'.
140
+ compression : str or dict, default 'infer'
141
+ If str, represents compression mode. If dict, value at 'method' is
142
+ the compression mode. Compression mode may be any of the following
143
+ possible values: {'infer', 'gzip', 'bz2', 'zip', 'xz', None}. If
144
+ compression mode is 'infer' and `path_or_buf` is path-like, then
145
+ detect compression mode from the following extensions: '.gz',
146
+ '.bz2', '.zip' or '.xz'. (otherwise no compression). If dict given
147
+ and mode is 'zip' or inferred as 'zip', other entries passed as
148
+ additional compression options.
149
+ quoting : optional constant from csv module
150
+ Defaults to csv.QUOTE_MINIMAL. If you have set a `float_format`
151
+ then floats are converted to strings and thus csv.QUOTE_NONNUMERIC
152
+ will treat them as non-numeric.
153
+ quotechar : str, default '\"'
154
+ String of length 1. Character used to quote fields.
155
+ lineterminator : str, optional
156
+ The newline character or character sequence to use in the output
157
+ file. Defaults to `os.linesep`, which depends on the OS in which
158
+ this method is called ('\n' for linux, '\r\n' for Windows, i.e.).
159
+ chunksize : int or None
160
+ Rows to write at a time.
161
+ date_format : str, default None
162
+ Format string for datetime objects.
163
+ doublequote : bool, default True
164
+ Control quoting of `quotechar` inside a field.
165
+ escapechar : str, default None
166
+ String of length 1. Character used to escape `sep` and `quotechar`
167
+ when appropriate.
168
+ decimal : str, default '.'
169
+ Character recognized as decimal separator. E.g. use ',' for
170
+ European data.
171
+ Returns
172
+ -------
173
+ None or str
174
+ If path_or_buf is None, returns the resulting csv format as a
175
+ string. Otherwise returns None.
176
+
177
+ See Also
178
+ --------
179
+ read_csv : Load a CSV file into a DataFrame.
180
+
181
+ Examples
182
+ --------
183
+ >>> import maxframe.dataframe as md
184
+ >>> df = md.DataFrame({'name': ['Raphael', 'Donatello'],
185
+ ... 'mask': ['red', 'purple'],
186
+ ... 'weapon': ['sai', 'bo staff']})
187
+ >>> df.to_csv('out.csv', index=False).execute()
188
+ """
189
+ lineterminator = lineterminator or kw.pop("line_terminator", None)
190
+ if kw:
191
+ raise TypeError(
192
+ f"to_csv() got an unexpected keyword argument '{next(iter(kw))}'"
193
+ )
194
+
195
+ if mode != "w": # pragma: no cover
196
+ raise NotImplementedError("only support to_csv with mode 'w' for now")
197
+ op = DataFrameToCSV(
198
+ path=path,
199
+ sep=sep,
200
+ na_rep=na_rep,
201
+ float_format=float_format,
202
+ columns=columns,
203
+ header=header,
204
+ index=index,
205
+ index_label=index_label,
206
+ mode=mode,
207
+ encoding=encoding,
208
+ compression=compression,
209
+ quoting=quoting,
210
+ quotechar=quotechar,
211
+ line_terminator=lineterminator,
212
+ chunksize=chunksize,
213
+ date_format=date_format,
214
+ doublequote=doublequote,
215
+ escapechar=escapechar,
216
+ decimal=decimal,
217
+ storage_options=storage_options,
218
+ )
219
+ return op(df)
@@ -0,0 +1,258 @@
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ import itertools
16
+ import logging
17
+ from typing import Any, List, Optional, Union
18
+
19
+ from odps import ODPS
20
+ from odps.models import Table as ODPSTable
21
+ from odps.types import PartitionSpec
22
+
23
+ from ... import opcodes
24
+ from ...config import options
25
+ from ...core import OutputType
26
+ from ...io.odpsio import build_dataframe_table_meta
27
+ from ...serialization.serializables import (
28
+ BoolField,
29
+ DictField,
30
+ FieldTypes,
31
+ Int64Field,
32
+ ListField,
33
+ SeriesField,
34
+ StringField,
35
+ )
36
+ from ...typing_ import TileableType
37
+ from ..core import DataFrame # noqa: F401
38
+ from ..utils import parse_index
39
+ from .core import DataFrameDataStore
40
+
41
+ logger = logging.getLogger(__name__)
42
+
43
+
44
+ class DataFrameToODPSTable(DataFrameDataStore):
45
+ _op_type_ = opcodes.TO_ODPS_TABLE
46
+
47
+ dtypes = SeriesField("dtypes")
48
+
49
+ table_name = StringField("table_name", default=None)
50
+ partition_spec = StringField("partition_spec", default=None)
51
+ partition_columns = ListField("partition_columns", FieldTypes.string, default=None)
52
+ overwrite = BoolField("overwrite", default=None)
53
+ write_batch_size = Int64Field("write_batch_size", default=None)
54
+ unknown_as_string = BoolField("unknown_as_string", default=None)
55
+ index = BoolField("index", default=True)
56
+ index_label = ListField("index_label", FieldTypes.string, default=None)
57
+ lifecycle = Int64Field("lifecycle", default=None)
58
+ table_properties = DictField("table_properties", default=None)
59
+ primary_key = ListField("primary_key", FieldTypes.string, default=None)
60
+
61
+ def __init__(self, **kw):
62
+ super().__init__(_output_types=[OutputType.dataframe], **kw)
63
+
64
+ def __call__(self, x):
65
+ shape = (0,) * len(x.shape)
66
+ index_value = parse_index(x.index_value.to_pandas()[:0], x.key, "index")
67
+ columns_value = parse_index(
68
+ x.columns_value.to_pandas()[:0], x.key, "columns", store_data=True
69
+ )
70
+ return self.new_dataframe(
71
+ [x],
72
+ shape=shape,
73
+ dtypes=x.dtypes[:0],
74
+ index_value=index_value,
75
+ columns_value=columns_value,
76
+ )
77
+
78
+ @classmethod
79
+ def get_index_mapping(
80
+ cls,
81
+ index_label: Optional[List[str]],
82
+ raw_index_levels: List[Any],
83
+ ) -> List[Any]:
84
+ def_labels = index_label or itertools.repeat(None)
85
+ def_labels = itertools.chain(def_labels, itertools.repeat(None))
86
+ names = raw_index_levels
87
+ if len(names) == 1:
88
+ default_labels = ["index"]
89
+ else:
90
+ default_labels = [f"level_{i}" for i in range(len(names))]
91
+ indexes = [
92
+ def_label or name or label
93
+ for def_label, name, label in zip(def_labels, names, default_labels)
94
+ ]
95
+ return [x.lower() for x in indexes]
96
+
97
+
98
+ def to_odps_table(
99
+ df: TileableType,
100
+ table: Union[ODPSTable, str],
101
+ partition: Optional[str] = None,
102
+ partition_col: Union[None, str, List[str]] = None,
103
+ overwrite: bool = False,
104
+ unknown_as_string: Optional[bool] = True,
105
+ index: bool = True,
106
+ index_label: Union[None, str, List[str]] = None,
107
+ lifecycle: Optional[int] = None,
108
+ table_properties: Optional[dict] = None,
109
+ primary_key: Union[None, str, List[str]] = None,
110
+ ):
111
+ """
112
+ Write DataFrame object into a MaxCompute (ODPS) table.
113
+
114
+ You need to provide the name of the table to write to. If you want to store
115
+ data into a specific partitioned of a table, argument `partition` can be used.
116
+ You can also use `partition_col` to specify DataFrame columns as partition
117
+ columns, and data in the DataFrame will be grouped by these columns and
118
+ inserted into partitions the values of these columns.
119
+
120
+ If the table does not exist, `to_odps_table` will create one.
121
+
122
+ Column names for indexes is determined by `index_label` argument. If the
123
+ argument is absent, names of the levels is used if they are not None, or
124
+ default names will be used. The default name for indexes with only one level
125
+ will be `index`, and for indexes with multiple levels, the name will be
126
+ `level_x` while x is the index of the level.
127
+
128
+ Parameters
129
+ ----------
130
+ table: str
131
+ Name ot the table to write DataFrame into
132
+ partition: Optional[str]
133
+ Spec of the partition to write to, can be 'pt1=xxx,pt2=yyy'
134
+ partition_col: Union[None, str, List[str]]
135
+ Name of columns in DataFrame as partition columns.
136
+ overwrite: bool
137
+ Overwrite data if the table / partition already exists.
138
+ unknown_as_string: bool
139
+ If True, object type in the DataFrame will be treated as strings.
140
+ Otherwise errors might be raised.
141
+ index: bool
142
+ If True, indexes will be stored. Otherwise they are ignored.
143
+ index_label: Union[None, str, List[str]]
144
+ Specify column names for index levels. If absent, level names or default
145
+ names will be used.
146
+ lifecycle: Optional[int]
147
+ Specify lifecycle of the output table.
148
+ table_properties: Optional[dict]
149
+ Specify properties of the output table.
150
+ primary_key: Union[None, str, List[str]]
151
+ If provided and target table does not exist, target table
152
+ will be a delta table with columns specified in this argument
153
+ as primary key.
154
+
155
+ Returns
156
+ -------
157
+ result: DataFrame
158
+ Stub DataFrame for execution.
159
+
160
+ Notes
161
+ -----
162
+ `to_odps_table` returns a stub object for execution. The result returned is
163
+ not reusable.
164
+
165
+ Examples
166
+ --------
167
+
168
+ """
169
+ odps_entry = ODPS.from_global() or ODPS.from_environments()
170
+ if isinstance(table, ODPSTable):
171
+ table = table.full_table_name
172
+ elif options.session.enable_schema and "." not in table:
173
+ default_schema = (
174
+ options.session.default_schema or odps_entry.schema or "default"
175
+ )
176
+ table = default_schema + "." + table
177
+
178
+ if isinstance(index_label, str):
179
+ index_label = [index_label]
180
+ if isinstance(partition_col, str):
181
+ partition_col = [partition_col]
182
+
183
+ if index_label and len(index_label) != len(df.index.names):
184
+ raise ValueError(
185
+ f"index_label needs {len(df.index.nlevels)} labels "
186
+ f"but it only have {len(index_label)}"
187
+ )
188
+
189
+ # check if table partition columns conflicts with dataframe columns
190
+ table_cols = set(build_dataframe_table_meta(df).table_column_names)
191
+ partition_col_set = (
192
+ set(x.lower() for x in PartitionSpec(partition).keys()) if partition else set()
193
+ )
194
+ if partition:
195
+ partition_intersect = partition_col_set & table_cols
196
+ if partition_intersect:
197
+ raise ValueError(
198
+ f"Data column(s) {partition_intersect} in the dataframe"
199
+ " cannot be used in parameter 'partition'."
200
+ " Use 'partition_col' instead."
201
+ )
202
+
203
+ if index:
204
+ index_cols = set(
205
+ DataFrameToODPSTable.get_index_mapping(index_label, df.index.names)
206
+ )
207
+ index_table_intersect = index_cols & table_cols
208
+ if index_table_intersect:
209
+ raise ValueError(
210
+ f"Index column(s) {index_table_intersect} conflict with "
211
+ f"column(s) of the input dataframe."
212
+ )
213
+ index_partition_intersect = index_cols & partition_col_set
214
+ if index_partition_intersect:
215
+ raise ValueError(
216
+ f"Index column(s) {index_partition_intersect} conflict "
217
+ f"with partition column(s)."
218
+ )
219
+
220
+ if partition_col:
221
+ partition_diff = set(x.lower() for x in partition_col) - table_cols
222
+ if partition_diff:
223
+ raise ValueError(
224
+ f"Partition column(s) {partition_diff}"
225
+ " is not the data column(s) of the input dataframe."
226
+ )
227
+
228
+ table_properties = table_properties or {}
229
+ if primary_key is not None:
230
+ table_properties["transactional"] = "true"
231
+ if odps_entry.exist_table(table):
232
+ table_obj = odps_entry.get_table(table)
233
+ if table_obj.is_transactional:
234
+ table_properties = table_properties or {}
235
+ table_properties["transactional"] = "true"
236
+ primary_key = primary_key or table_obj.primary_key or ()
237
+ if set(primary_key) != set(table_obj.primary_key or ()):
238
+ raise ValueError(
239
+ f"Primary keys between existing table {table} and "
240
+ f"provided arguments are not same."
241
+ )
242
+ if primary_key and not isinstance(primary_key, (list, tuple)):
243
+ primary_key = [primary_key]
244
+
245
+ op = DataFrameToODPSTable(
246
+ dtypes=df.dtypes,
247
+ table_name=table,
248
+ unknown_as_string=unknown_as_string,
249
+ partition_spec=partition,
250
+ partition_columns=partition_col,
251
+ overwrite=overwrite,
252
+ index=index,
253
+ index_label=index_label,
254
+ lifecycle=lifecycle or options.session.table_lifecycle,
255
+ table_properties=table_properties or None,
256
+ primary_key=primary_key or None,
257
+ )
258
+ return op(df)
@@ -0,0 +1,70 @@
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from ...core import CachedAccessor
16
+ from .accessor import (
17
+ DataFrameMaxFrameAccessor,
18
+ IndexMaxFrameAccessor,
19
+ SeriesMaxFrameAccessor,
20
+ )
21
+ from .apply_chunk import (
22
+ DataFrameApplyChunk,
23
+ DataFrameApplyChunkOperator,
24
+ df_apply_chunk,
25
+ series_apply_chunk,
26
+ )
27
+ from .cartesian_chunk import cartesian_chunk
28
+ from .collect_kv import collect_kv
29
+ from .extract_kv import extract_kv
30
+ from .flatjson import series_flatjson
31
+ from .flatmap import df_flatmap, series_flatmap
32
+ from .map_reduce import map_reduce
33
+ from .rebalance import DataFrameRebalance, rebalance
34
+ from .reshuffle import DataFrameReshuffle, df_reshuffle
35
+
36
+
37
+ def _install():
38
+ from ..core import DATAFRAME_TYPE, INDEX_TYPE, SERIES_TYPE
39
+
40
+ DataFrameMaxFrameAccessor._register("apply_chunk", df_apply_chunk)
41
+ DataFrameMaxFrameAccessor._register("cartesian_chunk", cartesian_chunk)
42
+ DataFrameMaxFrameAccessor._register("collect_kv", collect_kv)
43
+ DataFrameMaxFrameAccessor._register("extract_kv", extract_kv)
44
+ DataFrameMaxFrameAccessor._register("flatmap", df_flatmap)
45
+ DataFrameMaxFrameAccessor._register("map_reduce", map_reduce)
46
+ DataFrameMaxFrameAccessor._register("rebalance", rebalance)
47
+ DataFrameMaxFrameAccessor._register("reshuffle", df_reshuffle)
48
+
49
+ SeriesMaxFrameAccessor._register("apply_chunk", series_apply_chunk)
50
+ SeriesMaxFrameAccessor._register("cartesian_chunk", cartesian_chunk)
51
+ SeriesMaxFrameAccessor._register("extract_kv", extract_kv)
52
+ SeriesMaxFrameAccessor._register("flatjson", series_flatjson)
53
+ SeriesMaxFrameAccessor._register("flatmap", series_flatmap)
54
+ SeriesMaxFrameAccessor._register("rebalance", rebalance)
55
+
56
+ IndexMaxFrameAccessor._register("rebalance", rebalance)
57
+
58
+ if DataFrameMaxFrameAccessor._api_count:
59
+ for t in DATAFRAME_TYPE:
60
+ t.mf = CachedAccessor("mf", DataFrameMaxFrameAccessor)
61
+ if SeriesMaxFrameAccessor._api_count:
62
+ for t in SERIES_TYPE:
63
+ t.mf = CachedAccessor("mf", SeriesMaxFrameAccessor)
64
+ if IndexMaxFrameAccessor._api_count:
65
+ for t in INDEX_TYPE:
66
+ t.mf = CachedAccessor("mf", IndexMaxFrameAccessor)
67
+
68
+
69
+ _install()
70
+ del _install