maxframe 2.3.0__cp312-cp312-manylinux_2_17_x86_64.manylinux2014_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.
Files changed (1117) hide show
  1. maxframe/__init__.py +33 -0
  2. maxframe/_utils.cpython-312-x86_64-linux-gnu.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 +597 -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 +110 -0
  24. maxframe/codegen/spe/dataframe/misc.py +264 -0
  25. maxframe/codegen/spe/dataframe/missing.py +64 -0
  26. maxframe/codegen/spe/dataframe/reduction.py +183 -0
  27. maxframe/codegen/spe/dataframe/reshape.py +46 -0
  28. maxframe/codegen/spe/dataframe/sort.py +104 -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 +117 -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 +55 -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 +161 -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 +166 -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 +630 -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 +261 -0
  163. maxframe/core/__init__.py +53 -0
  164. maxframe/core/accessor.py +45 -0
  165. maxframe/core/base.py +157 -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 +369 -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-x86_64-linux-gnu.so +0 -0
  182. maxframe/core/graph/core.pyx +478 -0
  183. maxframe/core/graph/entity.py +164 -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 +101 -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 +373 -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/maximum.py +33 -0
  275. maxframe/dataframe/arithmetic/minimum.py +33 -0
  276. maxframe/dataframe/arithmetic/mod.py +60 -0
  277. maxframe/dataframe/arithmetic/multiply.py +60 -0
  278. maxframe/dataframe/arithmetic/negative.py +33 -0
  279. maxframe/dataframe/arithmetic/not_equal.py +58 -0
  280. maxframe/dataframe/arithmetic/power.py +68 -0
  281. maxframe/dataframe/arithmetic/radians.py +28 -0
  282. maxframe/dataframe/arithmetic/round.py +144 -0
  283. maxframe/dataframe/arithmetic/sin.py +28 -0
  284. maxframe/dataframe/arithmetic/sinh.py +28 -0
  285. maxframe/dataframe/arithmetic/sqrt.py +28 -0
  286. maxframe/dataframe/arithmetic/subtract.py +64 -0
  287. maxframe/dataframe/arithmetic/tan.py +28 -0
  288. maxframe/dataframe/arithmetic/tanh.py +28 -0
  289. maxframe/dataframe/arithmetic/tests/__init__.py +13 -0
  290. maxframe/dataframe/arithmetic/tests/test_arithmetic.py +724 -0
  291. maxframe/dataframe/arithmetic/truediv.py +64 -0
  292. maxframe/dataframe/arithmetic/trunc.py +28 -0
  293. maxframe/dataframe/core.py +2385 -0
  294. maxframe/dataframe/datasource/__init__.py +33 -0
  295. maxframe/dataframe/datasource/core.py +94 -0
  296. maxframe/dataframe/datasource/dataframe.py +59 -0
  297. maxframe/dataframe/datasource/date_range.py +512 -0
  298. maxframe/dataframe/datasource/direct.py +57 -0
  299. maxframe/dataframe/datasource/from_dict.py +124 -0
  300. maxframe/dataframe/datasource/from_index.py +58 -0
  301. maxframe/dataframe/datasource/from_records.py +191 -0
  302. maxframe/dataframe/datasource/from_tensor.py +498 -0
  303. maxframe/dataframe/datasource/index.py +117 -0
  304. maxframe/dataframe/datasource/read_csv.py +541 -0
  305. maxframe/dataframe/datasource/read_odps_query.py +536 -0
  306. maxframe/dataframe/datasource/read_odps_table.py +295 -0
  307. maxframe/dataframe/datasource/read_parquet.py +425 -0
  308. maxframe/dataframe/datasource/series.py +55 -0
  309. maxframe/dataframe/datasource/tests/__init__.py +13 -0
  310. maxframe/dataframe/datasource/tests/test_datasource.py +663 -0
  311. maxframe/dataframe/datastore/__init__.py +36 -0
  312. maxframe/dataframe/datastore/core.py +19 -0
  313. maxframe/dataframe/datastore/direct.py +268 -0
  314. maxframe/dataframe/datastore/tests/__init__.py +13 -0
  315. maxframe/dataframe/datastore/tests/test_to_odps.py +99 -0
  316. maxframe/dataframe/datastore/to_csv.py +219 -0
  317. maxframe/dataframe/datastore/to_odps.py +264 -0
  318. maxframe/dataframe/extensions/__init__.py +70 -0
  319. maxframe/dataframe/extensions/accessor.py +35 -0
  320. maxframe/dataframe/extensions/apply_chunk.py +733 -0
  321. maxframe/dataframe/extensions/cartesian_chunk.py +153 -0
  322. maxframe/dataframe/extensions/collect_kv.py +126 -0
  323. maxframe/dataframe/extensions/extract_kv.py +177 -0
  324. maxframe/dataframe/extensions/flatjson.py +133 -0
  325. maxframe/dataframe/extensions/flatmap.py +329 -0
  326. maxframe/dataframe/extensions/map_reduce.py +263 -0
  327. maxframe/dataframe/extensions/rebalance.py +62 -0
  328. maxframe/dataframe/extensions/reshuffle.py +83 -0
  329. maxframe/dataframe/extensions/tests/__init__.py +13 -0
  330. maxframe/dataframe/extensions/tests/test_apply_chunk.py +194 -0
  331. maxframe/dataframe/extensions/tests/test_extensions.py +198 -0
  332. maxframe/dataframe/extensions/tests/test_map_reduce.py +135 -0
  333. maxframe/dataframe/fetch/__init__.py +15 -0
  334. maxframe/dataframe/fetch/core.py +97 -0
  335. maxframe/dataframe/groupby/__init__.py +105 -0
  336. maxframe/dataframe/groupby/aggregation.py +441 -0
  337. maxframe/dataframe/groupby/apply.py +235 -0
  338. maxframe/dataframe/groupby/apply_chunk.py +407 -0
  339. maxframe/dataframe/groupby/core.py +342 -0
  340. maxframe/dataframe/groupby/cum.py +102 -0
  341. maxframe/dataframe/groupby/expanding.py +264 -0
  342. maxframe/dataframe/groupby/extensions.py +26 -0
  343. maxframe/dataframe/groupby/fill.py +149 -0
  344. maxframe/dataframe/groupby/getitem.py +105 -0
  345. maxframe/dataframe/groupby/head.py +115 -0
  346. maxframe/dataframe/groupby/rank.py +136 -0
  347. maxframe/dataframe/groupby/rolling.py +206 -0
  348. maxframe/dataframe/groupby/sample.py +214 -0
  349. maxframe/dataframe/groupby/shift.py +114 -0
  350. maxframe/dataframe/groupby/tests/__init__.py +13 -0
  351. maxframe/dataframe/groupby/tests/test_groupby.py +373 -0
  352. maxframe/dataframe/groupby/transform.py +264 -0
  353. maxframe/dataframe/indexing/__init__.py +104 -0
  354. maxframe/dataframe/indexing/add_prefix_suffix.py +110 -0
  355. maxframe/dataframe/indexing/align.py +350 -0
  356. maxframe/dataframe/indexing/at.py +83 -0
  357. maxframe/dataframe/indexing/droplevel.py +195 -0
  358. maxframe/dataframe/indexing/filter.py +169 -0
  359. maxframe/dataframe/indexing/get_level_values.py +76 -0
  360. maxframe/dataframe/indexing/getitem.py +205 -0
  361. maxframe/dataframe/indexing/iat.py +82 -0
  362. maxframe/dataframe/indexing/iloc.py +711 -0
  363. maxframe/dataframe/indexing/insert.py +118 -0
  364. maxframe/dataframe/indexing/loc.py +694 -0
  365. maxframe/dataframe/indexing/reindex.py +541 -0
  366. maxframe/dataframe/indexing/rename.py +445 -0
  367. maxframe/dataframe/indexing/rename_axis.py +217 -0
  368. maxframe/dataframe/indexing/reorder_levels.py +143 -0
  369. maxframe/dataframe/indexing/reset_index.py +427 -0
  370. maxframe/dataframe/indexing/sample.py +232 -0
  371. maxframe/dataframe/indexing/set_axis.py +197 -0
  372. maxframe/dataframe/indexing/set_index.py +128 -0
  373. maxframe/dataframe/indexing/setitem.py +133 -0
  374. maxframe/dataframe/indexing/swaplevel.py +185 -0
  375. maxframe/dataframe/indexing/take.py +99 -0
  376. maxframe/dataframe/indexing/tests/__init__.py +13 -0
  377. maxframe/dataframe/indexing/tests/test_indexing.py +488 -0
  378. maxframe/dataframe/indexing/truncate.py +140 -0
  379. maxframe/dataframe/indexing/where.py +300 -0
  380. maxframe/dataframe/indexing/xs.py +148 -0
  381. maxframe/dataframe/initializer.py +298 -0
  382. maxframe/dataframe/merge/__init__.py +53 -0
  383. maxframe/dataframe/merge/append.py +120 -0
  384. maxframe/dataframe/merge/combine.py +244 -0
  385. maxframe/dataframe/merge/combine_first.py +120 -0
  386. maxframe/dataframe/merge/compare.py +387 -0
  387. maxframe/dataframe/merge/concat.py +500 -0
  388. maxframe/dataframe/merge/merge.py +806 -0
  389. maxframe/dataframe/merge/tests/__init__.py +13 -0
  390. maxframe/dataframe/merge/tests/test_merge.py +390 -0
  391. maxframe/dataframe/merge/update.py +271 -0
  392. maxframe/dataframe/misc/__init__.py +142 -0
  393. maxframe/dataframe/misc/_duplicate.py +56 -0
  394. maxframe/dataframe/misc/apply.py +730 -0
  395. maxframe/dataframe/misc/astype.py +237 -0
  396. maxframe/dataframe/misc/case_when.py +145 -0
  397. maxframe/dataframe/misc/check_monotonic.py +84 -0
  398. maxframe/dataframe/misc/check_unique.py +82 -0
  399. maxframe/dataframe/misc/clip.py +145 -0
  400. maxframe/dataframe/misc/cut.py +386 -0
  401. maxframe/dataframe/misc/describe.py +278 -0
  402. maxframe/dataframe/misc/diff.py +210 -0
  403. maxframe/dataframe/misc/drop.py +473 -0
  404. maxframe/dataframe/misc/drop_duplicates.py +251 -0
  405. maxframe/dataframe/misc/duplicated.py +292 -0
  406. maxframe/dataframe/misc/eval.py +730 -0
  407. maxframe/dataframe/misc/explode.py +171 -0
  408. maxframe/dataframe/misc/get_dummies.py +241 -0
  409. maxframe/dataframe/misc/infer_dtypes.py +251 -0
  410. maxframe/dataframe/misc/isin.py +220 -0
  411. maxframe/dataframe/misc/map.py +360 -0
  412. maxframe/dataframe/misc/memory_usage.py +248 -0
  413. maxframe/dataframe/misc/pct_change.py +68 -0
  414. maxframe/dataframe/misc/qcut.py +104 -0
  415. maxframe/dataframe/misc/rechunk.py +59 -0
  416. maxframe/dataframe/misc/repeat.py +159 -0
  417. maxframe/dataframe/misc/select_dtypes.py +104 -0
  418. maxframe/dataframe/misc/shift.py +259 -0
  419. maxframe/dataframe/misc/tests/__init__.py +13 -0
  420. maxframe/dataframe/misc/tests/test_misc.py +649 -0
  421. maxframe/dataframe/misc/to_numeric.py +181 -0
  422. maxframe/dataframe/misc/transform.py +346 -0
  423. maxframe/dataframe/misc/transpose.py +148 -0
  424. maxframe/dataframe/misc/valid_index.py +115 -0
  425. maxframe/dataframe/misc/value_counts.py +206 -0
  426. maxframe/dataframe/missing/__init__.py +53 -0
  427. maxframe/dataframe/missing/checkna.py +231 -0
  428. maxframe/dataframe/missing/dropna.py +294 -0
  429. maxframe/dataframe/missing/fillna.py +283 -0
  430. maxframe/dataframe/missing/replace.py +446 -0
  431. maxframe/dataframe/missing/tests/__init__.py +13 -0
  432. maxframe/dataframe/missing/tests/test_missing.py +90 -0
  433. maxframe/dataframe/operators.py +231 -0
  434. maxframe/dataframe/reduction/__init__.py +129 -0
  435. maxframe/dataframe/reduction/aggregation.py +499 -0
  436. maxframe/dataframe/reduction/all.py +78 -0
  437. maxframe/dataframe/reduction/any.py +78 -0
  438. maxframe/dataframe/reduction/argmax.py +103 -0
  439. maxframe/dataframe/reduction/argmin.py +103 -0
  440. maxframe/dataframe/reduction/core.py +907 -0
  441. maxframe/dataframe/reduction/count.py +63 -0
  442. maxframe/dataframe/reduction/cov.py +166 -0
  443. maxframe/dataframe/reduction/cummax.py +30 -0
  444. maxframe/dataframe/reduction/cummin.py +30 -0
  445. maxframe/dataframe/reduction/cumprod.py +30 -0
  446. maxframe/dataframe/reduction/cumsum.py +30 -0
  447. maxframe/dataframe/reduction/custom_reduction.py +42 -0
  448. maxframe/dataframe/reduction/idxmax.py +185 -0
  449. maxframe/dataframe/reduction/idxmin.py +185 -0
  450. maxframe/dataframe/reduction/kurtosis.py +111 -0
  451. maxframe/dataframe/reduction/max.py +65 -0
  452. maxframe/dataframe/reduction/mean.py +63 -0
  453. maxframe/dataframe/reduction/median.py +56 -0
  454. maxframe/dataframe/reduction/min.py +65 -0
  455. maxframe/dataframe/reduction/mode.py +144 -0
  456. maxframe/dataframe/reduction/nunique.py +149 -0
  457. maxframe/dataframe/reduction/prod.py +81 -0
  458. maxframe/dataframe/reduction/reduction_size.py +36 -0
  459. maxframe/dataframe/reduction/sem.py +73 -0
  460. maxframe/dataframe/reduction/skew.py +93 -0
  461. maxframe/dataframe/reduction/std.py +53 -0
  462. maxframe/dataframe/reduction/str_concat.py +51 -0
  463. maxframe/dataframe/reduction/sum.py +81 -0
  464. maxframe/dataframe/reduction/tests/__init__.py +13 -0
  465. maxframe/dataframe/reduction/tests/test_reduction.py +541 -0
  466. maxframe/dataframe/reduction/unique.py +153 -0
  467. maxframe/dataframe/reduction/var.py +76 -0
  468. maxframe/dataframe/reshape/__init__.py +38 -0
  469. maxframe/dataframe/reshape/melt.py +169 -0
  470. maxframe/dataframe/reshape/pivot.py +233 -0
  471. maxframe/dataframe/reshape/pivot_table.py +275 -0
  472. maxframe/dataframe/reshape/stack.py +240 -0
  473. maxframe/dataframe/reshape/unstack.py +114 -0
  474. maxframe/dataframe/sort/__init__.py +49 -0
  475. maxframe/dataframe/sort/argsort.py +68 -0
  476. maxframe/dataframe/sort/core.py +37 -0
  477. maxframe/dataframe/sort/nlargest.py +238 -0
  478. maxframe/dataframe/sort/nsmallest.py +228 -0
  479. maxframe/dataframe/sort/rank.py +147 -0
  480. maxframe/dataframe/sort/sort_index.py +153 -0
  481. maxframe/dataframe/sort/sort_values.py +301 -0
  482. maxframe/dataframe/sort/tests/__init__.py +13 -0
  483. maxframe/dataframe/sort/tests/test_sort.py +81 -0
  484. maxframe/dataframe/statistics/__init__.py +33 -0
  485. maxframe/dataframe/statistics/corr.py +284 -0
  486. maxframe/dataframe/statistics/quantile.py +338 -0
  487. maxframe/dataframe/statistics/tests/__init__.py +13 -0
  488. maxframe/dataframe/statistics/tests/test_statistics.py +82 -0
  489. maxframe/dataframe/tests/__init__.py +13 -0
  490. maxframe/dataframe/tests/test_initializer.py +60 -0
  491. maxframe/dataframe/tests/test_typing.py +119 -0
  492. maxframe/dataframe/tests/test_utils.py +165 -0
  493. maxframe/dataframe/tseries/__init__.py +32 -0
  494. maxframe/dataframe/tseries/at_time.py +61 -0
  495. maxframe/dataframe/tseries/between_time.py +122 -0
  496. maxframe/dataframe/tseries/tests/__init__.py +13 -0
  497. maxframe/dataframe/tseries/tests/test_tseries.py +30 -0
  498. maxframe/dataframe/tseries/to_datetime.py +299 -0
  499. maxframe/dataframe/typing_.py +196 -0
  500. maxframe/dataframe/ufunc/__init__.py +27 -0
  501. maxframe/dataframe/ufunc/tensor.py +54 -0
  502. maxframe/dataframe/ufunc/ufunc.py +53 -0
  503. maxframe/dataframe/utils.py +1651 -0
  504. maxframe/dataframe/window/__init__.py +29 -0
  505. maxframe/dataframe/window/aggregation.py +100 -0
  506. maxframe/dataframe/window/core.py +82 -0
  507. maxframe/dataframe/window/ewm.py +247 -0
  508. maxframe/dataframe/window/expanding.py +151 -0
  509. maxframe/dataframe/window/rolling.py +389 -0
  510. maxframe/dataframe/window/tests/__init__.py +13 -0
  511. maxframe/dataframe/window/tests/test_ewm.py +70 -0
  512. maxframe/dataframe/window/tests/test_expanding.py +60 -0
  513. maxframe/dataframe/window/tests/test_rolling.py +57 -0
  514. maxframe/env.py +37 -0
  515. maxframe/errors.py +47 -0
  516. maxframe/extension.py +107 -0
  517. maxframe/io/__init__.py +13 -0
  518. maxframe/io/objects/__init__.py +24 -0
  519. maxframe/io/objects/core.py +156 -0
  520. maxframe/io/objects/tensor.py +132 -0
  521. maxframe/io/objects/tests/__init__.py +13 -0
  522. maxframe/io/objects/tests/test_object_io.py +79 -0
  523. maxframe/io/odpsio/__init__.py +23 -0
  524. maxframe/io/odpsio/arrow.py +161 -0
  525. maxframe/io/odpsio/schema.py +496 -0
  526. maxframe/io/odpsio/tableio.py +727 -0
  527. maxframe/io/odpsio/tests/__init__.py +13 -0
  528. maxframe/io/odpsio/tests/test_arrow.py +132 -0
  529. maxframe/io/odpsio/tests/test_schema.py +580 -0
  530. maxframe/io/odpsio/tests/test_tableio.py +205 -0
  531. maxframe/io/odpsio/tests/test_volumeio.py +75 -0
  532. maxframe/io/odpsio/volumeio.py +102 -0
  533. maxframe/learn/__init__.py +25 -0
  534. maxframe/learn/cluster/__init__.py +15 -0
  535. maxframe/learn/cluster/_kmeans.py +782 -0
  536. maxframe/learn/contrib/__init__.py +17 -0
  537. maxframe/learn/contrib/graph/__init__.py +15 -0
  538. maxframe/learn/contrib/graph/connected_components.py +216 -0
  539. maxframe/learn/contrib/graph/tests/__init__.py +13 -0
  540. maxframe/learn/contrib/graph/tests/test_connected_components.py +53 -0
  541. maxframe/learn/contrib/lightgbm/__init__.py +33 -0
  542. maxframe/learn/contrib/lightgbm/_predict.py +138 -0
  543. maxframe/learn/contrib/lightgbm/_train.py +163 -0
  544. maxframe/learn/contrib/lightgbm/callback.py +114 -0
  545. maxframe/learn/contrib/lightgbm/classifier.py +199 -0
  546. maxframe/learn/contrib/lightgbm/core.py +372 -0
  547. maxframe/learn/contrib/lightgbm/dataset.py +153 -0
  548. maxframe/learn/contrib/lightgbm/regressor.py +29 -0
  549. maxframe/learn/contrib/lightgbm/tests/__init__.py +13 -0
  550. maxframe/learn/contrib/lightgbm/tests/test_callback.py +58 -0
  551. maxframe/learn/contrib/llm/__init__.py +17 -0
  552. maxframe/learn/contrib/llm/core.py +86 -0
  553. maxframe/learn/contrib/llm/deploy/__init__.py +13 -0
  554. maxframe/learn/contrib/llm/deploy/config.py +221 -0
  555. maxframe/learn/contrib/llm/deploy/core.py +247 -0
  556. maxframe/learn/contrib/llm/deploy/framework.py +35 -0
  557. maxframe/learn/contrib/llm/deploy/loader.py +360 -0
  558. maxframe/learn/contrib/llm/deploy/tests/__init__.py +13 -0
  559. maxframe/learn/contrib/llm/deploy/tests/test_register_models.py +359 -0
  560. maxframe/learn/contrib/llm/models/__init__.py +16 -0
  561. maxframe/learn/contrib/llm/models/dashscope.py +114 -0
  562. maxframe/learn/contrib/llm/models/managed.py +119 -0
  563. maxframe/learn/contrib/llm/models/openai.py +72 -0
  564. maxframe/learn/contrib/llm/multi_modal.py +135 -0
  565. maxframe/learn/contrib/llm/tests/__init__.py +13 -0
  566. maxframe/learn/contrib/llm/tests/test_core.py +34 -0
  567. maxframe/learn/contrib/llm/tests/test_openai.py +187 -0
  568. maxframe/learn/contrib/llm/tests/test_text_gen.py +155 -0
  569. maxframe/learn/contrib/llm/text.py +608 -0
  570. maxframe/learn/contrib/models.py +109 -0
  571. maxframe/learn/contrib/pytorch/__init__.py +16 -0
  572. maxframe/learn/contrib/pytorch/run_function.py +110 -0
  573. maxframe/learn/contrib/pytorch/run_script.py +102 -0
  574. maxframe/learn/contrib/pytorch/tests/__init__.py +13 -0
  575. maxframe/learn/contrib/pytorch/tests/test_pytorch.py +42 -0
  576. maxframe/learn/contrib/utils.py +108 -0
  577. maxframe/learn/contrib/xgboost/__init__.py +33 -0
  578. maxframe/learn/contrib/xgboost/callback.py +86 -0
  579. maxframe/learn/contrib/xgboost/classifier.py +119 -0
  580. maxframe/learn/contrib/xgboost/core.py +469 -0
  581. maxframe/learn/contrib/xgboost/dmatrix.py +157 -0
  582. maxframe/learn/contrib/xgboost/predict.py +133 -0
  583. maxframe/learn/contrib/xgboost/regressor.py +91 -0
  584. maxframe/learn/contrib/xgboost/tests/__init__.py +13 -0
  585. maxframe/learn/contrib/xgboost/tests/test_callback.py +41 -0
  586. maxframe/learn/contrib/xgboost/tests/test_core.py +43 -0
  587. maxframe/learn/contrib/xgboost/train.py +181 -0
  588. maxframe/learn/core.py +344 -0
  589. maxframe/learn/datasets/__init__.py +20 -0
  590. maxframe/learn/datasets/samples_generator.py +628 -0
  591. maxframe/learn/linear_model/__init__.py +15 -0
  592. maxframe/learn/linear_model/_base.py +220 -0
  593. maxframe/learn/linear_model/_lin_reg.py +175 -0
  594. maxframe/learn/metrics/__init__.py +31 -0
  595. maxframe/learn/metrics/_check_targets.py +95 -0
  596. maxframe/learn/metrics/_classification.py +1266 -0
  597. maxframe/learn/metrics/_ranking.py +477 -0
  598. maxframe/learn/metrics/_regression.py +256 -0
  599. maxframe/learn/metrics/_scorer.py +60 -0
  600. maxframe/learn/metrics/pairwise/__init__.py +21 -0
  601. maxframe/learn/metrics/pairwise/core.py +77 -0
  602. maxframe/learn/metrics/pairwise/cosine.py +115 -0
  603. maxframe/learn/metrics/pairwise/euclidean.py +176 -0
  604. maxframe/learn/metrics/pairwise/haversine.py +96 -0
  605. maxframe/learn/metrics/pairwise/manhattan.py +80 -0
  606. maxframe/learn/metrics/pairwise/pairwise.py +127 -0
  607. maxframe/learn/metrics/pairwise/pairwise_distances_topk.py +121 -0
  608. maxframe/learn/metrics/pairwise/rbf_kernel.py +51 -0
  609. maxframe/learn/metrics/tests/__init__.py +13 -0
  610. maxframe/learn/metrics/tests/test_scorer.py +26 -0
  611. maxframe/learn/model_selection/__init__.py +15 -0
  612. maxframe/learn/model_selection/_split.py +451 -0
  613. maxframe/learn/model_selection/tests/__init__.py +13 -0
  614. maxframe/learn/model_selection/tests/test_split.py +156 -0
  615. maxframe/learn/preprocessing/__init__.py +16 -0
  616. maxframe/learn/preprocessing/_data/__init__.py +17 -0
  617. maxframe/learn/preprocessing/_data/min_max_scaler.py +401 -0
  618. maxframe/learn/preprocessing/_data/normalize.py +127 -0
  619. maxframe/learn/preprocessing/_data/standard_scaler.py +512 -0
  620. maxframe/learn/preprocessing/_data/utils.py +79 -0
  621. maxframe/learn/preprocessing/_label/__init__.py +16 -0
  622. maxframe/learn/preprocessing/_label/_label_binarizer.py +599 -0
  623. maxframe/learn/preprocessing/_label/_label_encoder.py +174 -0
  624. maxframe/learn/utils/__init__.py +20 -0
  625. maxframe/learn/utils/_encode.py +314 -0
  626. maxframe/learn/utils/checks.py +160 -0
  627. maxframe/learn/utils/core.py +121 -0
  628. maxframe/learn/utils/extmath.py +246 -0
  629. maxframe/learn/utils/multiclass.py +292 -0
  630. maxframe/learn/utils/odpsio.py +262 -0
  631. maxframe/learn/utils/shuffle.py +114 -0
  632. maxframe/learn/utils/sparsefuncs.py +87 -0
  633. maxframe/learn/utils/validation.py +775 -0
  634. maxframe/lib/__init__.py +13 -0
  635. maxframe/lib/aio/__init__.py +27 -0
  636. maxframe/lib/aio/_runners.py +162 -0
  637. maxframe/lib/aio/_threads.py +35 -0
  638. maxframe/lib/aio/base.py +82 -0
  639. maxframe/lib/aio/file.py +85 -0
  640. maxframe/lib/aio/isolation.py +100 -0
  641. maxframe/lib/aio/lru.py +242 -0
  642. maxframe/lib/aio/parallelism.py +37 -0
  643. maxframe/lib/aio/tests/__init__.py +13 -0
  644. maxframe/lib/aio/tests/test_aio_file.py +55 -0
  645. maxframe/lib/compat.py +185 -0
  646. maxframe/lib/compression.py +55 -0
  647. maxframe/lib/cython/__init__.py +13 -0
  648. maxframe/lib/cython/libcpp.pxd +30 -0
  649. maxframe/lib/dtypes_extension/__init__.py +30 -0
  650. maxframe/lib/dtypes_extension/_fake_arrow_dtype.py +604 -0
  651. maxframe/lib/dtypes_extension/blob.py +304 -0
  652. maxframe/lib/dtypes_extension/dtypes.py +106 -0
  653. maxframe/lib/dtypes_extension/tests/__init__.py +13 -0
  654. maxframe/lib/dtypes_extension/tests/test_blob.py +88 -0
  655. maxframe/lib/dtypes_extension/tests/test_dtypes.py +63 -0
  656. maxframe/lib/dtypes_extension/tests/test_fake_arrow_dtype.py +75 -0
  657. maxframe/lib/filesystem/__init__.py +21 -0
  658. maxframe/lib/filesystem/_glob.py +173 -0
  659. maxframe/lib/filesystem/_oss_lib/__init__.py +13 -0
  660. maxframe/lib/filesystem/_oss_lib/common.py +272 -0
  661. maxframe/lib/filesystem/_oss_lib/glob.py +147 -0
  662. maxframe/lib/filesystem/_oss_lib/handle.py +152 -0
  663. maxframe/lib/filesystem/arrow.py +236 -0
  664. maxframe/lib/filesystem/base.py +263 -0
  665. maxframe/lib/filesystem/core.py +95 -0
  666. maxframe/lib/filesystem/fsmap.py +164 -0
  667. maxframe/lib/filesystem/hdfs.py +31 -0
  668. maxframe/lib/filesystem/local.py +112 -0
  669. maxframe/lib/filesystem/oss.py +226 -0
  670. maxframe/lib/filesystem/tests/__init__.py +13 -0
  671. maxframe/lib/filesystem/tests/test_filesystem.py +225 -0
  672. maxframe/lib/filesystem/tests/test_oss.py +220 -0
  673. maxframe/lib/functools_compat.py +81 -0
  674. maxframe/lib/mmh3.cpython-312-x86_64-linux-gnu.so +0 -0
  675. maxframe/lib/mmh3.pyi +43 -0
  676. maxframe/lib/mmh3_src/MurmurHash3.cpp +339 -0
  677. maxframe/lib/mmh3_src/MurmurHash3.h +43 -0
  678. maxframe/lib/mmh3_src/mmh3module.cpp +387 -0
  679. maxframe/lib/sparse/__init__.py +856 -0
  680. maxframe/lib/sparse/array.py +1616 -0
  681. maxframe/lib/sparse/core.py +90 -0
  682. maxframe/lib/sparse/linalg.py +31 -0
  683. maxframe/lib/sparse/matrix.py +244 -0
  684. maxframe/lib/sparse/tests/__init__.py +13 -0
  685. maxframe/lib/sparse/tests/test_sparse.py +476 -0
  686. maxframe/lib/sparse/vector.py +148 -0
  687. maxframe/lib/tblib/LICENSE +20 -0
  688. maxframe/lib/tblib/__init__.py +327 -0
  689. maxframe/lib/tblib/cpython.py +83 -0
  690. maxframe/lib/tblib/decorators.py +44 -0
  691. maxframe/lib/tblib/pickling_support.py +90 -0
  692. maxframe/lib/tests/__init__.py +13 -0
  693. maxframe/lib/tests/test_wrapped_pickle.py +51 -0
  694. maxframe/lib/version.py +620 -0
  695. maxframe/lib/wrapped_pickle.py +150 -0
  696. maxframe/mixin.py +157 -0
  697. maxframe/opcodes.py +657 -0
  698. maxframe/protocol.py +607 -0
  699. maxframe/remote/__init__.py +18 -0
  700. maxframe/remote/core.py +212 -0
  701. maxframe/remote/run_script.py +124 -0
  702. maxframe/serialization/__init__.py +39 -0
  703. maxframe/serialization/arrow.py +120 -0
  704. maxframe/serialization/blob.py +32 -0
  705. maxframe/serialization/core.cpython-312-x86_64-linux-gnu.so +0 -0
  706. maxframe/serialization/core.pxd +50 -0
  707. maxframe/serialization/core.pyi +66 -0
  708. maxframe/serialization/core.pyx +1265 -0
  709. maxframe/serialization/exception.py +84 -0
  710. maxframe/serialization/maxframe_objects.py +39 -0
  711. maxframe/serialization/numpy.py +110 -0
  712. maxframe/serialization/pandas.py +278 -0
  713. maxframe/serialization/scipy.py +71 -0
  714. maxframe/serialization/serializables/__init__.py +55 -0
  715. maxframe/serialization/serializables/core.py +469 -0
  716. maxframe/serialization/serializables/field.py +624 -0
  717. maxframe/serialization/serializables/field_type.py +592 -0
  718. maxframe/serialization/serializables/tests/__init__.py +13 -0
  719. maxframe/serialization/serializables/tests/test_field_type.py +119 -0
  720. maxframe/serialization/serializables/tests/test_serializable.py +313 -0
  721. maxframe/serialization/tests/__init__.py +13 -0
  722. maxframe/serialization/tests/test_serial.py +487 -0
  723. maxframe/session.py +1250 -0
  724. maxframe/sperunner.py +165 -0
  725. maxframe/tensor/__init__.py +325 -0
  726. maxframe/tensor/arithmetic/__init__.py +322 -0
  727. maxframe/tensor/arithmetic/abs.py +66 -0
  728. maxframe/tensor/arithmetic/absolute.py +66 -0
  729. maxframe/tensor/arithmetic/add.py +112 -0
  730. maxframe/tensor/arithmetic/angle.py +70 -0
  731. maxframe/tensor/arithmetic/arccos.py +101 -0
  732. maxframe/tensor/arithmetic/arccosh.py +89 -0
  733. maxframe/tensor/arithmetic/arcsin.py +92 -0
  734. maxframe/tensor/arithmetic/arcsinh.py +84 -0
  735. maxframe/tensor/arithmetic/arctan.py +104 -0
  736. maxframe/tensor/arithmetic/arctan2.py +126 -0
  737. maxframe/tensor/arithmetic/arctanh.py +84 -0
  738. maxframe/tensor/arithmetic/around.py +112 -0
  739. maxframe/tensor/arithmetic/bitand.py +93 -0
  740. maxframe/tensor/arithmetic/bitor.py +100 -0
  741. maxframe/tensor/arithmetic/bitxor.py +93 -0
  742. maxframe/tensor/arithmetic/cbrt.py +64 -0
  743. maxframe/tensor/arithmetic/ceil.py +69 -0
  744. maxframe/tensor/arithmetic/clip.py +165 -0
  745. maxframe/tensor/arithmetic/conj.py +72 -0
  746. maxframe/tensor/arithmetic/copysign.py +76 -0
  747. maxframe/tensor/arithmetic/core.py +552 -0
  748. maxframe/tensor/arithmetic/cos.py +83 -0
  749. maxframe/tensor/arithmetic/cosh.py +70 -0
  750. maxframe/tensor/arithmetic/deg2rad.py +70 -0
  751. maxframe/tensor/arithmetic/degrees.py +75 -0
  752. maxframe/tensor/arithmetic/divide.py +112 -0
  753. maxframe/tensor/arithmetic/equal.py +74 -0
  754. maxframe/tensor/arithmetic/exp.py +104 -0
  755. maxframe/tensor/arithmetic/exp2.py +65 -0
  756. maxframe/tensor/arithmetic/expm1.py +77 -0
  757. maxframe/tensor/arithmetic/fabs.py +72 -0
  758. maxframe/tensor/arithmetic/fix.py +67 -0
  759. maxframe/tensor/arithmetic/float_power.py +101 -0
  760. maxframe/tensor/arithmetic/floor.py +75 -0
  761. maxframe/tensor/arithmetic/floordiv.py +92 -0
  762. maxframe/tensor/arithmetic/fmax.py +103 -0
  763. maxframe/tensor/arithmetic/fmin.py +104 -0
  764. maxframe/tensor/arithmetic/fmod.py +97 -0
  765. maxframe/tensor/arithmetic/frexp.py +96 -0
  766. maxframe/tensor/arithmetic/greater.py +75 -0
  767. maxframe/tensor/arithmetic/greater_equal.py +67 -0
  768. maxframe/tensor/arithmetic/hypot.py +75 -0
  769. maxframe/tensor/arithmetic/i0.py +87 -0
  770. maxframe/tensor/arithmetic/imag.py +65 -0
  771. maxframe/tensor/arithmetic/invert.py +108 -0
  772. maxframe/tensor/arithmetic/isclose.py +114 -0
  773. maxframe/tensor/arithmetic/iscomplex.py +62 -0
  774. maxframe/tensor/arithmetic/iscomplexobj.py +53 -0
  775. maxframe/tensor/arithmetic/isfinite.py +104 -0
  776. maxframe/tensor/arithmetic/isinf.py +101 -0
  777. maxframe/tensor/arithmetic/isnan.py +80 -0
  778. maxframe/tensor/arithmetic/isreal.py +61 -0
  779. maxframe/tensor/arithmetic/ldexp.py +97 -0
  780. maxframe/tensor/arithmetic/less.py +67 -0
  781. maxframe/tensor/arithmetic/less_equal.py +67 -0
  782. maxframe/tensor/arithmetic/log.py +90 -0
  783. maxframe/tensor/arithmetic/log10.py +83 -0
  784. maxframe/tensor/arithmetic/log1p.py +93 -0
  785. maxframe/tensor/arithmetic/log2.py +83 -0
  786. maxframe/tensor/arithmetic/logaddexp.py +78 -0
  787. maxframe/tensor/arithmetic/logaddexp2.py +76 -0
  788. maxframe/tensor/arithmetic/logical_and.py +79 -0
  789. maxframe/tensor/arithmetic/logical_not.py +72 -0
  790. maxframe/tensor/arithmetic/logical_or.py +80 -0
  791. maxframe/tensor/arithmetic/logical_xor.py +86 -0
  792. maxframe/tensor/arithmetic/lshift.py +80 -0
  793. maxframe/tensor/arithmetic/maximum.py +106 -0
  794. maxframe/tensor/arithmetic/minimum.py +106 -0
  795. maxframe/tensor/arithmetic/mod.py +102 -0
  796. maxframe/tensor/arithmetic/modf.py +87 -0
  797. maxframe/tensor/arithmetic/multiply.py +114 -0
  798. maxframe/tensor/arithmetic/nan_to_num.py +97 -0
  799. maxframe/tensor/arithmetic/negative.py +63 -0
  800. maxframe/tensor/arithmetic/nextafter.py +66 -0
  801. maxframe/tensor/arithmetic/not_equal.py +70 -0
  802. maxframe/tensor/arithmetic/positive.py +45 -0
  803. maxframe/tensor/arithmetic/power.py +104 -0
  804. maxframe/tensor/arithmetic/rad2deg.py +69 -0
  805. maxframe/tensor/arithmetic/radians.py +75 -0
  806. maxframe/tensor/arithmetic/real.py +68 -0
  807. maxframe/tensor/arithmetic/reciprocal.py +78 -0
  808. maxframe/tensor/arithmetic/rint.py +66 -0
  809. maxframe/tensor/arithmetic/rshift.py +79 -0
  810. maxframe/tensor/arithmetic/setimag.py +27 -0
  811. maxframe/tensor/arithmetic/setreal.py +27 -0
  812. maxframe/tensor/arithmetic/sign.py +79 -0
  813. maxframe/tensor/arithmetic/signbit.py +63 -0
  814. maxframe/tensor/arithmetic/sin.py +96 -0
  815. maxframe/tensor/arithmetic/sinc.py +100 -0
  816. maxframe/tensor/arithmetic/sinh.py +91 -0
  817. maxframe/tensor/arithmetic/spacing.py +70 -0
  818. maxframe/tensor/arithmetic/sqrt.py +79 -0
  819. maxframe/tensor/arithmetic/square.py +67 -0
  820. maxframe/tensor/arithmetic/subtract.py +83 -0
  821. maxframe/tensor/arithmetic/tan.py +86 -0
  822. maxframe/tensor/arithmetic/tanh.py +90 -0
  823. maxframe/tensor/arithmetic/tests/__init__.py +13 -0
  824. maxframe/tensor/arithmetic/tests/test_arithmetic.py +449 -0
  825. maxframe/tensor/arithmetic/truediv.py +102 -0
  826. maxframe/tensor/arithmetic/trunc.py +70 -0
  827. maxframe/tensor/arithmetic/utils.py +91 -0
  828. maxframe/tensor/array_utils.py +164 -0
  829. maxframe/tensor/core.py +597 -0
  830. maxframe/tensor/datasource/__init__.py +40 -0
  831. maxframe/tensor/datasource/arange.py +154 -0
  832. maxframe/tensor/datasource/array.py +399 -0
  833. maxframe/tensor/datasource/core.py +114 -0
  834. maxframe/tensor/datasource/diag.py +140 -0
  835. maxframe/tensor/datasource/diagflat.py +69 -0
  836. maxframe/tensor/datasource/empty.py +167 -0
  837. maxframe/tensor/datasource/eye.py +95 -0
  838. maxframe/tensor/datasource/from_dataframe.py +68 -0
  839. maxframe/tensor/datasource/from_dense.py +37 -0
  840. maxframe/tensor/datasource/from_sparse.py +45 -0
  841. maxframe/tensor/datasource/full.py +184 -0
  842. maxframe/tensor/datasource/identity.py +54 -0
  843. maxframe/tensor/datasource/indices.py +115 -0
  844. maxframe/tensor/datasource/linspace.py +140 -0
  845. maxframe/tensor/datasource/meshgrid.py +135 -0
  846. maxframe/tensor/datasource/ones.py +178 -0
  847. maxframe/tensor/datasource/scalar.py +40 -0
  848. maxframe/tensor/datasource/tests/__init__.py +13 -0
  849. maxframe/tensor/datasource/tests/test_datasource.py +310 -0
  850. maxframe/tensor/datasource/tri_array.py +107 -0
  851. maxframe/tensor/datasource/zeros.py +192 -0
  852. maxframe/tensor/extensions/__init__.py +33 -0
  853. maxframe/tensor/extensions/accessor.py +25 -0
  854. maxframe/tensor/extensions/apply_chunk.py +137 -0
  855. maxframe/tensor/extensions/rebalance.py +65 -0
  856. maxframe/tensor/fetch/__init__.py +15 -0
  857. maxframe/tensor/fetch/core.py +54 -0
  858. maxframe/tensor/fft/__init__.py +32 -0
  859. maxframe/tensor/fft/core.py +168 -0
  860. maxframe/tensor/fft/fft.py +112 -0
  861. maxframe/tensor/fft/fft2.py +118 -0
  862. maxframe/tensor/fft/fftfreq.py +80 -0
  863. maxframe/tensor/fft/fftn.py +123 -0
  864. maxframe/tensor/fft/fftshift.py +79 -0
  865. maxframe/tensor/fft/hfft.py +112 -0
  866. maxframe/tensor/fft/ifft.py +114 -0
  867. maxframe/tensor/fft/ifft2.py +115 -0
  868. maxframe/tensor/fft/ifftn.py +123 -0
  869. maxframe/tensor/fft/ifftshift.py +73 -0
  870. maxframe/tensor/fft/ihfft.py +93 -0
  871. maxframe/tensor/fft/irfft.py +118 -0
  872. maxframe/tensor/fft/irfft2.py +62 -0
  873. maxframe/tensor/fft/irfftn.py +114 -0
  874. maxframe/tensor/fft/rfft.py +116 -0
  875. maxframe/tensor/fft/rfft2.py +63 -0
  876. maxframe/tensor/fft/rfftfreq.py +87 -0
  877. maxframe/tensor/fft/rfftn.py +113 -0
  878. maxframe/tensor/indexing/__init__.py +47 -0
  879. maxframe/tensor/indexing/choose.py +198 -0
  880. maxframe/tensor/indexing/compress.py +122 -0
  881. maxframe/tensor/indexing/core.py +190 -0
  882. maxframe/tensor/indexing/extract.py +69 -0
  883. maxframe/tensor/indexing/fill_diagonal.py +180 -0
  884. maxframe/tensor/indexing/flatnonzero.py +58 -0
  885. maxframe/tensor/indexing/getitem.py +144 -0
  886. maxframe/tensor/indexing/nonzero.py +118 -0
  887. maxframe/tensor/indexing/setitem.py +142 -0
  888. maxframe/tensor/indexing/slice.py +32 -0
  889. maxframe/tensor/indexing/take.py +128 -0
  890. maxframe/tensor/indexing/tests/__init__.py +13 -0
  891. maxframe/tensor/indexing/tests/test_indexing.py +232 -0
  892. maxframe/tensor/indexing/unravel_index.py +103 -0
  893. maxframe/tensor/lib/__init__.py +16 -0
  894. maxframe/tensor/lib/index_tricks.py +404 -0
  895. maxframe/tensor/linalg/__init__.py +43 -0
  896. maxframe/tensor/linalg/_einsumfunc.py +1025 -0
  897. maxframe/tensor/linalg/cholesky.py +117 -0
  898. maxframe/tensor/linalg/dot.py +145 -0
  899. maxframe/tensor/linalg/einsum.py +339 -0
  900. maxframe/tensor/linalg/inner.py +36 -0
  901. maxframe/tensor/linalg/inv.py +83 -0
  902. maxframe/tensor/linalg/lstsq.py +100 -0
  903. maxframe/tensor/linalg/lu.py +115 -0
  904. maxframe/tensor/linalg/matmul.py +225 -0
  905. maxframe/tensor/linalg/matrix_norm.py +75 -0
  906. maxframe/tensor/linalg/norm.py +249 -0
  907. maxframe/tensor/linalg/qr.py +124 -0
  908. maxframe/tensor/linalg/solve.py +72 -0
  909. maxframe/tensor/linalg/solve_triangular.py +103 -0
  910. maxframe/tensor/linalg/svd.py +167 -0
  911. maxframe/tensor/linalg/tensordot.py +213 -0
  912. maxframe/tensor/linalg/vdot.py +73 -0
  913. maxframe/tensor/linalg/vector_norm.py +113 -0
  914. maxframe/tensor/merge/__init__.py +21 -0
  915. maxframe/tensor/merge/append.py +74 -0
  916. maxframe/tensor/merge/column_stack.py +63 -0
  917. maxframe/tensor/merge/concatenate.py +103 -0
  918. maxframe/tensor/merge/dstack.py +71 -0
  919. maxframe/tensor/merge/hstack.py +70 -0
  920. maxframe/tensor/merge/stack.py +130 -0
  921. maxframe/tensor/merge/tests/__init__.py +13 -0
  922. maxframe/tensor/merge/tests/test_merge.py +79 -0
  923. maxframe/tensor/merge/vstack.py +74 -0
  924. maxframe/tensor/misc/__init__.py +72 -0
  925. maxframe/tensor/misc/argwhere.py +72 -0
  926. maxframe/tensor/misc/array_split.py +46 -0
  927. maxframe/tensor/misc/astype.py +121 -0
  928. maxframe/tensor/misc/atleast_1d.py +72 -0
  929. maxframe/tensor/misc/atleast_2d.py +70 -0
  930. maxframe/tensor/misc/atleast_3d.py +85 -0
  931. maxframe/tensor/misc/broadcast_arrays.py +57 -0
  932. maxframe/tensor/misc/broadcast_to.py +89 -0
  933. maxframe/tensor/misc/copy.py +64 -0
  934. maxframe/tensor/misc/copyto.py +130 -0
  935. maxframe/tensor/misc/delete.py +104 -0
  936. maxframe/tensor/misc/diff.py +115 -0
  937. maxframe/tensor/misc/dsplit.py +68 -0
  938. maxframe/tensor/misc/ediff1d.py +74 -0
  939. maxframe/tensor/misc/expand_dims.py +85 -0
  940. maxframe/tensor/misc/flatten.py +63 -0
  941. maxframe/tensor/misc/flip.py +90 -0
  942. maxframe/tensor/misc/fliplr.py +64 -0
  943. maxframe/tensor/misc/flipud.py +68 -0
  944. maxframe/tensor/misc/hsplit.py +85 -0
  945. maxframe/tensor/misc/in1d.py +94 -0
  946. maxframe/tensor/misc/insert.py +139 -0
  947. maxframe/tensor/misc/isin.py +130 -0
  948. maxframe/tensor/misc/moveaxis.py +83 -0
  949. maxframe/tensor/misc/ndim.py +53 -0
  950. maxframe/tensor/misc/ravel.py +90 -0
  951. maxframe/tensor/misc/repeat.py +129 -0
  952. maxframe/tensor/misc/result_type.py +88 -0
  953. maxframe/tensor/misc/roll.py +124 -0
  954. maxframe/tensor/misc/rollaxis.py +77 -0
  955. maxframe/tensor/misc/searchsorted.py +147 -0
  956. maxframe/tensor/misc/setdiff1d.py +58 -0
  957. maxframe/tensor/misc/shape.py +89 -0
  958. maxframe/tensor/misc/split.py +190 -0
  959. maxframe/tensor/misc/squeeze.py +117 -0
  960. maxframe/tensor/misc/swapaxes.py +113 -0
  961. maxframe/tensor/misc/tests/__init__.py +13 -0
  962. maxframe/tensor/misc/tests/test_misc.py +112 -0
  963. maxframe/tensor/misc/tile.py +109 -0
  964. maxframe/tensor/misc/transpose.py +133 -0
  965. maxframe/tensor/misc/trapezoid.py +123 -0
  966. maxframe/tensor/misc/unique.py +205 -0
  967. maxframe/tensor/misc/vsplit.py +74 -0
  968. maxframe/tensor/misc/where.py +129 -0
  969. maxframe/tensor/operators.py +83 -0
  970. maxframe/tensor/random/__init__.py +166 -0
  971. maxframe/tensor/random/beta.py +87 -0
  972. maxframe/tensor/random/binomial.py +135 -0
  973. maxframe/tensor/random/bytes.py +37 -0
  974. maxframe/tensor/random/chisquare.py +108 -0
  975. maxframe/tensor/random/choice.py +187 -0
  976. maxframe/tensor/random/core.py +249 -0
  977. maxframe/tensor/random/dirichlet.py +121 -0
  978. maxframe/tensor/random/exponential.py +92 -0
  979. maxframe/tensor/random/f.py +133 -0
  980. maxframe/tensor/random/gamma.py +126 -0
  981. maxframe/tensor/random/geometric.py +91 -0
  982. maxframe/tensor/random/gumbel.py +165 -0
  983. maxframe/tensor/random/hypergeometric.py +146 -0
  984. maxframe/tensor/random/laplace.py +131 -0
  985. maxframe/tensor/random/logistic.py +127 -0
  986. maxframe/tensor/random/lognormal.py +157 -0
  987. maxframe/tensor/random/logseries.py +120 -0
  988. maxframe/tensor/random/multinomial.py +131 -0
  989. maxframe/tensor/random/multivariate_normal.py +190 -0
  990. maxframe/tensor/random/negative_binomial.py +123 -0
  991. maxframe/tensor/random/noncentral_chisquare.py +130 -0
  992. maxframe/tensor/random/noncentral_f.py +124 -0
  993. maxframe/tensor/random/normal.py +141 -0
  994. maxframe/tensor/random/pareto.py +138 -0
  995. maxframe/tensor/random/permutation.py +107 -0
  996. maxframe/tensor/random/poisson.py +109 -0
  997. maxframe/tensor/random/power.py +140 -0
  998. maxframe/tensor/random/rand.py +80 -0
  999. maxframe/tensor/random/randint.py +119 -0
  1000. maxframe/tensor/random/randn.py +94 -0
  1001. maxframe/tensor/random/random_integers.py +121 -0
  1002. maxframe/tensor/random/random_sample.py +84 -0
  1003. maxframe/tensor/random/rayleigh.py +108 -0
  1004. maxframe/tensor/random/shuffle.py +61 -0
  1005. maxframe/tensor/random/standard_cauchy.py +103 -0
  1006. maxframe/tensor/random/standard_exponential.py +70 -0
  1007. maxframe/tensor/random/standard_gamma.py +118 -0
  1008. maxframe/tensor/random/standard_normal.py +72 -0
  1009. maxframe/tensor/random/standard_t.py +133 -0
  1010. maxframe/tensor/random/tests/__init__.py +13 -0
  1011. maxframe/tensor/random/tests/test_random.py +165 -0
  1012. maxframe/tensor/random/triangular.py +117 -0
  1013. maxframe/tensor/random/uniform.py +129 -0
  1014. maxframe/tensor/random/vonmises.py +129 -0
  1015. maxframe/tensor/random/wald.py +112 -0
  1016. maxframe/tensor/random/weibull.py +138 -0
  1017. maxframe/tensor/random/zipf.py +120 -0
  1018. maxframe/tensor/rechunk/__init__.py +26 -0
  1019. maxframe/tensor/rechunk/rechunk.py +43 -0
  1020. maxframe/tensor/reduction/__init__.py +64 -0
  1021. maxframe/tensor/reduction/all.py +101 -0
  1022. maxframe/tensor/reduction/allclose.py +86 -0
  1023. maxframe/tensor/reduction/any.py +103 -0
  1024. maxframe/tensor/reduction/argmax.py +101 -0
  1025. maxframe/tensor/reduction/argmin.py +101 -0
  1026. maxframe/tensor/reduction/array_equal.py +63 -0
  1027. maxframe/tensor/reduction/core.py +166 -0
  1028. maxframe/tensor/reduction/count_nonzero.py +80 -0
  1029. maxframe/tensor/reduction/cumprod.py +95 -0
  1030. maxframe/tensor/reduction/cumsum.py +99 -0
  1031. maxframe/tensor/reduction/max.py +118 -0
  1032. maxframe/tensor/reduction/mean.py +122 -0
  1033. maxframe/tensor/reduction/min.py +118 -0
  1034. maxframe/tensor/reduction/nanargmax.py +80 -0
  1035. maxframe/tensor/reduction/nanargmin.py +74 -0
  1036. maxframe/tensor/reduction/nancumprod.py +89 -0
  1037. maxframe/tensor/reduction/nancumsum.py +92 -0
  1038. maxframe/tensor/reduction/nanmax.py +109 -0
  1039. maxframe/tensor/reduction/nanmean.py +105 -0
  1040. maxframe/tensor/reduction/nanmin.py +109 -0
  1041. maxframe/tensor/reduction/nanprod.py +92 -0
  1042. maxframe/tensor/reduction/nanstd.py +124 -0
  1043. maxframe/tensor/reduction/nansum.py +113 -0
  1044. maxframe/tensor/reduction/nanvar.py +149 -0
  1045. maxframe/tensor/reduction/prod.py +128 -0
  1046. maxframe/tensor/reduction/std.py +132 -0
  1047. maxframe/tensor/reduction/sum.py +123 -0
  1048. maxframe/tensor/reduction/tests/__init__.py +13 -0
  1049. maxframe/tensor/reduction/tests/test_reduction.py +189 -0
  1050. maxframe/tensor/reduction/var.py +176 -0
  1051. maxframe/tensor/reshape/__init__.py +15 -0
  1052. maxframe/tensor/reshape/reshape.py +192 -0
  1053. maxframe/tensor/reshape/tests/__init__.py +13 -0
  1054. maxframe/tensor/reshape/tests/test_reshape.py +35 -0
  1055. maxframe/tensor/sort/__init__.py +18 -0
  1056. maxframe/tensor/sort/argpartition.py +98 -0
  1057. maxframe/tensor/sort/argsort.py +150 -0
  1058. maxframe/tensor/sort/partition.py +228 -0
  1059. maxframe/tensor/sort/sort.py +295 -0
  1060. maxframe/tensor/spatial/__init__.py +15 -0
  1061. maxframe/tensor/spatial/distance/__init__.py +17 -0
  1062. maxframe/tensor/spatial/distance/cdist.py +421 -0
  1063. maxframe/tensor/spatial/distance/pdist.py +398 -0
  1064. maxframe/tensor/spatial/distance/squareform.py +153 -0
  1065. maxframe/tensor/special/__init__.py +175 -0
  1066. maxframe/tensor/special/airy.py +55 -0
  1067. maxframe/tensor/special/bessel.py +199 -0
  1068. maxframe/tensor/special/core.py +99 -0
  1069. maxframe/tensor/special/ellip_func_integrals.py +155 -0
  1070. maxframe/tensor/special/ellip_harm.py +55 -0
  1071. maxframe/tensor/special/err_fresnel.py +223 -0
  1072. maxframe/tensor/special/gamma_funcs.py +303 -0
  1073. maxframe/tensor/special/hypergeometric_funcs.py +69 -0
  1074. maxframe/tensor/special/info_theory.py +189 -0
  1075. maxframe/tensor/special/misc.py +163 -0
  1076. maxframe/tensor/special/statistical.py +56 -0
  1077. maxframe/tensor/statistics/__init__.py +24 -0
  1078. maxframe/tensor/statistics/average.py +143 -0
  1079. maxframe/tensor/statistics/bincount.py +133 -0
  1080. maxframe/tensor/statistics/corrcoef.py +77 -0
  1081. maxframe/tensor/statistics/cov.py +222 -0
  1082. maxframe/tensor/statistics/digitize.py +126 -0
  1083. maxframe/tensor/statistics/histogram.py +520 -0
  1084. maxframe/tensor/statistics/median.py +85 -0
  1085. maxframe/tensor/statistics/percentile.py +175 -0
  1086. maxframe/tensor/statistics/ptp.py +89 -0
  1087. maxframe/tensor/statistics/quantile.py +290 -0
  1088. maxframe/tensor/ufunc/__init__.py +24 -0
  1089. maxframe/tensor/ufunc/ufunc.py +198 -0
  1090. maxframe/tensor/utils.py +716 -0
  1091. maxframe/tests/__init__.py +13 -0
  1092. maxframe/tests/test_protocol.py +178 -0
  1093. maxframe/tests/test_udf.py +61 -0
  1094. maxframe/tests/test_utils.py +618 -0
  1095. maxframe/tests/utils.py +245 -0
  1096. maxframe/typing_.py +42 -0
  1097. maxframe/udf.py +356 -0
  1098. maxframe/utils.py +1774 -0
  1099. maxframe-2.3.0.dist-info/METADATA +109 -0
  1100. maxframe-2.3.0.dist-info/RECORD +1117 -0
  1101. maxframe-2.3.0.dist-info/WHEEL +6 -0
  1102. maxframe-2.3.0.dist-info/top_level.txt +3 -0
  1103. maxframe_client/__init__.py +16 -0
  1104. maxframe_client/clients/__init__.py +13 -0
  1105. maxframe_client/clients/framedriver.py +137 -0
  1106. maxframe_client/conftest.py +15 -0
  1107. maxframe_client/fetcher.py +411 -0
  1108. maxframe_client/session/__init__.py +22 -0
  1109. maxframe_client/session/consts.py +39 -0
  1110. maxframe_client/session/graph.py +125 -0
  1111. maxframe_client/session/odps.py +802 -0
  1112. maxframe_client/session/task.py +329 -0
  1113. maxframe_client/session/tests/__init__.py +13 -0
  1114. maxframe_client/session/tests/test_task.py +115 -0
  1115. maxframe_client/tests/__init__.py +13 -0
  1116. maxframe_client/tests/test_fetcher.py +180 -0
  1117. maxframe_client/tests/test_session.py +409 -0
