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,33 @@
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 PandasDataSourceOperator
16
+ from .from_dict import dataframe_from_dict
17
+ from .from_records import from_records
18
+ from .from_tensor import dataframe_from_tensor, series_from_tensor
19
+
20
+
21
+ def _install():
22
+ from ..core import DATAFRAME_TYPE, SERIES_TYPE
23
+
24
+ for t in DATAFRAME_TYPE:
25
+ t.from_dict = staticmethod(dataframe_from_dict)
26
+ t.from_records = staticmethod(from_records)
27
+ t.from_tensor = staticmethod(dataframe_from_tensor)
28
+ for t in SERIES_TYPE:
29
+ t.from_tensor = staticmethod(series_from_tensor)
30
+
31
+
32
+ _install()
33
+ del _install
@@ -0,0 +1,94 @@
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 asyncio
16
+ from typing import List, MutableMapping, Optional, Union
17
+
18
+ from ...serialization.serializables import Int64Field, StringField
19
+ from ...utils import estimate_pandas_size
20
+ from ..operators import DataFrameOperator, DataFrameOperatorMixin
21
+ from ..utils import validate_dtype_backend
22
+
23
+
24
+ class HeadOptimizedDataSource(DataFrameOperator, DataFrameOperatorMixin):
25
+ __slots__ = ()
26
+ # Data source op that optimized for head,
27
+ # First, it will try to trigger first_chunk.head() and raise TilesError,
28
+ # When iterative tiling is triggered,
29
+ # check if the first_chunk.head() meets requirements.
30
+ nrows = Int64Field("nrows", default=None)
31
+
32
+
33
+ class ColumnPruneSupportedDataSourceMixin(DataFrameOperatorMixin):
34
+ __slots__ = ()
35
+
36
+ def get_columns(self): # pragma: no cover
37
+ raise NotImplementedError
38
+
39
+ def set_pruned_columns(self, columns, *, keep_order=None): # pragma: no cover
40
+ raise NotImplementedError
41
+
42
+
43
+ class _IncrementalIndexRecorder:
44
+ _done: List[Optional[asyncio.Event]]
45
+ _chunk_sizes: List[Optional[int]]
46
+
47
+ def __init__(self, n_chunk: int):
48
+ self._n_chunk = n_chunk
49
+ self._done = [asyncio.Event() for _ in range(n_chunk)]
50
+ self._chunk_sizes = [None] * n_chunk
51
+ self._waiters = set()
52
+
53
+ def _can_destroy(self):
54
+ return all(e.is_set() for e in self._done) and not self._waiters
55
+
56
+ def add_waiter(self, i: int):
57
+ self._waiters.add(i)
58
+
59
+ async def wait(self, i: int):
60
+ if i == 0:
61
+ return 0, self._can_destroy()
62
+ self._waiters.add(i)
63
+ try:
64
+ await asyncio.gather(*(e.wait() for e in self._done[:i]))
65
+ finally:
66
+ self._waiters.remove(i)
67
+ # all chunk finished and no waiters
68
+ return sum(self._chunk_sizes[:i]), self._can_destroy()
69
+
70
+ async def finish(self, i: int, size: int):
71
+ self._chunk_sizes[i] = size
72
+ self._done[i].set()
73
+
74
+
75
+ class IncrementalIndexDatasource(HeadOptimizedDataSource):
76
+ __slots__ = ()
77
+
78
+ incremental_index_recorder_name = StringField("incremental_index_recorder_name")
79
+
80
+
81
+ class PandasDataSourceOperator(DataFrameOperator):
82
+ def get_data(self):
83
+ return getattr(self, "data", None)
84
+
85
+ @classmethod
86
+ def estimate_size(
87
+ cls, ctx: MutableMapping[str, Union[int, float]], op: "PandasDataSourceOperator"
88
+ ):
89
+ ctx[op.outputs[0].key] = estimate_pandas_size(op.get_data())
90
+
91
+
92
+ class DtypeBackendCompatibleMixin:
93
+ def __on_deserialize__(self):
94
+ self.dtype_backend = validate_dtype_backend(self.dtype_backend)
@@ -0,0 +1,59 @@
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 ...core import OutputType
17
+ from ...serialization.serializables import DataFrameField, SeriesField
18
+ from ..operators import DataFrameOperatorMixin
19
+ from ..utils import is_cudf, parse_index
20
+ from .core import PandasDataSourceOperator
21
+
22
+
23
+ class DataFrameDataSource(PandasDataSourceOperator, DataFrameOperatorMixin):
24
+ """
25
+ Represents data from pandas DataFrame
26
+ """
27
+
28
+ _op_type_ = opcodes.DATAFRAME_DATA_SOURCE
29
+
30
+ data = DataFrameField("data")
31
+ dtypes = SeriesField("dtypes")
32
+
33
+ def __init__(self, data=None, dtypes=None, gpu=None, **kw):
34
+ if dtypes is None and data is not None:
35
+ dtypes = data.dtypes
36
+ if gpu is None and is_cudf(data): # pragma: no cover
37
+ gpu = True
38
+ super().__init__(
39
+ data=data,
40
+ dtypes=dtypes,
41
+ gpu=gpu,
42
+ _output_types=[OutputType.dataframe],
43
+ **kw
44
+ )
45
+
46
+ def __call__(self, shape, chunk_size=None):
47
+ return self.new_dataframe(
48
+ None,
49
+ shape,
50
+ dtypes=self.dtypes,
51
+ index_value=parse_index(self.data.index),
52
+ columns_value=parse_index(self.data.columns, store_data=True),
53
+ raw_chunk_size=chunk_size,
54
+ )
55
+
56
+
57
+ def from_pandas(data, chunk_size=None, gpu=None, sparse=False):
58
+ op = DataFrameDataSource(data=data, gpu=gpu, sparse=sparse)
59
+ return op(data.shape, chunk_size=chunk_size)
@@ -0,0 +1,512 @@
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 warnings
16
+ from datetime import date, datetime, time
17
+ from typing import MutableMapping, Union
18
+
19
+ import numpy as np
20
+ import pandas as pd
21
+ from pandas import NaT, Timestamp
22
+ from pandas._libs.tslibs import timezones
23
+ from pandas.tseries.frequencies import to_offset
24
+ from pandas.tseries.offsets import Tick
25
+
26
+ from ... import opcodes
27
+ from ...core import OutputType
28
+ from ...serialization.serializables import AnyField, BoolField, Int64Field, StringField
29
+ from ...utils import no_default, pd_release_version
30
+ from ..operators import DataFrameOperator, DataFrameOperatorMixin
31
+ from ..utils import parse_index
32
+
33
+ try:
34
+ from pandas._libs.tslib import normalize_date
35
+ except ImportError: # pragma: no cover
36
+
37
+ def normalize_date(dt): # from pandas/_libs/tslibs/conversion.pyx
38
+ if isinstance(dt, datetime):
39
+ if isinstance(dt, pd.Timestamp):
40
+ return dt.replace(
41
+ hour=0, minute=0, second=0, microsecond=0, nanosecond=0
42
+ )
43
+ else:
44
+ return dt.replace(hour=0, minute=0, second=0, microsecond=0)
45
+ elif isinstance(dt, date):
46
+ return datetime(dt.year, dt.month, dt.day)
47
+ else:
48
+ raise TypeError(f"Unrecognized type: {type(dt)}")
49
+
50
+
51
+ _date_range_use_inclusive = pd_release_version[:2] >= (1, 4)
52
+
53
+
54
+ # adapted from pandas.core.arrays.datetimes.generate_range
55
+ def generate_range_count(
56
+ start=None, end=None, periods=None, offset=None
57
+ ): # pragma: no cover
58
+ offset = to_offset(offset)
59
+
60
+ start = Timestamp(start)
61
+ start = start if start is not NaT else None
62
+ end = Timestamp(end)
63
+ end = end if end is not NaT else None
64
+
65
+ if start and not offset.is_on_offset(start):
66
+ start = offset.rollforward(start)
67
+
68
+ elif end and not offset.is_on_offset(end):
69
+ end = offset.rollback(end)
70
+
71
+ if periods is None and end < start and offset.n >= 0:
72
+ end = None
73
+ periods = 0
74
+
75
+ if end is None:
76
+ end = start + (periods - 1) * offset
77
+
78
+ if start is None:
79
+ start = end - (periods - 1) * offset
80
+
81
+ cur = start
82
+ count = 0
83
+ if offset.n >= 0:
84
+ while cur <= end:
85
+ count += 1
86
+
87
+ if cur == end:
88
+ # GH#24252 avoid overflows by not performing the addition
89
+ # in offset.apply unless we have to
90
+ break
91
+
92
+ # faster than cur + offset
93
+ try:
94
+ next_date = offset._apply(cur)
95
+ except AttributeError:
96
+ next_date = cur + offset
97
+ if next_date <= cur:
98
+ raise ValueError(f"Offset {offset} did not increment date")
99
+ cur = next_date
100
+ else:
101
+ while cur >= end:
102
+ count += 1
103
+
104
+ if cur == end:
105
+ # GH#24252 avoid overflows by not performing the addition
106
+ # in offset.apply unless we have to
107
+ break
108
+
109
+ # faster than cur + offset
110
+ try:
111
+ next_date = offset._apply(cur)
112
+ except AttributeError:
113
+ next_date = cur + offset
114
+ if next_date >= cur:
115
+ raise ValueError(f"Offset {offset} did not decrement date")
116
+ cur = next_date
117
+ return count
118
+
119
+
120
+ class DataFrameDateRange(DataFrameOperator, DataFrameOperatorMixin):
121
+ _op_type_ = opcodes.DATE_RANGE
122
+
123
+ start = AnyField("start")
124
+ end = AnyField("end")
125
+ periods = Int64Field("periods")
126
+ freq = AnyField("freq")
127
+ tz = AnyField("tz")
128
+ normalize = BoolField("normalize")
129
+ name = StringField("name")
130
+ inclusive = StringField("inclusive")
131
+
132
+ def __init__(
133
+ self,
134
+ output_types=None,
135
+ **kw,
136
+ ):
137
+ super().__init__(_output_types=output_types, **kw)
138
+ if self.output_types is None:
139
+ self.output_types = [OutputType.index]
140
+ if getattr(self, "inclusive", None) is None:
141
+ self.inclusive = "both"
142
+
143
+ def __call__(self, shape, chunk_size=None):
144
+ dtype = pd.Index([self.start]).dtype
145
+ index_value = parse_index(
146
+ pd.Index([], dtype=dtype), self.start, self.end, self.periods, self.tz
147
+ )
148
+ # gen index value info
149
+ index_value.value._min_val = self.start
150
+ index_value.value._min_val_close = True
151
+ index_value.value._max_val = self.end
152
+ index_value.value._max_val_close = True
153
+ index_value.value._is_unique = True
154
+ index_value.value._is_monotonic_increasing = True
155
+ index_value.value._freq = self.freq
156
+ return self.new_index(
157
+ None,
158
+ shape=shape,
159
+ dtype=dtype,
160
+ index_value=index_value,
161
+ name=self.name,
162
+ raw_chunk_size=chunk_size,
163
+ freq=self.freq,
164
+ )
165
+
166
+ @classmethod
167
+ def estimate_size(
168
+ cls, ctx: MutableMapping[str, Union[int, float]], op: "DataFrameDateRange"
169
+ ): # pragma: no cover
170
+ # todo implement this to facilitate local computation
171
+ ctx[op.outputs[0].key] = float("inf")
172
+
173
+
174
+ _midnight = time(0, 0)
175
+
176
+
177
+ def _maybe_normalize_endpoints(start, end, normalize): # pragma: no cover
178
+ _normalized = True
179
+
180
+ if start is not None:
181
+ if normalize:
182
+ start = normalize_date(start)
183
+ _normalized = True
184
+ else:
185
+ _normalized = _normalized and start.time() == _midnight
186
+
187
+ if end is not None:
188
+ if normalize:
189
+ end = normalize_date(end)
190
+ _normalized = True
191
+ else:
192
+ _normalized = _normalized and end.time() == _midnight
193
+
194
+ return start, end, _normalized
195
+
196
+
197
+ def _infer_tz_from_endpoints(start, end, tz): # pragma: no cover
198
+ """
199
+ If a timezone is not explicitly given via `tz`, see if one can
200
+ be inferred from the `start` and `end` endpoints. If more than one
201
+ of these inputs provides a timezone, require that they all agree.
202
+
203
+ Parameters
204
+ ----------
205
+ start : Timestamp
206
+ end : Timestamp
207
+ tz : tzinfo or None
208
+
209
+ Returns
210
+ -------
211
+ tz : tzinfo or None
212
+
213
+ Raises
214
+ ------
215
+ TypeError : if start and end timezones do not agree
216
+ """
217
+ try:
218
+ inferred_tz = timezones.infer_tzinfo(start, end)
219
+ except AssertionError:
220
+ # infer_tzinfo raises AssertionError if passed mismatched timezones
221
+ raise TypeError(
222
+ "Start and end cannot both be tz-aware with different timezones"
223
+ )
224
+
225
+ inferred_tz = timezones.maybe_get_tz(inferred_tz)
226
+ tz = timezones.maybe_get_tz(tz)
227
+
228
+ if tz is not None and inferred_tz is not None:
229
+ if not timezones.tz_compare(inferred_tz, tz):
230
+ raise AssertionError("Inferred time zone not equal to passed time zone")
231
+
232
+ elif inferred_tz is not None:
233
+ tz = inferred_tz
234
+
235
+ return tz
236
+
237
+
238
+ def _maybe_localize_point(
239
+ ts, is_none, is_not_none, freq, tz, ambiguous, nonexistent
240
+ ): # pragma: no cover
241
+ """
242
+ Localize a start or end Timestamp to the timezone of the corresponding
243
+ start or end Timestamp
244
+
245
+ Parameters
246
+ ----------
247
+ ts : start or end Timestamp to potentially localize
248
+ is_none : argument that should be None
249
+ is_not_none : argument that should not be None
250
+ freq : Tick, DateOffset, or None
251
+ tz : str, timezone object or None
252
+ ambiguous: str, localization behavior for ambiguous times
253
+ nonexistent: str, localization behavior for nonexistent times
254
+
255
+ Returns
256
+ -------
257
+ ts : Timestamp
258
+ """
259
+ # Make sure start and end are timezone localized if:
260
+ # 1) freq = a Timedelta-like frequency (Tick)
261
+ # 2) freq = None i.e. generating a linspaced range
262
+ if is_none is None and is_not_none is not None:
263
+ # Note: We can't ambiguous='infer' a singular ambiguous time; however,
264
+ # we have historically defaulted ambiguous=False
265
+ ambiguous = ambiguous if ambiguous != "infer" else False
266
+ localize_args = {"ambiguous": ambiguous, "nonexistent": nonexistent, "tz": None}
267
+ if isinstance(freq, Tick) or freq is None:
268
+ localize_args["tz"] = tz
269
+ ts = ts.tz_localize(**localize_args)
270
+ return ts
271
+
272
+
273
+ def date_range(
274
+ start=None,
275
+ end=None,
276
+ periods=None,
277
+ freq=None,
278
+ tz=None,
279
+ normalize=False,
280
+ name=None,
281
+ closed=no_default,
282
+ inclusive=None,
283
+ chunk_size=None,
284
+ **kwargs,
285
+ ):
286
+ """
287
+ Return a fixed frequency DatetimeIndex.
288
+
289
+ Parameters
290
+ ----------
291
+ start : str or datetime-like, optional
292
+ Left bound for generating dates.
293
+ end : str or datetime-like, optional
294
+ Right bound for generating dates.
295
+ periods : int, optional
296
+ Number of periods to generate.
297
+ freq : str or DateOffset, default 'D'
298
+ Frequency strings can have multiples, e.g. '5H'. See
299
+ :ref:`here <timeseries.offset_aliases>` for a list of
300
+ frequency aliases.
301
+ tz : str or tzinfo, optional
302
+ Time zone name for returning localized DatetimeIndex, for example
303
+ 'Asia/Hong_Kong'. By default, the resulting DatetimeIndex is
304
+ timezone-naive.
305
+ normalize : bool, default False
306
+ Normalize start/end dates to midnight before generating date range.
307
+ name : str, default None
308
+ Name of the resulting DatetimeIndex.
309
+ inclusive : {“both”, “neither”, “left”, “right”}, default “both”
310
+ Include boundaries; Whether to set each bound as closed or open.
311
+ **kwargs
312
+ For compatibility. Has no effect on the result.
313
+
314
+ Returns
315
+ -------
316
+ rng : DatetimeIndex
317
+
318
+ See Also
319
+ --------
320
+ DatetimeIndex : An immutable container for datetimes.
321
+ timedelta_range : Return a fixed frequency TimedeltaIndex.
322
+ period_range : Return a fixed frequency PeriodIndex.
323
+ interval_range : Return a fixed frequency IntervalIndex.
324
+
325
+ Notes
326
+ -----
327
+ Of the four parameters ``start``, ``end``, ``periods``, and ``freq``,
328
+ exactly three must be specified. If ``freq`` is omitted, the resulting
329
+ ``DatetimeIndex`` will have ``periods`` linearly spaced elements between
330
+ ``start`` and ``end`` (closed on both sides).
331
+
332
+ To learn more about the frequency strings, please see `this link
333
+ <https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases>`__.
334
+
335
+ Examples
336
+ --------
337
+ **Specifying the values**
338
+
339
+ The next four examples generate the same `DatetimeIndex`, but vary
340
+ the combination of `start`, `end` and `periods`.
341
+
342
+ Specify `start` and `end`, with the default daily frequency.
343
+ >>> import maxframe.dataframe as md
344
+
345
+ >>> md.date_range(start='1/1/2018', end='1/08/2018').execute()
346
+ DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
347
+ '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'],
348
+ dtype='datetime64[ns]', freq='D')
349
+
350
+ Specify `start` and `periods`, the number of periods (days).
351
+
352
+ >>> md.date_range(start='1/1/2018', periods=8).execute()
353
+ DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
354
+ '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'],
355
+ dtype='datetime64[ns]', freq='D')
356
+
357
+ Specify `end` and `periods`, the number of periods (days).
358
+
359
+ >>> md.date_range(end='1/1/2018', periods=8).execute()
360
+ DatetimeIndex(['2017-12-25', '2017-12-26', '2017-12-27', '2017-12-28',
361
+ '2017-12-29', '2017-12-30', '2017-12-31', '2018-01-01'],
362
+ dtype='datetime64[ns]', freq='D')
363
+
364
+ Specify `start`, `end`, and `periods`; the frequency is generated
365
+ automatically (linearly spaced).
366
+
367
+ >>> md.date_range(start='2018-04-24', end='2018-04-27', periods=3).execute()
368
+ DatetimeIndex(['2018-04-24 00:00:00', '2018-04-25 12:00:00',
369
+ '2018-04-27 00:00:00'],
370
+ dtype='datetime64[ns]', freq=None)
371
+
372
+ **Other Parameters**
373
+
374
+ Changed the `freq` (frequency) to ``'M'`` (month end frequency).
375
+
376
+ >>> md.date_range(start='1/1/2018', periods=5, freq='M').execute()
377
+ DatetimeIndex(['2018-01-31', '2018-02-28', '2018-03-31', '2018-04-30',
378
+ '2018-05-31'],
379
+ dtype='datetime64[ns]', freq='M')
380
+
381
+ Multiples are allowed
382
+
383
+ >>> md.date_range(start='1/1/2018', periods=5, freq='3M').execute()
384
+ DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31',
385
+ '2019-01-31'],
386
+ dtype='datetime64[ns]', freq='3M')
387
+
388
+ `freq` can also be specified as an Offset object.
389
+
390
+ >>> md.date_range(start='1/1/2018', periods=5, freq=md.offsets.MonthEnd(3)).execute()
391
+ DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31',
392
+ '2019-01-31'],
393
+ dtype='datetime64[ns]', freq='3M')
394
+
395
+ Specify `tz` to set the timezone.
396
+
397
+ >>> md.date_range(start='1/1/2018', periods=5, tz='Asia/Tokyo').execute()
398
+ DatetimeIndex(['2018-01-01 00:00:00+09:00', '2018-01-02 00:00:00+09:00',
399
+ '2018-01-03 00:00:00+09:00', '2018-01-04 00:00:00+09:00',
400
+ '2018-01-05 00:00:00+09:00'],
401
+ dtype='datetime64[ns, Asia/Tokyo]', freq='D')
402
+
403
+ `inclusive` controls whether to include `start` and `end` that are on the
404
+ boundary. The default, "both", includes boundary points on either end.
405
+
406
+ >>> md.date_range(start='2017-01-01', end='2017-01-04', inclusive='both').execute()
407
+ DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04'],
408
+ dtype='datetime64[ns]', freq='D')
409
+
410
+ Use ``inclusive='left'`` to exclude `end` if it falls on the boundary.
411
+
412
+ >>> md.date_range(start='2017-01-01', end='2017-01-04', closed='left').execute()
413
+ DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03'],
414
+ dtype='datetime64[ns]', freq='D')
415
+
416
+ Use ``inclusive='right'`` to exclude `start` if it falls on the boundary,
417
+ and similarly inclusive='neither' will exclude both `start` and `end`.
418
+
419
+ >>> md.date_range(start='2017-01-01', end='2017-01-04', closed='right').execute()
420
+ DatetimeIndex(['2017-01-02', '2017-01-03', '2017-01-04'],
421
+ dtype='datetime64[ns]', freq='D')
422
+
423
+ .. note::
424
+ Pandas 1.4.0 or later is required to use ``inclusive='neither'``.
425
+ Otherwise an error may be raised.
426
+ """
427
+ # validate periods
428
+ if isinstance(periods, (float, np.floating)):
429
+ periods = int(periods)
430
+ if periods is not None and not isinstance(periods, (int, np.integer)):
431
+ raise TypeError(f"periods must be a number, got {periods}")
432
+
433
+ if freq is None and any(arg is None for arg in [periods, start, end]):
434
+ freq = "D"
435
+ if sum(arg is not None for arg in [start, end, periods, freq]) != 3:
436
+ raise ValueError(
437
+ "Of the four parameters: start, end, periods, "
438
+ "and freq, exactly three must be specified"
439
+ )
440
+ freq = to_offset(freq)
441
+
442
+ if _date_range_use_inclusive and closed is not no_default:
443
+ warnings.warn(
444
+ "Argument `closed` is deprecated in favor of `inclusive`.", FutureWarning
445
+ )
446
+ elif closed is no_default:
447
+ closed = None
448
+
449
+ if inclusive is None and closed is not no_default:
450
+ inclusive = closed
451
+
452
+ if start is not None:
453
+ start = pd.Timestamp(start)
454
+
455
+ if end is not None:
456
+ end = pd.Timestamp(end)
457
+
458
+ if start is pd.NaT or end is pd.NaT:
459
+ raise ValueError("Neither `start` nor `end` can be NaT")
460
+
461
+ start, end, _ = _maybe_normalize_endpoints(start, end, normalize)
462
+ tz = _infer_tz_from_endpoints(start, end, tz)
463
+
464
+ if start is None and end is not None:
465
+ # start is None and end is not None
466
+ # adjust end first
467
+ end = pd.date_range(end=end, periods=1, freq=freq)[0]
468
+ if inclusive == "neither":
469
+ end -= freq
470
+ size = periods
471
+ start = end - (periods - 1) * freq
472
+ if inclusive in ("neither", "left"):
473
+ size -= 1
474
+ elif inclusive == "right":
475
+ # when start is None, closed == 'left' would not take effect
476
+ # thus just ignore
477
+ inclusive = "both"
478
+ elif end is None:
479
+ # end is None
480
+ # adjust start first
481
+ start = pd.date_range(start=start, periods=1, freq=freq)[0]
482
+ size = periods
483
+ end = start + (periods - 1) * freq
484
+ if inclusive in ("neither", "right"):
485
+ size -= 1
486
+ elif inclusive == "left":
487
+ # when end is None, closed == 'left' would not take effect
488
+ # thus just ignore
489
+ inclusive = "both"
490
+ else:
491
+ if periods is None:
492
+ periods = size = generate_range_count(start, end, periods, freq)
493
+ else:
494
+ size = periods
495
+ if inclusive in ("left", "right"):
496
+ size -= 1
497
+ elif inclusive == "neither":
498
+ size -= 2
499
+
500
+ shape = (size,)
501
+ op = DataFrameDateRange(
502
+ start=start,
503
+ end=end,
504
+ periods=periods,
505
+ freq=freq,
506
+ tz=tz,
507
+ normalize=normalize,
508
+ name=name,
509
+ inclusive=inclusive,
510
+ **kwargs,
511
+ )
512
+ return op(shape, chunk_size=chunk_size)