maxframe 0.1.0b5__cp310-cp310-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of maxframe might be problematic. Click here for more details.

Files changed (647) hide show
  1. maxframe/__init__.py +32 -0
  2. maxframe/_utils.cpython-310-darwin.so +0 -0
  3. maxframe/_utils.pxd +33 -0
  4. maxframe/_utils.pyx +547 -0
  5. maxframe/codegen.py +528 -0
  6. maxframe/config/__init__.py +15 -0
  7. maxframe/config/config.py +443 -0
  8. maxframe/config/tests/__init__.py +13 -0
  9. maxframe/config/tests/test_config.py +103 -0
  10. maxframe/config/tests/test_validators.py +34 -0
  11. maxframe/config/validators.py +57 -0
  12. maxframe/conftest.py +139 -0
  13. maxframe/core/__init__.py +65 -0
  14. maxframe/core/base.py +156 -0
  15. maxframe/core/entity/__init__.py +44 -0
  16. maxframe/core/entity/chunks.py +68 -0
  17. maxframe/core/entity/core.py +152 -0
  18. maxframe/core/entity/executable.py +337 -0
  19. maxframe/core/entity/fuse.py +73 -0
  20. maxframe/core/entity/objects.py +100 -0
  21. maxframe/core/entity/output_types.py +90 -0
  22. maxframe/core/entity/tileables.py +438 -0
  23. maxframe/core/entity/utils.py +24 -0
  24. maxframe/core/graph/__init__.py +17 -0
  25. maxframe/core/graph/builder/__init__.py +16 -0
  26. maxframe/core/graph/builder/base.py +86 -0
  27. maxframe/core/graph/builder/chunk.py +430 -0
  28. maxframe/core/graph/builder/tileable.py +34 -0
  29. maxframe/core/graph/builder/utils.py +41 -0
  30. maxframe/core/graph/core.cpython-310-darwin.so +0 -0
  31. maxframe/core/graph/core.pyx +467 -0
  32. maxframe/core/graph/entity.py +171 -0
  33. maxframe/core/graph/tests/__init__.py +13 -0
  34. maxframe/core/graph/tests/test_graph.py +205 -0
  35. maxframe/core/mode.py +96 -0
  36. maxframe/core/operator/__init__.py +34 -0
  37. maxframe/core/operator/base.py +450 -0
  38. maxframe/core/operator/core.py +276 -0
  39. maxframe/core/operator/fetch.py +53 -0
  40. maxframe/core/operator/fuse.py +29 -0
  41. maxframe/core/operator/objects.py +72 -0
  42. maxframe/core/operator/shuffle.py +111 -0
  43. maxframe/core/operator/tests/__init__.py +13 -0
  44. maxframe/core/operator/tests/test_core.py +64 -0
  45. maxframe/core/tests/__init__.py +13 -0
  46. maxframe/core/tests/test_mode.py +75 -0
  47. maxframe/dataframe/__init__.py +81 -0
  48. maxframe/dataframe/arithmetic/__init__.py +359 -0
  49. maxframe/dataframe/arithmetic/abs.py +33 -0
  50. maxframe/dataframe/arithmetic/add.py +60 -0
  51. maxframe/dataframe/arithmetic/arccos.py +28 -0
  52. maxframe/dataframe/arithmetic/arccosh.py +28 -0
  53. maxframe/dataframe/arithmetic/arcsin.py +28 -0
  54. maxframe/dataframe/arithmetic/arcsinh.py +28 -0
  55. maxframe/dataframe/arithmetic/arctan.py +28 -0
  56. maxframe/dataframe/arithmetic/arctanh.py +28 -0
  57. maxframe/dataframe/arithmetic/around.py +152 -0
  58. maxframe/dataframe/arithmetic/bitwise_and.py +46 -0
  59. maxframe/dataframe/arithmetic/bitwise_or.py +50 -0
  60. maxframe/dataframe/arithmetic/bitwise_xor.py +46 -0
  61. maxframe/dataframe/arithmetic/ceil.py +28 -0
  62. maxframe/dataframe/arithmetic/core.py +342 -0
  63. maxframe/dataframe/arithmetic/cos.py +28 -0
  64. maxframe/dataframe/arithmetic/cosh.py +28 -0
  65. maxframe/dataframe/arithmetic/degrees.py +28 -0
  66. maxframe/dataframe/arithmetic/docstring.py +442 -0
  67. maxframe/dataframe/arithmetic/equal.py +56 -0
  68. maxframe/dataframe/arithmetic/exp.py +28 -0
  69. maxframe/dataframe/arithmetic/exp2.py +28 -0
  70. maxframe/dataframe/arithmetic/expm1.py +28 -0
  71. maxframe/dataframe/arithmetic/floor.py +28 -0
  72. maxframe/dataframe/arithmetic/floordiv.py +64 -0
  73. maxframe/dataframe/arithmetic/greater.py +57 -0
  74. maxframe/dataframe/arithmetic/greater_equal.py +57 -0
  75. maxframe/dataframe/arithmetic/invert.py +33 -0
  76. maxframe/dataframe/arithmetic/is_ufuncs.py +62 -0
  77. maxframe/dataframe/arithmetic/less.py +57 -0
  78. maxframe/dataframe/arithmetic/less_equal.py +57 -0
  79. maxframe/dataframe/arithmetic/log.py +28 -0
  80. maxframe/dataframe/arithmetic/log10.py +28 -0
  81. maxframe/dataframe/arithmetic/log2.py +28 -0
  82. maxframe/dataframe/arithmetic/mod.py +60 -0
  83. maxframe/dataframe/arithmetic/multiply.py +60 -0
  84. maxframe/dataframe/arithmetic/negative.py +33 -0
  85. maxframe/dataframe/arithmetic/not_equal.py +56 -0
  86. maxframe/dataframe/arithmetic/power.py +68 -0
  87. maxframe/dataframe/arithmetic/radians.py +28 -0
  88. maxframe/dataframe/arithmetic/sin.py +28 -0
  89. maxframe/dataframe/arithmetic/sinh.py +28 -0
  90. maxframe/dataframe/arithmetic/sqrt.py +28 -0
  91. maxframe/dataframe/arithmetic/subtract.py +64 -0
  92. maxframe/dataframe/arithmetic/tan.py +28 -0
  93. maxframe/dataframe/arithmetic/tanh.py +28 -0
  94. maxframe/dataframe/arithmetic/tests/__init__.py +13 -0
  95. maxframe/dataframe/arithmetic/tests/test_arithmetic.py +695 -0
  96. maxframe/dataframe/arithmetic/truediv.py +64 -0
  97. maxframe/dataframe/arithmetic/trunc.py +28 -0
  98. maxframe/dataframe/arrays.py +864 -0
  99. maxframe/dataframe/core.py +2417 -0
  100. maxframe/dataframe/datasource/__init__.py +15 -0
  101. maxframe/dataframe/datasource/core.py +81 -0
  102. maxframe/dataframe/datasource/dataframe.py +59 -0
  103. maxframe/dataframe/datasource/date_range.py +504 -0
  104. maxframe/dataframe/datasource/from_index.py +54 -0
  105. maxframe/dataframe/datasource/from_records.py +107 -0
  106. maxframe/dataframe/datasource/from_tensor.py +419 -0
  107. maxframe/dataframe/datasource/index.py +117 -0
  108. maxframe/dataframe/datasource/read_csv.py +528 -0
  109. maxframe/dataframe/datasource/read_odps_query.py +299 -0
  110. maxframe/dataframe/datasource/read_odps_table.py +253 -0
  111. maxframe/dataframe/datasource/read_parquet.py +421 -0
  112. maxframe/dataframe/datasource/series.py +55 -0
  113. maxframe/dataframe/datasource/tests/__init__.py +13 -0
  114. maxframe/dataframe/datasource/tests/test_datasource.py +401 -0
  115. maxframe/dataframe/datastore/__init__.py +26 -0
  116. maxframe/dataframe/datastore/core.py +19 -0
  117. maxframe/dataframe/datastore/to_csv.py +227 -0
  118. maxframe/dataframe/datastore/to_odps.py +162 -0
  119. maxframe/dataframe/extensions/__init__.py +41 -0
  120. maxframe/dataframe/extensions/accessor.py +50 -0
  121. maxframe/dataframe/extensions/reshuffle.py +83 -0
  122. maxframe/dataframe/extensions/tests/__init__.py +13 -0
  123. maxframe/dataframe/extensions/tests/test_extensions.py +38 -0
  124. maxframe/dataframe/fetch/__init__.py +15 -0
  125. maxframe/dataframe/fetch/core.py +86 -0
  126. maxframe/dataframe/groupby/__init__.py +82 -0
  127. maxframe/dataframe/groupby/aggregation.py +350 -0
  128. maxframe/dataframe/groupby/apply.py +251 -0
  129. maxframe/dataframe/groupby/core.py +179 -0
  130. maxframe/dataframe/groupby/cum.py +124 -0
  131. maxframe/dataframe/groupby/fill.py +141 -0
  132. maxframe/dataframe/groupby/getitem.py +92 -0
  133. maxframe/dataframe/groupby/head.py +105 -0
  134. maxframe/dataframe/groupby/sample.py +214 -0
  135. maxframe/dataframe/groupby/tests/__init__.py +13 -0
  136. maxframe/dataframe/groupby/tests/test_groupby.py +374 -0
  137. maxframe/dataframe/groupby/transform.py +255 -0
  138. maxframe/dataframe/indexing/__init__.py +84 -0
  139. maxframe/dataframe/indexing/add_prefix_suffix.py +110 -0
  140. maxframe/dataframe/indexing/align.py +349 -0
  141. maxframe/dataframe/indexing/at.py +83 -0
  142. maxframe/dataframe/indexing/getitem.py +204 -0
  143. maxframe/dataframe/indexing/iat.py +37 -0
  144. maxframe/dataframe/indexing/iloc.py +566 -0
  145. maxframe/dataframe/indexing/insert.py +86 -0
  146. maxframe/dataframe/indexing/loc.py +411 -0
  147. maxframe/dataframe/indexing/reindex.py +526 -0
  148. maxframe/dataframe/indexing/rename.py +462 -0
  149. maxframe/dataframe/indexing/rename_axis.py +209 -0
  150. maxframe/dataframe/indexing/reset_index.py +402 -0
  151. maxframe/dataframe/indexing/sample.py +221 -0
  152. maxframe/dataframe/indexing/set_axis.py +194 -0
  153. maxframe/dataframe/indexing/set_index.py +61 -0
  154. maxframe/dataframe/indexing/setitem.py +130 -0
  155. maxframe/dataframe/indexing/tests/__init__.py +13 -0
  156. maxframe/dataframe/indexing/tests/test_indexing.py +488 -0
  157. maxframe/dataframe/indexing/where.py +308 -0
  158. maxframe/dataframe/initializer.py +288 -0
  159. maxframe/dataframe/merge/__init__.py +32 -0
  160. maxframe/dataframe/merge/append.py +121 -0
  161. maxframe/dataframe/merge/concat.py +325 -0
  162. maxframe/dataframe/merge/merge.py +593 -0
  163. maxframe/dataframe/merge/tests/__init__.py +13 -0
  164. maxframe/dataframe/merge/tests/test_merge.py +215 -0
  165. maxframe/dataframe/misc/__init__.py +134 -0
  166. maxframe/dataframe/misc/_duplicate.py +46 -0
  167. maxframe/dataframe/misc/accessor.py +276 -0
  168. maxframe/dataframe/misc/apply.py +692 -0
  169. maxframe/dataframe/misc/astype.py +236 -0
  170. maxframe/dataframe/misc/case_when.py +141 -0
  171. maxframe/dataframe/misc/check_monotonic.py +84 -0
  172. maxframe/dataframe/misc/cut.py +383 -0
  173. maxframe/dataframe/misc/datetimes.py +79 -0
  174. maxframe/dataframe/misc/describe.py +108 -0
  175. maxframe/dataframe/misc/diff.py +210 -0
  176. maxframe/dataframe/misc/drop.py +440 -0
  177. maxframe/dataframe/misc/drop_duplicates.py +248 -0
  178. maxframe/dataframe/misc/duplicated.py +292 -0
  179. maxframe/dataframe/misc/eval.py +728 -0
  180. maxframe/dataframe/misc/explode.py +171 -0
  181. maxframe/dataframe/misc/get_dummies.py +208 -0
  182. maxframe/dataframe/misc/isin.py +217 -0
  183. maxframe/dataframe/misc/map.py +236 -0
  184. maxframe/dataframe/misc/melt.py +162 -0
  185. maxframe/dataframe/misc/memory_usage.py +248 -0
  186. maxframe/dataframe/misc/pct_change.py +150 -0
  187. maxframe/dataframe/misc/pivot_table.py +262 -0
  188. maxframe/dataframe/misc/qcut.py +104 -0
  189. maxframe/dataframe/misc/select_dtypes.py +104 -0
  190. maxframe/dataframe/misc/shift.py +256 -0
  191. maxframe/dataframe/misc/stack.py +238 -0
  192. maxframe/dataframe/misc/string_.py +221 -0
  193. maxframe/dataframe/misc/tests/__init__.py +13 -0
  194. maxframe/dataframe/misc/tests/test_misc.py +468 -0
  195. maxframe/dataframe/misc/to_numeric.py +178 -0
  196. maxframe/dataframe/misc/transform.py +361 -0
  197. maxframe/dataframe/misc/transpose.py +136 -0
  198. maxframe/dataframe/misc/value_counts.py +182 -0
  199. maxframe/dataframe/missing/__init__.py +53 -0
  200. maxframe/dataframe/missing/checkna.py +223 -0
  201. maxframe/dataframe/missing/dropna.py +280 -0
  202. maxframe/dataframe/missing/fillna.py +275 -0
  203. maxframe/dataframe/missing/replace.py +439 -0
  204. maxframe/dataframe/missing/tests/__init__.py +13 -0
  205. maxframe/dataframe/missing/tests/test_missing.py +89 -0
  206. maxframe/dataframe/operators.py +273 -0
  207. maxframe/dataframe/plotting/__init__.py +40 -0
  208. maxframe/dataframe/plotting/core.py +78 -0
  209. maxframe/dataframe/plotting/tests/__init__.py +13 -0
  210. maxframe/dataframe/plotting/tests/test_plotting.py +136 -0
  211. maxframe/dataframe/reduction/__init__.py +107 -0
  212. maxframe/dataframe/reduction/aggregation.py +344 -0
  213. maxframe/dataframe/reduction/all.py +78 -0
  214. maxframe/dataframe/reduction/any.py +78 -0
  215. maxframe/dataframe/reduction/core.py +837 -0
  216. maxframe/dataframe/reduction/count.py +59 -0
  217. maxframe/dataframe/reduction/cummax.py +30 -0
  218. maxframe/dataframe/reduction/cummin.py +30 -0
  219. maxframe/dataframe/reduction/cumprod.py +30 -0
  220. maxframe/dataframe/reduction/cumsum.py +30 -0
  221. maxframe/dataframe/reduction/custom_reduction.py +42 -0
  222. maxframe/dataframe/reduction/kurtosis.py +104 -0
  223. maxframe/dataframe/reduction/max.py +65 -0
  224. maxframe/dataframe/reduction/mean.py +61 -0
  225. maxframe/dataframe/reduction/min.py +65 -0
  226. maxframe/dataframe/reduction/nunique.py +141 -0
  227. maxframe/dataframe/reduction/prod.py +76 -0
  228. maxframe/dataframe/reduction/reduction_size.py +36 -0
  229. maxframe/dataframe/reduction/sem.py +69 -0
  230. maxframe/dataframe/reduction/skew.py +89 -0
  231. maxframe/dataframe/reduction/std.py +53 -0
  232. maxframe/dataframe/reduction/str_concat.py +48 -0
  233. maxframe/dataframe/reduction/sum.py +77 -0
  234. maxframe/dataframe/reduction/tests/__init__.py +13 -0
  235. maxframe/dataframe/reduction/tests/test_reduction.py +486 -0
  236. maxframe/dataframe/reduction/unique.py +90 -0
  237. maxframe/dataframe/reduction/var.py +72 -0
  238. maxframe/dataframe/sort/__init__.py +34 -0
  239. maxframe/dataframe/sort/core.py +36 -0
  240. maxframe/dataframe/sort/sort_index.py +153 -0
  241. maxframe/dataframe/sort/sort_values.py +311 -0
  242. maxframe/dataframe/sort/tests/__init__.py +13 -0
  243. maxframe/dataframe/sort/tests/test_sort.py +81 -0
  244. maxframe/dataframe/statistics/__init__.py +33 -0
  245. maxframe/dataframe/statistics/corr.py +280 -0
  246. maxframe/dataframe/statistics/quantile.py +341 -0
  247. maxframe/dataframe/statistics/tests/__init__.py +13 -0
  248. maxframe/dataframe/statistics/tests/test_statistics.py +82 -0
  249. maxframe/dataframe/tests/__init__.py +13 -0
  250. maxframe/dataframe/tests/test_initializer.py +29 -0
  251. maxframe/dataframe/tseries/__init__.py +13 -0
  252. maxframe/dataframe/tseries/tests/__init__.py +13 -0
  253. maxframe/dataframe/tseries/tests/test_tseries.py +30 -0
  254. maxframe/dataframe/tseries/to_datetime.py +297 -0
  255. maxframe/dataframe/ufunc/__init__.py +27 -0
  256. maxframe/dataframe/ufunc/tensor.py +54 -0
  257. maxframe/dataframe/ufunc/ufunc.py +52 -0
  258. maxframe/dataframe/utils.py +1267 -0
  259. maxframe/dataframe/window/__init__.py +29 -0
  260. maxframe/dataframe/window/aggregation.py +96 -0
  261. maxframe/dataframe/window/core.py +69 -0
  262. maxframe/dataframe/window/ewm.py +249 -0
  263. maxframe/dataframe/window/expanding.py +147 -0
  264. maxframe/dataframe/window/rolling.py +376 -0
  265. maxframe/dataframe/window/tests/__init__.py +13 -0
  266. maxframe/dataframe/window/tests/test_ewm.py +70 -0
  267. maxframe/dataframe/window/tests/test_expanding.py +66 -0
  268. maxframe/dataframe/window/tests/test_rolling.py +57 -0
  269. maxframe/env.py +33 -0
  270. maxframe/errors.py +21 -0
  271. maxframe/extension.py +81 -0
  272. maxframe/learn/__init__.py +17 -0
  273. maxframe/learn/contrib/__init__.py +17 -0
  274. maxframe/learn/contrib/pytorch/__init__.py +16 -0
  275. maxframe/learn/contrib/pytorch/run_function.py +110 -0
  276. maxframe/learn/contrib/pytorch/run_script.py +102 -0
  277. maxframe/learn/contrib/pytorch/tests/__init__.py +13 -0
  278. maxframe/learn/contrib/pytorch/tests/test_pytorch.py +42 -0
  279. maxframe/learn/contrib/utils.py +52 -0
  280. maxframe/learn/contrib/xgboost/__init__.py +26 -0
  281. maxframe/learn/contrib/xgboost/classifier.py +86 -0
  282. maxframe/learn/contrib/xgboost/core.py +156 -0
  283. maxframe/learn/contrib/xgboost/dmatrix.py +150 -0
  284. maxframe/learn/contrib/xgboost/predict.py +138 -0
  285. maxframe/learn/contrib/xgboost/regressor.py +78 -0
  286. maxframe/learn/contrib/xgboost/tests/__init__.py +13 -0
  287. maxframe/learn/contrib/xgboost/tests/test_core.py +43 -0
  288. maxframe/learn/contrib/xgboost/train.py +121 -0
  289. maxframe/learn/utils/__init__.py +15 -0
  290. maxframe/learn/utils/core.py +29 -0
  291. maxframe/lib/__init__.py +15 -0
  292. maxframe/lib/aio/__init__.py +27 -0
  293. maxframe/lib/aio/_runners.py +162 -0
  294. maxframe/lib/aio/_threads.py +35 -0
  295. maxframe/lib/aio/base.py +82 -0
  296. maxframe/lib/aio/file.py +85 -0
  297. maxframe/lib/aio/isolation.py +100 -0
  298. maxframe/lib/aio/lru.py +242 -0
  299. maxframe/lib/aio/parallelism.py +37 -0
  300. maxframe/lib/aio/tests/__init__.py +13 -0
  301. maxframe/lib/aio/tests/test_aio_file.py +55 -0
  302. maxframe/lib/compression.py +55 -0
  303. maxframe/lib/cython/__init__.py +13 -0
  304. maxframe/lib/cython/libcpp.pxd +30 -0
  305. maxframe/lib/filesystem/__init__.py +21 -0
  306. maxframe/lib/filesystem/_glob.py +173 -0
  307. maxframe/lib/filesystem/_oss_lib/__init__.py +13 -0
  308. maxframe/lib/filesystem/_oss_lib/common.py +198 -0
  309. maxframe/lib/filesystem/_oss_lib/glob.py +147 -0
  310. maxframe/lib/filesystem/_oss_lib/handle.py +156 -0
  311. maxframe/lib/filesystem/arrow.py +236 -0
  312. maxframe/lib/filesystem/base.py +263 -0
  313. maxframe/lib/filesystem/core.py +95 -0
  314. maxframe/lib/filesystem/fsmap.py +164 -0
  315. maxframe/lib/filesystem/hdfs.py +31 -0
  316. maxframe/lib/filesystem/local.py +112 -0
  317. maxframe/lib/filesystem/oss.py +157 -0
  318. maxframe/lib/filesystem/tests/__init__.py +13 -0
  319. maxframe/lib/filesystem/tests/test_filesystem.py +223 -0
  320. maxframe/lib/filesystem/tests/test_oss.py +182 -0
  321. maxframe/lib/functools_compat.py +81 -0
  322. maxframe/lib/mmh3.cpython-310-darwin.so +0 -0
  323. maxframe/lib/mmh3_src/MurmurHash3.cpp +339 -0
  324. maxframe/lib/mmh3_src/MurmurHash3.h +43 -0
  325. maxframe/lib/mmh3_src/mmh3module.cpp +387 -0
  326. maxframe/lib/sparse/__init__.py +861 -0
  327. maxframe/lib/sparse/array.py +1604 -0
  328. maxframe/lib/sparse/core.py +92 -0
  329. maxframe/lib/sparse/matrix.py +241 -0
  330. maxframe/lib/sparse/tests/__init__.py +15 -0
  331. maxframe/lib/sparse/tests/test_sparse.py +476 -0
  332. maxframe/lib/sparse/vector.py +150 -0
  333. maxframe/lib/tblib/LICENSE +20 -0
  334. maxframe/lib/tblib/__init__.py +327 -0
  335. maxframe/lib/tblib/cpython.py +83 -0
  336. maxframe/lib/tblib/decorators.py +44 -0
  337. maxframe/lib/tblib/pickling_support.py +90 -0
  338. maxframe/lib/tests/__init__.py +13 -0
  339. maxframe/lib/tests/test_wrapped_pickle.py +51 -0
  340. maxframe/lib/version.py +620 -0
  341. maxframe/lib/wrapped_pickle.py +139 -0
  342. maxframe/mixin.py +100 -0
  343. maxframe/odpsio/__init__.py +21 -0
  344. maxframe/odpsio/arrow.py +91 -0
  345. maxframe/odpsio/schema.py +364 -0
  346. maxframe/odpsio/tableio.py +322 -0
  347. maxframe/odpsio/tests/__init__.py +13 -0
  348. maxframe/odpsio/tests/test_arrow.py +88 -0
  349. maxframe/odpsio/tests/test_schema.py +297 -0
  350. maxframe/odpsio/tests/test_tableio.py +136 -0
  351. maxframe/odpsio/tests/test_volumeio.py +90 -0
  352. maxframe/odpsio/volumeio.py +95 -0
  353. maxframe/opcodes.py +590 -0
  354. maxframe/protocol.py +415 -0
  355. maxframe/remote/__init__.py +18 -0
  356. maxframe/remote/core.py +210 -0
  357. maxframe/remote/run_script.py +121 -0
  358. maxframe/serialization/__init__.py +26 -0
  359. maxframe/serialization/arrow.py +95 -0
  360. maxframe/serialization/core.cpython-310-darwin.so +0 -0
  361. maxframe/serialization/core.pxd +44 -0
  362. maxframe/serialization/core.pyi +61 -0
  363. maxframe/serialization/core.pyx +1094 -0
  364. maxframe/serialization/exception.py +86 -0
  365. maxframe/serialization/maxframe_objects.py +39 -0
  366. maxframe/serialization/numpy.py +91 -0
  367. maxframe/serialization/pandas.py +202 -0
  368. maxframe/serialization/scipy.py +71 -0
  369. maxframe/serialization/serializables/__init__.py +55 -0
  370. maxframe/serialization/serializables/core.py +262 -0
  371. maxframe/serialization/serializables/field.py +624 -0
  372. maxframe/serialization/serializables/field_type.py +589 -0
  373. maxframe/serialization/serializables/tests/__init__.py +13 -0
  374. maxframe/serialization/serializables/tests/test_field_type.py +121 -0
  375. maxframe/serialization/serializables/tests/test_serializable.py +250 -0
  376. maxframe/serialization/tests/__init__.py +13 -0
  377. maxframe/serialization/tests/test_serial.py +412 -0
  378. maxframe/session.py +1310 -0
  379. maxframe/tensor/__init__.py +183 -0
  380. maxframe/tensor/arithmetic/__init__.py +315 -0
  381. maxframe/tensor/arithmetic/abs.py +68 -0
  382. maxframe/tensor/arithmetic/absolute.py +68 -0
  383. maxframe/tensor/arithmetic/add.py +82 -0
  384. maxframe/tensor/arithmetic/angle.py +72 -0
  385. maxframe/tensor/arithmetic/arccos.py +104 -0
  386. maxframe/tensor/arithmetic/arccosh.py +91 -0
  387. maxframe/tensor/arithmetic/arcsin.py +94 -0
  388. maxframe/tensor/arithmetic/arcsinh.py +86 -0
  389. maxframe/tensor/arithmetic/arctan.py +106 -0
  390. maxframe/tensor/arithmetic/arctan2.py +128 -0
  391. maxframe/tensor/arithmetic/arctanh.py +86 -0
  392. maxframe/tensor/arithmetic/around.py +114 -0
  393. maxframe/tensor/arithmetic/bitand.py +95 -0
  394. maxframe/tensor/arithmetic/bitor.py +102 -0
  395. maxframe/tensor/arithmetic/bitxor.py +95 -0
  396. maxframe/tensor/arithmetic/cbrt.py +66 -0
  397. maxframe/tensor/arithmetic/ceil.py +71 -0
  398. maxframe/tensor/arithmetic/clip.py +165 -0
  399. maxframe/tensor/arithmetic/conj.py +74 -0
  400. maxframe/tensor/arithmetic/copysign.py +78 -0
  401. maxframe/tensor/arithmetic/core.py +544 -0
  402. maxframe/tensor/arithmetic/cos.py +85 -0
  403. maxframe/tensor/arithmetic/cosh.py +72 -0
  404. maxframe/tensor/arithmetic/deg2rad.py +72 -0
  405. maxframe/tensor/arithmetic/degrees.py +77 -0
  406. maxframe/tensor/arithmetic/divide.py +114 -0
  407. maxframe/tensor/arithmetic/equal.py +76 -0
  408. maxframe/tensor/arithmetic/exp.py +106 -0
  409. maxframe/tensor/arithmetic/exp2.py +67 -0
  410. maxframe/tensor/arithmetic/expm1.py +79 -0
  411. maxframe/tensor/arithmetic/fabs.py +74 -0
  412. maxframe/tensor/arithmetic/fix.py +69 -0
  413. maxframe/tensor/arithmetic/float_power.py +103 -0
  414. maxframe/tensor/arithmetic/floor.py +77 -0
  415. maxframe/tensor/arithmetic/floordiv.py +94 -0
  416. maxframe/tensor/arithmetic/fmax.py +105 -0
  417. maxframe/tensor/arithmetic/fmin.py +106 -0
  418. maxframe/tensor/arithmetic/fmod.py +99 -0
  419. maxframe/tensor/arithmetic/frexp.py +92 -0
  420. maxframe/tensor/arithmetic/greater.py +77 -0
  421. maxframe/tensor/arithmetic/greater_equal.py +69 -0
  422. maxframe/tensor/arithmetic/hypot.py +77 -0
  423. maxframe/tensor/arithmetic/i0.py +89 -0
  424. maxframe/tensor/arithmetic/imag.py +67 -0
  425. maxframe/tensor/arithmetic/invert.py +110 -0
  426. maxframe/tensor/arithmetic/isclose.py +115 -0
  427. maxframe/tensor/arithmetic/iscomplex.py +64 -0
  428. maxframe/tensor/arithmetic/isfinite.py +106 -0
  429. maxframe/tensor/arithmetic/isinf.py +103 -0
  430. maxframe/tensor/arithmetic/isnan.py +82 -0
  431. maxframe/tensor/arithmetic/isreal.py +63 -0
  432. maxframe/tensor/arithmetic/ldexp.py +99 -0
  433. maxframe/tensor/arithmetic/less.py +69 -0
  434. maxframe/tensor/arithmetic/less_equal.py +69 -0
  435. maxframe/tensor/arithmetic/log.py +92 -0
  436. maxframe/tensor/arithmetic/log10.py +85 -0
  437. maxframe/tensor/arithmetic/log1p.py +95 -0
  438. maxframe/tensor/arithmetic/log2.py +85 -0
  439. maxframe/tensor/arithmetic/logaddexp.py +80 -0
  440. maxframe/tensor/arithmetic/logaddexp2.py +78 -0
  441. maxframe/tensor/arithmetic/logical_and.py +81 -0
  442. maxframe/tensor/arithmetic/logical_not.py +74 -0
  443. maxframe/tensor/arithmetic/logical_or.py +82 -0
  444. maxframe/tensor/arithmetic/logical_xor.py +88 -0
  445. maxframe/tensor/arithmetic/lshift.py +82 -0
  446. maxframe/tensor/arithmetic/maximum.py +108 -0
  447. maxframe/tensor/arithmetic/minimum.py +108 -0
  448. maxframe/tensor/arithmetic/mod.py +104 -0
  449. maxframe/tensor/arithmetic/modf.py +83 -0
  450. maxframe/tensor/arithmetic/multiply.py +81 -0
  451. maxframe/tensor/arithmetic/nan_to_num.py +99 -0
  452. maxframe/tensor/arithmetic/negative.py +65 -0
  453. maxframe/tensor/arithmetic/nextafter.py +68 -0
  454. maxframe/tensor/arithmetic/not_equal.py +72 -0
  455. maxframe/tensor/arithmetic/positive.py +47 -0
  456. maxframe/tensor/arithmetic/power.py +106 -0
  457. maxframe/tensor/arithmetic/rad2deg.py +71 -0
  458. maxframe/tensor/arithmetic/radians.py +77 -0
  459. maxframe/tensor/arithmetic/real.py +70 -0
  460. maxframe/tensor/arithmetic/reciprocal.py +76 -0
  461. maxframe/tensor/arithmetic/rint.py +68 -0
  462. maxframe/tensor/arithmetic/rshift.py +81 -0
  463. maxframe/tensor/arithmetic/setimag.py +29 -0
  464. maxframe/tensor/arithmetic/setreal.py +29 -0
  465. maxframe/tensor/arithmetic/sign.py +81 -0
  466. maxframe/tensor/arithmetic/signbit.py +65 -0
  467. maxframe/tensor/arithmetic/sin.py +98 -0
  468. maxframe/tensor/arithmetic/sinc.py +102 -0
  469. maxframe/tensor/arithmetic/sinh.py +93 -0
  470. maxframe/tensor/arithmetic/spacing.py +72 -0
  471. maxframe/tensor/arithmetic/sqrt.py +81 -0
  472. maxframe/tensor/arithmetic/square.py +69 -0
  473. maxframe/tensor/arithmetic/subtract.py +81 -0
  474. maxframe/tensor/arithmetic/tan.py +88 -0
  475. maxframe/tensor/arithmetic/tanh.py +92 -0
  476. maxframe/tensor/arithmetic/tests/__init__.py +15 -0
  477. maxframe/tensor/arithmetic/tests/test_arithmetic.py +414 -0
  478. maxframe/tensor/arithmetic/truediv.py +104 -0
  479. maxframe/tensor/arithmetic/trunc.py +72 -0
  480. maxframe/tensor/arithmetic/utils.py +65 -0
  481. maxframe/tensor/array_utils.py +186 -0
  482. maxframe/tensor/base/__init__.py +34 -0
  483. maxframe/tensor/base/astype.py +119 -0
  484. maxframe/tensor/base/atleast_1d.py +74 -0
  485. maxframe/tensor/base/broadcast_to.py +89 -0
  486. maxframe/tensor/base/ravel.py +92 -0
  487. maxframe/tensor/base/tests/__init__.py +13 -0
  488. maxframe/tensor/base/tests/test_base.py +114 -0
  489. maxframe/tensor/base/transpose.py +125 -0
  490. maxframe/tensor/base/unique.py +205 -0
  491. maxframe/tensor/base/where.py +127 -0
  492. maxframe/tensor/core.py +724 -0
  493. maxframe/tensor/datasource/__init__.py +32 -0
  494. maxframe/tensor/datasource/arange.py +156 -0
  495. maxframe/tensor/datasource/array.py +415 -0
  496. maxframe/tensor/datasource/core.py +109 -0
  497. maxframe/tensor/datasource/empty.py +169 -0
  498. maxframe/tensor/datasource/from_dataframe.py +70 -0
  499. maxframe/tensor/datasource/from_dense.py +54 -0
  500. maxframe/tensor/datasource/from_sparse.py +47 -0
  501. maxframe/tensor/datasource/full.py +186 -0
  502. maxframe/tensor/datasource/ones.py +173 -0
  503. maxframe/tensor/datasource/scalar.py +40 -0
  504. maxframe/tensor/datasource/tests/__init__.py +13 -0
  505. maxframe/tensor/datasource/tests/test_datasource.py +278 -0
  506. maxframe/tensor/datasource/zeros.py +188 -0
  507. maxframe/tensor/fetch/__init__.py +15 -0
  508. maxframe/tensor/fetch/core.py +54 -0
  509. maxframe/tensor/indexing/__init__.py +47 -0
  510. maxframe/tensor/indexing/choose.py +196 -0
  511. maxframe/tensor/indexing/compress.py +124 -0
  512. maxframe/tensor/indexing/core.py +190 -0
  513. maxframe/tensor/indexing/extract.py +71 -0
  514. maxframe/tensor/indexing/fill_diagonal.py +183 -0
  515. maxframe/tensor/indexing/flatnonzero.py +60 -0
  516. maxframe/tensor/indexing/getitem.py +175 -0
  517. maxframe/tensor/indexing/nonzero.py +120 -0
  518. maxframe/tensor/indexing/setitem.py +132 -0
  519. maxframe/tensor/indexing/slice.py +29 -0
  520. maxframe/tensor/indexing/take.py +130 -0
  521. maxframe/tensor/indexing/tests/__init__.py +15 -0
  522. maxframe/tensor/indexing/tests/test_indexing.py +234 -0
  523. maxframe/tensor/indexing/unravel_index.py +103 -0
  524. maxframe/tensor/merge/__init__.py +15 -0
  525. maxframe/tensor/merge/stack.py +132 -0
  526. maxframe/tensor/merge/tests/__init__.py +13 -0
  527. maxframe/tensor/merge/tests/test_merge.py +52 -0
  528. maxframe/tensor/operators.py +123 -0
  529. maxframe/tensor/random/__init__.py +168 -0
  530. maxframe/tensor/random/beta.py +87 -0
  531. maxframe/tensor/random/binomial.py +137 -0
  532. maxframe/tensor/random/bytes.py +39 -0
  533. maxframe/tensor/random/chisquare.py +110 -0
  534. maxframe/tensor/random/choice.py +186 -0
  535. maxframe/tensor/random/core.py +234 -0
  536. maxframe/tensor/random/dirichlet.py +123 -0
  537. maxframe/tensor/random/exponential.py +94 -0
  538. maxframe/tensor/random/f.py +135 -0
  539. maxframe/tensor/random/gamma.py +128 -0
  540. maxframe/tensor/random/geometric.py +93 -0
  541. maxframe/tensor/random/gumbel.py +167 -0
  542. maxframe/tensor/random/hypergeometric.py +148 -0
  543. maxframe/tensor/random/laplace.py +133 -0
  544. maxframe/tensor/random/logistic.py +129 -0
  545. maxframe/tensor/random/lognormal.py +159 -0
  546. maxframe/tensor/random/logseries.py +122 -0
  547. maxframe/tensor/random/multinomial.py +133 -0
  548. maxframe/tensor/random/multivariate_normal.py +192 -0
  549. maxframe/tensor/random/negative_binomial.py +125 -0
  550. maxframe/tensor/random/noncentral_chisquare.py +132 -0
  551. maxframe/tensor/random/noncentral_f.py +126 -0
  552. maxframe/tensor/random/normal.py +143 -0
  553. maxframe/tensor/random/pareto.py +140 -0
  554. maxframe/tensor/random/permutation.py +104 -0
  555. maxframe/tensor/random/poisson.py +111 -0
  556. maxframe/tensor/random/power.py +142 -0
  557. maxframe/tensor/random/rand.py +82 -0
  558. maxframe/tensor/random/randint.py +121 -0
  559. maxframe/tensor/random/randn.py +96 -0
  560. maxframe/tensor/random/random_integers.py +123 -0
  561. maxframe/tensor/random/random_sample.py +86 -0
  562. maxframe/tensor/random/rayleigh.py +110 -0
  563. maxframe/tensor/random/shuffle.py +61 -0
  564. maxframe/tensor/random/standard_cauchy.py +105 -0
  565. maxframe/tensor/random/standard_exponential.py +72 -0
  566. maxframe/tensor/random/standard_gamma.py +120 -0
  567. maxframe/tensor/random/standard_normal.py +74 -0
  568. maxframe/tensor/random/standard_t.py +135 -0
  569. maxframe/tensor/random/tests/__init__.py +15 -0
  570. maxframe/tensor/random/tests/test_random.py +167 -0
  571. maxframe/tensor/random/triangular.py +119 -0
  572. maxframe/tensor/random/uniform.py +131 -0
  573. maxframe/tensor/random/vonmises.py +131 -0
  574. maxframe/tensor/random/wald.py +114 -0
  575. maxframe/tensor/random/weibull.py +140 -0
  576. maxframe/tensor/random/zipf.py +122 -0
  577. maxframe/tensor/rechunk/__init__.py +26 -0
  578. maxframe/tensor/rechunk/rechunk.py +43 -0
  579. maxframe/tensor/reduction/__init__.py +66 -0
  580. maxframe/tensor/reduction/all.py +103 -0
  581. maxframe/tensor/reduction/allclose.py +88 -0
  582. maxframe/tensor/reduction/any.py +105 -0
  583. maxframe/tensor/reduction/argmax.py +103 -0
  584. maxframe/tensor/reduction/argmin.py +103 -0
  585. maxframe/tensor/reduction/array_equal.py +64 -0
  586. maxframe/tensor/reduction/core.py +168 -0
  587. maxframe/tensor/reduction/count_nonzero.py +81 -0
  588. maxframe/tensor/reduction/cumprod.py +97 -0
  589. maxframe/tensor/reduction/cumsum.py +101 -0
  590. maxframe/tensor/reduction/max.py +120 -0
  591. maxframe/tensor/reduction/mean.py +123 -0
  592. maxframe/tensor/reduction/min.py +120 -0
  593. maxframe/tensor/reduction/nanargmax.py +82 -0
  594. maxframe/tensor/reduction/nanargmin.py +76 -0
  595. maxframe/tensor/reduction/nancumprod.py +91 -0
  596. maxframe/tensor/reduction/nancumsum.py +94 -0
  597. maxframe/tensor/reduction/nanmax.py +111 -0
  598. maxframe/tensor/reduction/nanmean.py +106 -0
  599. maxframe/tensor/reduction/nanmin.py +111 -0
  600. maxframe/tensor/reduction/nanprod.py +94 -0
  601. maxframe/tensor/reduction/nanstd.py +126 -0
  602. maxframe/tensor/reduction/nansum.py +115 -0
  603. maxframe/tensor/reduction/nanvar.py +149 -0
  604. maxframe/tensor/reduction/prod.py +130 -0
  605. maxframe/tensor/reduction/std.py +134 -0
  606. maxframe/tensor/reduction/sum.py +125 -0
  607. maxframe/tensor/reduction/tests/__init__.py +13 -0
  608. maxframe/tensor/reduction/tests/test_reduction.py +181 -0
  609. maxframe/tensor/reduction/var.py +176 -0
  610. maxframe/tensor/reshape/__init__.py +17 -0
  611. maxframe/tensor/reshape/reshape.py +188 -0
  612. maxframe/tensor/reshape/tests/__init__.py +15 -0
  613. maxframe/tensor/reshape/tests/test_reshape.py +37 -0
  614. maxframe/tensor/statistics/__init__.py +13 -0
  615. maxframe/tensor/statistics/percentile.py +175 -0
  616. maxframe/tensor/statistics/quantile.py +288 -0
  617. maxframe/tensor/ufunc/__init__.py +26 -0
  618. maxframe/tensor/ufunc/ufunc.py +200 -0
  619. maxframe/tensor/utils.py +718 -0
  620. maxframe/tests/__init__.py +13 -0
  621. maxframe/tests/test_codegen.py +69 -0
  622. maxframe/tests/test_protocol.py +144 -0
  623. maxframe/tests/test_utils.py +376 -0
  624. maxframe/tests/utils.py +164 -0
  625. maxframe/typing_.py +37 -0
  626. maxframe/udf.py +134 -0
  627. maxframe/utils.py +1114 -0
  628. maxframe-0.1.0b5.dist-info/METADATA +104 -0
  629. maxframe-0.1.0b5.dist-info/RECORD +647 -0
  630. maxframe-0.1.0b5.dist-info/WHEEL +5 -0
  631. maxframe-0.1.0b5.dist-info/top_level.txt +3 -0
  632. maxframe_client/__init__.py +17 -0
  633. maxframe_client/clients/__init__.py +13 -0
  634. maxframe_client/clients/framedriver.py +118 -0
  635. maxframe_client/clients/spe.py +104 -0
  636. maxframe_client/conftest.py +15 -0
  637. maxframe_client/fetcher.py +264 -0
  638. maxframe_client/session/__init__.py +22 -0
  639. maxframe_client/session/consts.py +36 -0
  640. maxframe_client/session/graph.py +119 -0
  641. maxframe_client/session/odps.py +482 -0
  642. maxframe_client/session/task.py +280 -0
  643. maxframe_client/session/tests/__init__.py +13 -0
  644. maxframe_client/session/tests/test_task.py +85 -0
  645. maxframe_client/tests/__init__.py +13 -0
  646. maxframe_client/tests/test_fetcher.py +89 -0
  647. maxframe_client/tests/test_session.py +255 -0