@@ -0,0 +1,174 @@
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 numpy as np
16
+
17
+ from .... import tensor as mt
18
+ from ....udf import builtin_function
19
+ from ...core import BaseEstimator, TransformerMixin
20
+ from ...utils._encode import _encode, _unique
21
+ from ...utils.validation import _num_samples, column_or_1d
22
+
23
+ try:
24
+ from sklearn.utils.validation import check_is_fitted
25
+ except ImportError:
26
+ check_is_fitted = lambda *_: None
27
+
28
+
29
+ class LabelEncoder(TransformerMixin, BaseEstimator):
30
+ """Encode target labels with value between 0 and n_classes-1.
31
+
32
+ This transformer should be used to encode target values, *i.e.* `y`, and
33
+ not the input `X`.
34
+
35
+ Read more in the :ref:`User Guide <preprocessing_targets>`.
36
+
37
+ Attributes
38
+ ----------
39
+ classes_ : ndarray of shape (n_classes,)
40
+ Holds the label for each class.
41
+
42
+ See Also
43
+ --------
44
+ OrdinalEncoder : Encode categorical features using an ordinal encoding
45
+ scheme.
46
+ OneHotEncoder : Encode categorical features as a one-hot numeric array.
47
+
48
+ Examples
49
+ --------
50
+ `LabelEncoder` can be used to normalize labels.
51
+
52
+ >>> from maxframe.learn import preprocessing
53
+ >>> le = preprocessing.LabelEncoder()
54
+ >>> le.fit([1, 2, 2, 6]).execute()
55
+ LabelEncoder()
56
+ >>> le.classes_.to_numpy()
57
+ array([1, 2, 6])
58
+ >>> le.transform([1, 1, 2, 6]).to_numpy()
59
+ array([0, 0, 1, 2]...)
60
+ >>> le.inverse_transform([0, 0, 1, 2]).to_numpy()
61
+ array([1, 1, 2, 6])
62
+
63
+ It can also be used to transform non-numerical labels (as long as they are
64
+ hashable and comparable) to numerical labels.
65
+
66
+ >>> le = preprocessing.LabelEncoder()
67
+ >>> le.fit(["paris", "paris", "tokyo", "amsterdam"]).execute()
68
+ LabelEncoder()
69
+ >>> list(le.classes_.to_numpy())
70
+ ['amsterdam', 'paris', 'tokyo']
71
+ >>> le.transform(["tokyo", "tokyo", "paris"]).to_numpy()
72
+ array([2, 2, 1]...)
73
+ >>> list(le.inverse_transform([2, 2, 1]).to_numpy())
74
+ ['tokyo', 'tokyo', 'paris']
75
+ """
76
+
77
+ def fit(self, y, execute=False, session=None, run_kwargs=None):
78
+ """Fit label encoder.
79
+
80
+ Parameters
81
+ ----------
82
+ y : array-like of shape (n_samples,)
83
+ Target values.
84
+
85
+ Returns
86
+ -------
87
+ self : returns an instance of self.
88
+ Fitted label encoder.
89
+ """
90
+ y = column_or_1d(y, warn=True)
91
+ self.classes_ = _unique(y)
92
+ if execute:
93
+ self.execute(session=session, **(run_kwargs or dict()))
94
+ return self
95
+
96
+ def fit_transform(self, y, execute=False, session=None, run_kwargs=None):
97
+ """Fit label encoder and return encoded labels.
98
+
99
+ Parameters
100
+ ----------
101
+ y : array-like of shape (n_samples,)
102
+ Target values.
103
+
104
+ Returns
105
+ -------
106
+ y : array-like of shape (n_samples,)
107
+ Encoded labels.
108
+ """
109
+ y = column_or_1d(y, warn=True)
110
+ self.classes_, y = _unique(y, return_inverse=True)
111
+ if execute:
112
+ self.execute(session=session, extra_tileables=y, **(run_kwargs or dict()))
113
+ return y
114
+
115
+ def transform(self, y, execute=False, session=None, run_kwargs=None):
116
+ """Transform labels to normalized encoding.
117
+
118
+ Parameters
119
+ ----------
120
+ y : array-like of shape (n_samples,)
121
+ Target values.
122
+
123
+ Returns
124
+ -------
125
+ y : array-like of shape (n_samples,)
126
+ Labels as normalized encodings.
127
+ """
128
+ check_is_fitted(self)
129
+ y = column_or_1d(y, warn=True)
130
+ # transform of empty array is empty array
131
+ if _num_samples(y) == 0:
132
+ return mt.array([])
133
+
134
+ t = _encode(y, uniques=self.classes_)
135
+ if execute:
136
+ t = t.execute(session=session, **(run_kwargs or dict()))
137
+ return t
138
+
139
+ @staticmethod
140
+ @builtin_function
141
+ def _class_checker(chunk_data, classes_data):
142
+ diff = np.setdiff1d(chunk_data, np.arange(len(classes_data)))
143
+ if len(diff):
144
+ raise ValueError("y contains previously unseen labels: %s" % str(diff))
145
+ return classes_data[chunk_data]
146
+
147
+ def inverse_transform(self, y, execute=False, session=None, run_kwargs=None):
148
+ """Transform labels back to original encoding.
149
+
150
+ Parameters
151
+ ----------
152
+ y : ndarray of shape (n_samples,)
153
+ Target values.
154
+
155
+ Returns
156
+ -------
157
+ y : ndarray of shape (n_samples,)
158
+ Original encoding.
159
+ """
160
+ check_is_fitted(self)
161
+ y = column_or_1d(y, warn=True)
162
+ # inverse transform of empty array is empty array
163
+ if _num_samples(y) == 0:
164
+ return mt.array([])
165
+
166
+ labels = mt.asarray(y).mf.apply_chunk(
167
+ self._class_checker, args=(self.classes_,), dtype=self.classes_.dtype
168
+ )
169
+ if execute:
170
+ labels.execute(session=session, **(run_kwargs or dict()))
171
+ return labels
172
+
173
+ def _more_tags(self):
174
+ return {"X_types": ["1dlabels"]}
@@ -0,0 +1,20 @@
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 convert_to_tensor_or_dataframe
16
+ from .multiclass import check_classification_targets
17
+ from .odpsio import read_odps_model
18
+ from .shuffle import shuffle
19
+ from .sparsefuncs import count_nonzero
20
+ from .validation import check_array, check_consistent_length
@@ -0,0 +1,314 @@
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 typing import NamedTuple
16
+
17
+ import numpy as np
18
+
19
+ from maxframe import tensor as mt
20
+
21
+ from ...udf import builtin_function
22
+ from .core import is_scalar_nan
23
+
24
+
25
+ @builtin_function
26
+ def _cut_before(c, idx):
27
+ return c[: idx + 1]
28
+
29
+
30
+ @builtin_function
31
+ def _map_inverse_encodes(c, idx):
32
+ if c.flags.writeable:
33
+ c[c > idx] = idx
34
+ else: # pragma: no cover
35
+ # If c is got from the shared memory, it is immutable.
36
+ c = np.select([c <= idx], [c], idx)
37
+ return c
38
+
39
+
40
+ def _unique(values, *, return_inverse=False):
41
+ """Helper function to find unique values with support for python objects.
42
+
43
+ Uses pure python method for object dtype, and numpy method for
44
+ all other dtypes.
45
+
46
+ Parameters
47
+ ----------
48
+ values : ndarray
49
+ Values to check for unknowns.
50
+
51
+ return_inverse : bool, default=False
52
+ If True, also return the indices of the unique values.
53
+
54
+ Returns
55
+ -------
56
+ unique : ndarray
57
+ The sorted unique values.
58
+
59
+ unique_inverse : ndarray
60
+ The indices to reconstruct the original array from the unique array.
61
+ Only provided if `return_inverse` is True.
62
+ """
63
+ if values.dtype == object:
64
+ # FIXME workaround for LabelEncoder
65
+ # remove if-block below when Series.unique implemented
66
+ # series_unique = md.Series(md.Series(values).unique()).sort_values().values
67
+ # if return_inverse:
68
+ # return series_unique, _map_to_integer(values, series_unique)
69
+ # else:
70
+ # return series_unique
71
+ return mt.unique(values, return_inverse=return_inverse)
72
+
73
+ out = mt.unique(values, return_inverse=return_inverse)
74
+
75
+ if return_inverse:
76
+ uniques, inverse = out
77
+ else:
78
+ uniques = out
79
+
80
+ # np.unique will have duplicate missing values at the end of `uniques`
81
+ # here we clip the nans and remove it from uniques
82
+ uniques = uniques.rechunk(tuple((s,) for s in uniques.shape))
83
+ nan_idx = mt.searchsorted(uniques, mt.nan)
84
+ uniques = uniques.mf.apply_chunk(
85
+ _cut_before,
86
+ args=(nan_idx,),
87
+ dtype=uniques.dtype,
88
+ shape=(np.nan,) * uniques.ndim,
89
+ )
90
+ if return_inverse:
91
+ inverse = inverse.mf.apply_chunk(
92
+ _map_inverse_encodes,
93
+ args=(nan_idx,),
94
+ dtype=inverse.dtype,
95
+ shape=((np.nan,),) * inverse.ndim,
96
+ )
97
+
98
+ return uniques, inverse
99
+ return uniques
100
+
101
+
102
+ class _nandict(dict): # pragma: no cover
103
+ """Dictionary with support for nans."""
104
+
105
+ def __init__(self, mapping):
106
+ super().__init__(mapping)
107
+ for key, value in mapping.items():
108
+ if is_scalar_nan(key):
109
+ self.nan_value = value
110
+ break
111
+
112
+ def __missing__(self, key):
113
+ if hasattr(self, "nan_value") and is_scalar_nan(key):
114
+ return self.nan_value
115
+ raise KeyError(key)
116
+
117
+
118
+ class MissingValues(NamedTuple): # pragma: no cover
119
+ """Data class for missing data information"""
120
+
121
+ nan: bool
122
+ none: bool
123
+
124
+ def to_list(self):
125
+ """Convert tuple to a list where None is always first."""
126
+ output = []
127
+ if self.none:
128
+ output.append(None)
129
+ if self.nan:
130
+ output.append(np.nan)
131
+ return output
132
+
133
+
134
+ def _extract_missing(values): # pragma: no cover
135
+ """Extract missing values from `values`.
136
+
137
+ Parameters
138
+ ----------
139
+ values: set
140
+ Set of values to extract missing from.
141
+
142
+ Returns
143
+ -------
144
+ output: set
145
+ Set with missing values extracted.
146
+
147
+ missing_values: MissingValues
148
+ Object with missing value information.
149
+ """
150
+ missing_values_set = {
151
+ value for value in values if value is None or is_scalar_nan(value)
152
+ }
153
+
154
+ if not missing_values_set:
155
+ return values, MissingValues(nan=False, none=False)
156
+
157
+ if None in missing_values_set:
158
+ if len(missing_values_set) == 1:
159
+ output_missing_values = MissingValues(nan=False, none=True)
160
+ else:
161
+ # If there is more than one missing value, then it has to be
162
+ # float('nan') or np.nan
163
+ output_missing_values = MissingValues(nan=True, none=True)
164
+ else:
165
+ output_missing_values = MissingValues(nan=True, none=False)
166
+
167
+ # create set without the missing values
168
+ output = values - missing_values_set
169
+ return output, output_missing_values
170
+
171
+
172
+ @builtin_function
173
+ def _value_to_int_mapper(values_data, uniques_data, check_unknown=True):
174
+ if values_data.dtype.kind in "OUS":
175
+ try:
176
+ table = _nandict({val: i for i, val in enumerate(uniques_data)})
177
+ return np.array([table[v] for v in values_data])
178
+ except KeyError as e:
179
+ raise ValueError(f"y contains previously unseen labels: {str(e)}")
180
+ else:
181
+ if check_unknown:
182
+ diff = _check_unknown(values_data, uniques_data)
183
+ if diff:
184
+ raise ValueError(f"y contains previously unseen labels: {str(diff)}")
185
+ return np.searchsorted(uniques_data, values_data)
186
+
187
+
188
+ def _map_to_integer(values, uniques, check_unknown=True):
189
+ """Map values based on its position in uniques."""
190
+
191
+ return values.mf.apply_chunk(
192
+ _value_to_int_mapper,
193
+ args=(uniques,),
194
+ dtype=np.dtype(np.int64),
195
+ shape=values.shape,
196
+ check_unknown=check_unknown,
197
+ )
198
+
199
+
200
+ def _check_unknown(values, known_values, return_mask=False): # pragma: no cover
201
+ """
202
+ Helper function to check for unknowns in values to be encoded.
203
+
204
+ Uses pure python method for object dtype, and numpy method for
205
+ all other dtypes.
206
+
207
+ Parameters
208
+ ----------
209
+ values : array
210
+ Values to check for unknowns.
211
+ known_values : array
212
+ Known values. Must be unique.
213
+ return_mask : bool, default=False
214
+ If True, return a mask of the same shape as `values` indicating
215
+ the valid values.
216
+
217
+ Returns
218
+ -------
219
+ diff : list
220
+ The unique values present in `values` and not in `know_values`.
221
+ valid_mask : boolean array
222
+ Additionally returned if ``return_mask=True``.
223
+
224
+ """
225
+ valid_mask = None
226
+
227
+ if values.dtype.kind in "OUS":
228
+ values_set = set(values)
229
+ values_set, missing_in_values = _extract_missing(values_set)
230
+
231
+ uniques_set = set(known_values)
232
+ uniques_set, missing_in_uniques = _extract_missing(uniques_set)
233
+ diff = values_set - uniques_set
234
+
235
+ nan_in_diff = missing_in_values.nan and not missing_in_uniques.nan
236
+ none_in_diff = missing_in_values.none and not missing_in_uniques.none
237
+
238
+ def is_valid(value):
239
+ return (
240
+ value in uniques_set
241
+ or missing_in_uniques.none
242
+ and value is None
243
+ or missing_in_uniques.nan
244
+ and is_scalar_nan(value)
245
+ )
246
+
247
+ if return_mask:
248
+ if diff or nan_in_diff or none_in_diff:
249
+ valid_mask = np.array([is_valid(value) for value in values])
250
+ else:
251
+ valid_mask = np.ones(len(values), dtype=bool)
252
+
253
+ diff = list(diff)
254
+ if none_in_diff:
255
+ diff.append(None)
256
+ if nan_in_diff:
257
+ diff.append(np.nan)
258
+ else:
259
+ unique_values = np.unique(values)
260
+ diff = np.setdiff1d(unique_values, known_values, assume_unique=True)
261
+ if return_mask:
262
+ if diff.size:
263
+ valid_mask = np.in1d(values, known_values)
264
+ else:
265
+ valid_mask = np.ones(len(values), dtype=bool)
266
+
267
+ # check for nans in the known_values
268
+ if np.isnan(known_values).any():
269
+ diff_is_nan = np.isnan(diff)
270
+ if diff_is_nan.any():
271
+ # removes nan from valid_mask
272
+ if diff.size and return_mask:
273
+ is_nan = np.isnan(values)
274
+ valid_mask[is_nan] = 1
275
+
276
+ # remove nan from diff
277
+ diff = diff[~diff_is_nan]
278
+ diff = list(diff)
279
+
280
+ if return_mask:
281
+ return diff, valid_mask
282
+ return diff
283
+
284
+
285
+ def _encode(values, *, uniques, check_unknown=True):
286
+ """Helper function to encode values into [0, n_uniques - 1].
287
+
288
+ Uses pure python method for object dtype, and numpy method for
289
+ all other dtypes.
290
+ The numpy method has the limitation that the `uniques` need to
291
+ be sorted. Importantly, this is not checked but assumed to already be
292
+ the case. The calling method needs to ensure this for all non-object
293
+ values.
294
+
295
+ Parameters
296
+ ----------
297
+ values : tensor
298
+ Values to encode.
299
+ uniques : tensor
300
+ The unique values in `values`. If the dtype is not object, then
301
+ `uniques` needs to be sorted.
302
+ check_unknown : bool, default=True
303
+ If True, check for values in `values` that are not in `unique`
304
+ and raise an error. This is ignored for object dtype, and treated as
305
+ True in this case. This parameter is useful for
306
+ _BaseEncoder._transform() to avoid calling _check_unknown()
307
+ twice.
308
+
309
+ Returns
310
+ -------
311
+ encoded : tensor
312
+ Encoded values
313
+ """
314
+ return _map_to_integer(values, uniques, check_unknown=check_unknown)
@@ -0,0 +1,160 @@
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 typing import List
16
+
17
+ import numpy as np
18
+
19
+ from ... import opcodes
20
+ from ... import tensor as mt
21
+ from ...config import options
22
+ from ...core import ENTITY_TYPE, EntityData, OutputType, get_output_types
23
+ from ...core.operator import Operator
24
+ from ...serialization.serializables import (
25
+ BoolField,
26
+ DataTypeField,
27
+ KeyField,
28
+ StringField,
29
+ )
30
+ from ...tensor.core import TensorOrder
31
+ from ..core import LearnOperatorMixin
32
+
33
+ try:
34
+ from sklearn import get_config as get_sklearn_config
35
+ except ImportError: # pragma: no cover
36
+ get_sklearn_config = None
37
+
38
+
39
+ class CheckBase(Operator, LearnOperatorMixin):
40
+ input = KeyField("input")
41
+ value = KeyField("value", default=None)
42
+ err_msg = StringField("err_msg", default=None)
43
+
44
+ def __init__(self, output_types=None, **kw):
45
+ super().__init__(_output_types=output_types, **kw)
46
+
47
+ @classmethod
48
+ def _set_inputs(cls, op: "CheckBase", inputs: List[EntityData]):
49
+ super()._set_inputs(op, inputs)
50
+ if op.input is not None:
51
+ op.input = op._inputs[0]
52
+ if op.value is not None:
53
+ op.value = op._inputs[-1]
54
+
55
+ def __call__(self, x, value=None):
56
+ # output input if value not specified
57
+ self.value = value = value if value is not None else x
58
+ self.output_types = get_output_types(value)
59
+ return self.new_tileable([x, value], kws=[value.params])
60
+
61
+
62
+ class CheckNonNegative(CheckBase):
63
+ _op_type_ = opcodes.CHECK_NON_NEGATIVE
64
+
65
+ whom = StringField("whom", default=None)
66
+
67
+ def __init__(self, gpu=None, output_types=None, **kw):
68
+ super().__init__(output_types=output_types, gpu=gpu, **kw)
69
+ if self.err_msg is None and self.whom is not None:
70
+ self.err_msg = f"Negative values in data passed to {self.whom}"
71
+
72
+
73
+ def check_non_negative_then_return_value(to_check, value, whom):
74
+ op = CheckNonNegative(
75
+ input=to_check, value=value, whom=whom, sparse=to_check.is_sparse()
76
+ )
77
+ return op(to_check, value)
78
+
79
+
80
+ class AssertAllFinite(Operator, LearnOperatorMixin):
81
+ _op_type_ = opcodes.ASSERT_ALL_FINITE
82
+
83
+ x = KeyField("x")
84
+ allow_nan = BoolField("allow_nan", default=None)
85
+ msg_dtype = DataTypeField("msg_dtype", default=None)
86
+ check_only = BoolField("check_only", default=None)
87
+ input_name = StringField("input_name", default=None)
88
+ # chunks
89
+ is_finite = KeyField("is_finite", default=None)
90
+ check_nan = KeyField("check_nan", default=None)
91
+
92
+ def __init__(self, x=None, output_types=None, **kw):
93
+ super().__init__(x=x, _output_types=output_types, **kw)
94
+
95
+ @classmethod
96
+ def _set_inputs(cls, op: "AssertAllFinite", inputs: List[EntityData]):
97
+ super()._set_inputs(op, inputs)
98
+ inputs_iter = iter(op.inputs)
99
+ for attr in ("x", "is_finite", "check_nan"):
100
+ if getattr(op, attr) is not None:
101
+ setattr(op, attr, next(inputs_iter))
102
+
103
+ @classmethod
104
+ def _assume_finite(cls):
105
+ assume_finite = options.learn.assume_finite
106
+ if assume_finite is None and get_sklearn_config is not None:
107
+ # get config from scikit-learn
108
+ assume_finite = get_sklearn_config()["assume_finite"]
109
+ if assume_finite is None: # pragma: no cover
110
+ assume_finite = False
111
+
112
+ return assume_finite
113
+
114
+ def __call__(self, x):
115
+ if self._assume_finite():
116
+ # skip check
117
+ if self.check_only:
118
+ return
119
+ else:
120
+ return x
121
+
122
+ if self.check_only:
123
+ return self.new_tileable(
124
+ [x], dtype=np.dtype(bool), shape=(), order=TensorOrder.C_ORDER
125
+ )
126
+ else:
127
+ return self.new_tileable([x], kws=[x.params])
128
+
129
+
130
+ def assert_all_finite(
131
+ X, allow_nan=False, msg_dtype=None, check_only=True, input_name=""
132
+ ):
133
+ if not isinstance(X, ENTITY_TYPE):
134
+ X = mt.asarray(X)
135
+
136
+ if (
137
+ isinstance(X.op, AssertAllFinite)
138
+ and X.op.allow_nan == allow_nan
139
+ and X.op.msg_dtype == msg_dtype
140
+ and X.op.check_only == check_only
141
+ ):
142
+ return X
143
+
144
+ if check_only:
145
+ output_types = [OutputType.tensor]
146
+ sparse = False
147
+ else:
148
+ output_types = get_output_types(X)
149
+ sparse = X.issparse()
150
+
151
+ op = AssertAllFinite(
152
+ x=X,
153
+ allow_nan=allow_nan,
154
+ msg_dtype=msg_dtype,
155
+ check_only=check_only,
156
+ sparse=sparse,
157
+ output_types=output_types,
158
+ input_name=input_name,
159
+ )
160
+ return op(X)