@@ -0,0 +1,75 @@
1
+ # Copyright 1999-2024 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 pytest
16
+
17
+ from .. import enter_mode, is_build_mode, is_eager_mode, is_kernel_mode
18
+
19
+
20
+ def test_enter_mode():
21
+ from ...config import option_context, options
22
+
23
+ @enter_mode(kernel=True)
24
+ def wrapped():
25
+ return is_eager_mode()
26
+
27
+ assert options.execution_mode != "eager"
28
+ assert not wrapped()
29
+
30
+ with option_context({"execution_mode": "eager"}):
31
+ assert options.execution_mode == "eager"
32
+ assert not wrapped()
33
+
34
+ @enter_mode(kernel=True)
35
+ def wrapped2():
36
+ wrapped()
37
+ with option_context({"execution_mode": "eager"}):
38
+ assert options.execution_mode == "eager"
39
+ assert not is_eager_mode()
40
+ with enter_mode(kernel=False):
41
+ assert not is_kernel_mode()
42
+ assert is_kernel_mode()
43
+
44
+ wrapped2()
45
+
46
+ assert not is_kernel_mode()
47
+ assert not is_build_mode()
48
+
49
+ @enter_mode(kernel=False)
50
+ def wrapped3():
51
+ wrapped()
52
+ with option_context({"execution_mode": "trigger"}):
53
+ assert options.execution_mode == "trigger"
54
+ assert not is_kernel_mode()
55
+ with enter_mode(kernel=True, build=True):
56
+ assert is_kernel_mode()
57
+ assert is_build_mode()
58
+ assert not is_kernel_mode()
59
+ assert not is_build_mode()
60
+ with pytest.raises(ValueError):
61
+ with enter_mode(kernel=True, build=True):
62
+ raise ValueError("meant to raise error")
63
+ assert not is_kernel_mode()
64
+ assert not is_build_mode()
65
+
66
+ @enter_mode(kernel=True)
67
+ def wrapped4():
68
+ raise ValueError("meant to raise error")
69
+
70
+ with pytest.raises(ValueError):
71
+ wrapped4()
72
+ assert not is_kernel_mode()
73
+ assert not is_build_mode()
74
+
75
+ wrapped3()
@@ -0,0 +1,81 @@
1
+ # Copyright 1999-2024 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 (
16
+ arithmetic,
17
+ datasource,
18
+ datastore,
19
+ extensions,
20
+ fetch,
21
+ groupby,
22
+ indexing,
23
+ misc,
24
+ missing,
25
+ plotting,
26
+ reduction,
27
+ sort,
28
+ statistics,
29
+ tseries,
30
+ ufunc,
31
+ window,
32
+ )
33
+ from .datasource.date_range import date_range
34
+ from .datasource.from_index import series_from_index
35
+ from .datasource.from_records import from_records
36
+ from .datasource.from_tensor import dataframe_from_tensor, series_from_tensor
37
+ from .datasource.read_csv import read_csv
38
+ from .datasource.read_odps_query import read_odps_query
39
+ from .datasource.read_odps_table import read_odps_table
40
+ from .datasource.read_parquet import read_parquet
41
+ from .datastore.to_odps import to_odps_table
42
+ from .groupby import NamedAgg
43
+ from .initializer import DataFrame, Index, Series, read_pandas
44
+ from .merge import concat, merge
45
+ from .misc.cut import cut
46
+ from .misc.eval import maxframe_eval as eval # pylint: disable=redefined-builtin
47
+ from .misc.get_dummies import get_dummies
48
+ from .misc.melt import melt
49
+ from .misc.pivot_table import pivot_table
50
+ from .misc.qcut import qcut
51
+ from .misc.to_numeric import to_numeric
52
+ from .missing import isna, isnull, notna, notnull
53
+ from .reduction import CustomReduction, unique
54
+ from .tseries.to_datetime import to_datetime
55
+
56
+ try:
57
+ from pandas import NA, Timestamp
58
+ except ImportError: # pragma: no cover
59
+ pass
60
+
61
+ try:
62
+ from . import _internal
63
+ except ImportError: # pragma: no cover
64
+ pass
65
+
66
+ del (
67
+ arithmetic,
68
+ datasource,
69
+ datastore,
70
+ extensions,
71
+ fetch,
72
+ groupby,
73
+ indexing,
74
+ plotting,
75
+ reduction,
76
+ sort,
77
+ tseries,
78
+ ufunc,
79
+ )
80
+
81
+ from_pandas = read_pandas
@@ -0,0 +1,359 @@
1
+ # Copyright 1999-2024 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 functools
16
+
17
+ import pandas as pd
18
+
19
+ try:
20
+ from pandas.core.arraylike import OpsMixin as PdOpsMixin
21
+ except ImportError: # pragma: no cover
22
+ PdOpsMixin = None
23
+
24
+ from .abs import DataFrameAbs, abs_
25
+ from .add import DataFrameAdd, add, radd
26
+ from .arccos import DataFrameArccos
27
+ from .arccosh import DataFrameArccosh
28
+ from .arcsin import DataFrameArcsin
29
+ from .arcsinh import DataFrameArcsinh
30
+ from .arctan import DataFrameArctan
31
+ from .arctanh import DataFrameArctanh
32
+ from .around import DataFrameAround, around
33
+ from .bitwise_and import DataFrameAnd, bitand, rbitand
34
+ from .bitwise_or import DataFrameOr, bitor, rbitor
35
+ from .bitwise_xor import DataFrameXor, bitxor, rbitxor
36
+ from .ceil import DataFrameCeil
37
+ from .cos import DataFrameCos
38
+ from .cosh import DataFrameCosh
39
+ from .degrees import DataFrameDegrees
40
+ from .equal import DataFrameEqual, eq
41
+ from .exp import DataFrameExp
42
+ from .exp2 import DataFrameExp2
43
+ from .expm1 import DataFrameExpm1
44
+ from .floor import DataFrameFloor
45
+ from .floordiv import DataFrameFloorDiv, floordiv, rfloordiv
46
+ from .greater import DataFrameGreater, gt
47
+ from .greater_equal import DataFrameGreaterEqual, ge
48
+ from .invert import DataFrameNot, invert
49
+ from .is_ufuncs import DataFrameIsFinite, DataFrameIsInf, DataFrameIsNan
50
+ from .less import DataFrameLess, lt
51
+ from .less_equal import DataFrameLessEqual, le
52
+ from .log import DataFrameLog
53
+ from .log2 import DataFrameLog2
54
+ from .log10 import DataFrameLog10
55
+ from .mod import DataFrameMod, mod, rmod
56
+ from .multiply import DataFrameMul, mul, rmul
57
+ from .negative import DataFrameNegative, negative
58
+ from .not_equal import DataFrameNotEqual, ne
59
+ from .power import DataFramePower, power, rpower
60
+ from .radians import DataFrameRadians
61
+ from .sin import DataFrameSin
62
+ from .sinh import DataFrameSinh
63
+ from .sqrt import DataFrameSqrt
64
+ from .subtract import DataFrameSubtract, rsubtract, subtract
65
+ from .tan import DataFrameTan
66
+ from .tanh import DataFrameTanh
67
+ from .truediv import DataFrameTrueDiv, rtruediv, truediv
68
+ from .trunc import DataFrameTrunc
69
+
70
+
71
+ def _wrap_eq():
72
+ @functools.wraps(eq)
73
+ def call(df, other, **kw):
74
+ from ..core import is_build_mode
75
+
76
+ if is_build_mode():
77
+ return df._equals(other)
78
+ return _wrap_comparison(eq)(df, other, **kw)
79
+
80
+ return call
81
+
82
+
83
+ def _wrap_comparison(func):
84
+ @functools.wraps(func)
85
+ def call(df, other, **kw):
86
+ from ..core import DATAFRAME_TYPE
87
+ from ..utils import wrap_notimplemented_exception
88
+
89
+ if isinstance(df, DATAFRAME_TYPE) and isinstance(other, DATAFRAME_TYPE):
90
+ # index and columns should be identical
91
+ for index_type in ["index_value", "columns_value"]:
92
+ left, right = getattr(df, index_type), getattr(other, index_type)
93
+ if left.has_value() and right.has_value():
94
+ # if df and other's index or columns has value
95
+ index_eq = left.to_pandas().equals(right.to_pandas())
96
+ else:
97
+ index_eq = left.key == right.key
98
+ if not index_eq:
99
+ raise ValueError(
100
+ "Can only compare identically-labeled DataFrame object"
101
+ )
102
+ return wrap_notimplemented_exception(func)(df, other, **kw)
103
+
104
+ return call
105
+
106
+
107
+ _reverse_magic_names = {
108
+ "eq": "eq",
109
+ "ne": "ne",
110
+ "lt": "ge",
111
+ "le": "gt",
112
+ "gt": "le",
113
+ "ge": "lt",
114
+ }
115
+
116
+
117
+ def _wrap_pandas_magics(cls, magic_name: str):
118
+ magic_func_name = f"__{magic_name}__"
119
+ magic_rfunc_name = _reverse_magic_names.get(magic_name, f"__r{magic_name}__")
120
+ try:
121
+ raw_method = getattr(cls, magic_func_name)
122
+ except AttributeError:
123
+ return
124
+
125
+ @functools.wraps(raw_method)
126
+ def wrapped(self, other):
127
+ from ..core import DATAFRAME_TYPE, INDEX_TYPE, SERIES_TYPE
128
+
129
+ if not isinstance(other, (DATAFRAME_TYPE, SERIES_TYPE, INDEX_TYPE)):
130
+ return raw_method(self, other)
131
+
132
+ try:
133
+ val = getattr(other, magic_rfunc_name)(self)
134
+ except AttributeError: # pragma: no cover
135
+ return raw_method(self, other)
136
+
137
+ if val is NotImplemented: # pragma: no cover
138
+ return raw_method(self, other)
139
+ return val
140
+
141
+ setattr(cls, magic_func_name, wrapped)
142
+
143
+
144
+ def _install():
145
+ from ..core import DATAFRAME_TYPE, INDEX_TYPE, SERIES_TYPE
146
+ from ..ufunc.tensor import register_tensor_ufunc
147
+ from ..utils import wrap_notimplemented_exception
148
+
149
+ def _register_method(cls, name, func, wrapper=None):
150
+ from ..core import DATAFRAME_TYPE, SERIES_TYPE
151
+
152
+ if wrapper is None:
153
+
154
+ @functools.wraps(func)
155
+ def wrapper(df, *args, **kwargs):
156
+ return func(df, *args, **kwargs)
157
+
158
+ try:
159
+ if issubclass(cls, DATAFRAME_TYPE):
160
+ wrapper.__doc__ = func.__frame_doc__
161
+ elif issubclass(cls, SERIES_TYPE):
162
+ wrapper.__doc__ = func.__series_doc__
163
+ else:
164
+ wrapper = func
165
+ except AttributeError:
166
+ wrapper = func
167
+
168
+ wrapper.__name__ = func.__name__
169
+ setattr(cls, name, wrapper)
170
+
171
+ def _register_bin_method(cls, name, func):
172
+ def call_df_fill(df, other, axis="columns", level=None, fill_value=None):
173
+ return func(df, other, axis=axis, level=level, fill_value=fill_value)
174
+
175
+ def call_df_no_fill(df, other, axis="columns", level=None):
176
+ return func(df, other, axis=axis, level=level)
177
+
178
+ def call_series_fill(df, other, level=None, fill_value=None, axis=0):
179
+ return func(df, other, axis=axis, level=level, fill_value=fill_value)
180
+
181
+ def call_series_no_fill(df, other, level=None, axis=0):
182
+ return func(df, other, axis=axis, level=level)
183
+
184
+ if issubclass(cls, DATAFRAME_TYPE):
185
+ call = (
186
+ call_df_fill
187
+ if "fill_value" in func.__code__.co_varnames
188
+ else call_df_no_fill
189
+ )
190
+ elif issubclass(cls, SERIES_TYPE):
191
+ call = (
192
+ call_series_fill
193
+ if "fill_value" in func.__code__.co_varnames
194
+ else call_series_no_fill
195
+ )
196
+ else:
197
+ call = None
198
+ return _register_method(cls, name, func, wrapper=call)
199
+
200
+ # register maxframe tensor ufuncs
201
+ ufunc_ops = [
202
+ # unary
203
+ DataFrameAbs,
204
+ DataFrameLog,
205
+ DataFrameLog2,
206
+ DataFrameLog10,
207
+ DataFrameSin,
208
+ DataFrameCos,
209
+ DataFrameTan,
210
+ DataFrameSinh,
211
+ DataFrameCosh,
212
+ DataFrameTanh,
213
+ DataFrameArcsin,
214
+ DataFrameArccos,
215
+ DataFrameArctan,
216
+ DataFrameArcsinh,
217
+ DataFrameArccosh,
218
+ DataFrameArctanh,
219
+ DataFrameRadians,
220
+ DataFrameDegrees,
221
+ DataFrameCeil,
222
+ DataFrameFloor,
223
+ DataFrameAround,
224
+ DataFrameExp,
225
+ DataFrameExp2,
226
+ DataFrameExpm1,
227
+ DataFrameSqrt,
228
+ DataFrameNot,
229
+ DataFrameIsNan,
230
+ DataFrameIsInf,
231
+ DataFrameIsFinite,
232
+ DataFrameNegative,
233
+ DataFrameTrunc,
234
+ # binary
235
+ DataFrameAdd,
236
+ DataFrameEqual,
237
+ DataFrameFloorDiv,
238
+ DataFrameGreater,
239
+ DataFrameGreaterEqual,
240
+ DataFrameLess,
241
+ DataFrameLessEqual,
242
+ DataFrameAnd,
243
+ DataFrameOr,
244
+ DataFrameXor,
245
+ DataFrameMod,
246
+ DataFrameMul,
247
+ DataFrameNotEqual,
248
+ DataFramePower,
249
+ DataFrameSubtract,
250
+ DataFrameTrueDiv,
251
+ ]
252
+ for ufunc_op in ufunc_ops:
253
+ register_tensor_ufunc(ufunc_op)
254
+
255
+ for entity in DATAFRAME_TYPE + SERIES_TYPE:
256
+ setattr(entity, "__abs__", abs_)
257
+ setattr(entity, "abs", abs_)
258
+ _register_method(entity, "round", around)
259
+ setattr(entity, "__invert__", invert)
260
+
261
+ setattr(entity, "__add__", wrap_notimplemented_exception(add))
262
+ setattr(entity, "__radd__", wrap_notimplemented_exception(radd))
263
+ _register_bin_method(entity, "add", add)
264
+ _register_bin_method(entity, "radd", radd)
265
+
266
+ setattr(entity, "__sub__", wrap_notimplemented_exception(subtract))
267
+ setattr(entity, "__rsub__", wrap_notimplemented_exception(rsubtract))
268
+ _register_bin_method(entity, "sub", subtract)
269
+ _register_bin_method(entity, "rsub", rsubtract)
270
+
271
+ setattr(entity, "__mul__", wrap_notimplemented_exception(mul))
272
+ setattr(entity, "__rmul__", wrap_notimplemented_exception(rmul))
273
+ _register_bin_method(entity, "mul", mul)
274
+ _register_bin_method(entity, "multiply", mul)
275
+ _register_bin_method(entity, "rmul", rmul)
276
+
277
+ setattr(entity, "__floordiv__", wrap_notimplemented_exception(floordiv))
278
+ setattr(entity, "__rfloordiv__", wrap_notimplemented_exception(rfloordiv))
279
+ setattr(entity, "__truediv__", wrap_notimplemented_exception(truediv))
280
+ setattr(entity, "__rtruediv__", wrap_notimplemented_exception(rtruediv))
281
+ setattr(entity, "__div__", wrap_notimplemented_exception(truediv))
282
+ setattr(entity, "__rdiv__", wrap_notimplemented_exception(rtruediv))
283
+ _register_bin_method(entity, "floordiv", floordiv)
284
+ _register_bin_method(entity, "rfloordiv", rfloordiv)
285
+ _register_bin_method(entity, "truediv", truediv)
286
+ _register_bin_method(entity, "rtruediv", rtruediv)
287
+ _register_bin_method(entity, "div", truediv)
288
+ _register_bin_method(entity, "rdiv", rtruediv)
289
+
290
+ setattr(entity, "__mod__", wrap_notimplemented_exception(mod))
291
+ setattr(entity, "__rmod__", wrap_notimplemented_exception(rmod))
292
+ _register_bin_method(entity, "mod", mod)
293
+ _register_bin_method(entity, "rmod", rmod)
294
+
295
+ setattr(entity, "__pow__", wrap_notimplemented_exception(power))
296
+ setattr(entity, "__rpow__", wrap_notimplemented_exception(rpower))
297
+ _register_bin_method(entity, "pow", power)
298
+ _register_bin_method(entity, "rpow", rpower)
299
+
300
+ setattr(entity, "__eq__", _wrap_eq())
301
+ setattr(entity, "__ne__", _wrap_comparison(ne))
302
+ setattr(entity, "__lt__", _wrap_comparison(lt))
303
+ setattr(entity, "__gt__", _wrap_comparison(gt))
304
+ setattr(entity, "__ge__", _wrap_comparison(ge))
305
+ setattr(entity, "__le__", _wrap_comparison(le))
306
+ _register_bin_method(entity, "eq", eq)
307
+ _register_bin_method(entity, "ne", ne)
308
+ _register_bin_method(entity, "lt", lt)
309
+ _register_bin_method(entity, "gt", gt)
310
+ _register_bin_method(entity, "ge", ge)
311
+ _register_bin_method(entity, "le", le)
312
+
313
+ setattr(entity, "__and__", wrap_notimplemented_exception(bitand))
314
+ setattr(entity, "__rand__", wrap_notimplemented_exception(rbitand))
315
+
316
+ setattr(entity, "__or__", wrap_notimplemented_exception(bitor))
317
+ setattr(entity, "__ror__", wrap_notimplemented_exception(rbitor))
318
+
319
+ setattr(entity, "__xor__", wrap_notimplemented_exception(bitxor))
320
+ setattr(entity, "__rxor__", wrap_notimplemented_exception(rbitxor))
321
+
322
+ setattr(entity, "__neg__", wrap_notimplemented_exception(negative))
323
+
324
+ for entity in INDEX_TYPE:
325
+ setattr(entity, "__eq__", _wrap_eq())
326
+
327
+ if PdOpsMixin is not None and not hasattr(
328
+ pd, "_maxframe_df_arith_wrapped"
329
+ ): # pragma: no branch
330
+ # wrap pandas magic functions to intercept reverse operators
331
+ for magic_name in [
332
+ "add",
333
+ "sub",
334
+ "mul",
335
+ "div",
336
+ "truediv",
337
+ "floordiv",
338
+ "mod",
339
+ "pow",
340
+ "and",
341
+ "or",
342
+ "xor",
343
+ "eq",
344
+ "ne",
345
+ "lt",
346
+ "le",
347
+ "gt",
348
+ "ge",
349
+ ]:
350
+ _wrap_pandas_magics(PdOpsMixin, magic_name)
351
+
352
+ for pd_cls in (pd.DataFrame, pd.Series):
353
+ _wrap_pandas_magics(pd_cls, "matmul")
354
+
355
+ pd._maxframe_df_arith_wrapped = True
356
+
357
+
358
+ _install()
359
+ del _install
@@ -0,0 +1,33 @@
1
+ # Copyright 1999-2024 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 ...utils import classproperty
17
+ from .core import DataFrameUnaryUfunc
18
+
19
+
20
+ class DataFrameAbs(DataFrameUnaryUfunc):
21
+ _op_type_ = opcodes.ABS
22
+ _func_name = "abs"
23
+
24
+ @classproperty
25
+ def tensor_op_type(self):
26
+ from ...tensor.arithmetic import TensorAbsolute
27
+
28
+ return TensorAbsolute
29
+
30
+
31
+ def abs_(df):
32
+ op = DataFrameAbs()
33
+ return op(df)
@@ -0,0 +1,60 @@
1
+ # Copyright 1999-2024 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 operator
16
+
17
+ from ... import opcodes
18
+ from ...utils import classproperty
19
+ from .core import DataFrameBinopUfunc
20
+ from .docstring import bin_arithmetic_doc
21
+
22
+
23
+ class DataFrameAdd(DataFrameBinopUfunc):
24
+ _op_type_ = opcodes.ADD
25
+
26
+ _func_name = "add"
27
+ _rfunc_name = "radd"
28
+
29
+ @classproperty
30
+ def _operator(self):
31
+ return operator.add
32
+
33
+ @classproperty
34
+ def tensor_op_type(self):
35
+ from ...tensor.arithmetic import TensorAdd
36
+
37
+ return TensorAdd
38
+
39
+
40
+ _add_example = """
41
+ >>> a.add(b, fill_value=0).execute()
42
+ a 2.0
43
+ b 1.0
44
+ c 1.0
45
+ d 1.0
46
+ e NaN
47
+ dtype: float64
48
+ """
49
+
50
+
51
+ @bin_arithmetic_doc("Addition", equiv="+", series_example=_add_example)
52
+ def add(df, other, axis="columns", level=None, fill_value=None):
53
+ op = DataFrameAdd(axis=axis, level=level, fill_value=fill_value, lhs=df, rhs=other)
54
+ return op(df, other)
55
+
56
+
57
+ @bin_arithmetic_doc("Addition", equiv="+", series_example=_add_example)
58
+ def radd(df, other, axis="columns", level=None, fill_value=None):
59
+ op = DataFrameAdd(axis=axis, level=level, fill_value=fill_value, lhs=other, rhs=df)
60
+ return op.rcall(df, other)
@@ -0,0 +1,28 @@
1
+ # Copyright 1999-2024 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 ...utils import classproperty
17
+ from .core import DataFrameUnaryUfunc
18
+
19
+
20
+ class DataFrameArccos(DataFrameUnaryUfunc):
21
+ _op_type_ = opcodes.ARCCOS
22
+ _func_name = "arccos"
23
+
24
+ @classproperty
25
+ def tensor_op_type(self):
26
+ from ...tensor.arithmetic import TensorArccos
27
+
28
+ return TensorArccos
@@ -0,0 +1,28 @@
1
+ # Copyright 1999-2024 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 ...utils import classproperty
17
+ from .core import DataFrameUnaryUfunc
18
+
19
+
20
+ class DataFrameArccosh(DataFrameUnaryUfunc):
21
+ _op_type_ = opcodes.ARCCOSH
22
+ _func_name = "arccosh"
23
+
24
+ @classproperty
25
+ def tensor_op_type(self):
26
+ from ...tensor.arithmetic import TensorArccosh
27
+
28
+ return TensorArccosh
@@ -0,0 +1,28 @@
1
+ # Copyright 1999-2024 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 ...utils import classproperty
17
+ from .core import DataFrameUnaryUfunc
18
+
19
+
20
+ class DataFrameArcsin(DataFrameUnaryUfunc):
21
+ _op_type_ = opcodes.ARCSIN
22
+ _func_name = "arcsin"
23
+
24
+ @classproperty
25
+ def tensor_op_type(self):
26
+ from ...tensor.arithmetic import TensorArcsin
27
+
28
+ return TensorArcsin