maxframe 1.1.1__cp311-cp311-macosx_10_9_universal2.whl → 1.2.0__cp311-cp311-macosx_10_9_universal2.whl

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

Potentially problematic release.


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

Files changed (690) hide show
  1. maxframe/__init__.py +1 -1
  2. maxframe/_utils.cpython-311-darwin.so +0 -0
  3. maxframe/_utils.pxd +1 -1
  4. maxframe/_utils.pyx +1 -1
  5. maxframe/codegen.py +14 -7
  6. maxframe/config/__init__.py +1 -1
  7. maxframe/config/config.py +10 -1
  8. maxframe/config/tests/__init__.py +1 -1
  9. maxframe/config/tests/test_config.py +1 -1
  10. maxframe/config/tests/test_validators.py +1 -1
  11. maxframe/config/validators.py +1 -1
  12. maxframe/conftest.py +1 -1
  13. maxframe/core/__init__.py +2 -1
  14. maxframe/core/accessor.py +44 -0
  15. maxframe/core/base.py +1 -1
  16. maxframe/core/entity/__init__.py +1 -1
  17. maxframe/core/entity/core.py +1 -1
  18. maxframe/core/entity/executable.py +1 -1
  19. maxframe/core/entity/objects.py +1 -1
  20. maxframe/core/entity/output_types.py +1 -1
  21. maxframe/core/entity/tests/__init__.py +1 -1
  22. maxframe/core/entity/tests/test_objects.py +1 -1
  23. maxframe/core/entity/tileables.py +1 -1
  24. maxframe/core/entity/utils.py +1 -1
  25. maxframe/core/graph/__init__.py +1 -1
  26. maxframe/core/graph/builder/__init__.py +1 -1
  27. maxframe/core/graph/builder/base.py +1 -1
  28. maxframe/core/graph/builder/tileable.py +1 -1
  29. maxframe/core/graph/builder/utils.py +1 -1
  30. maxframe/core/graph/core.cpython-311-darwin.so +0 -0
  31. maxframe/core/graph/core.pyx +1 -1
  32. maxframe/core/graph/entity.py +1 -1
  33. maxframe/core/graph/tests/__init__.py +1 -1
  34. maxframe/core/graph/tests/test_graph.py +1 -1
  35. maxframe/core/mode.py +1 -1
  36. maxframe/core/operator/__init__.py +1 -1
  37. maxframe/core/operator/base.py +1 -1
  38. maxframe/core/operator/core.py +1 -1
  39. maxframe/core/operator/fetch.py +1 -1
  40. maxframe/core/operator/objects.py +1 -1
  41. maxframe/core/operator/shuffle.py +1 -1
  42. maxframe/core/operator/tests/__init__.py +1 -1
  43. maxframe/core/operator/tests/test_core.py +1 -1
  44. maxframe/core/operator/utils.py +1 -1
  45. maxframe/core/tests/__init__.py +1 -1
  46. maxframe/core/tests/test_mode.py +1 -1
  47. maxframe/dataframe/__init__.py +3 -3
  48. maxframe/dataframe/accessors/__init__.py +15 -0
  49. maxframe/dataframe/accessors/datetime_/__init__.py +32 -0
  50. maxframe/dataframe/accessors/datetime_/accessor.py +67 -0
  51. maxframe/dataframe/{misc/datetimes.py → accessors/datetime_/core.py} +9 -9
  52. maxframe/dataframe/{plotting → accessors/datetime_}/tests/__init__.py +1 -1
  53. maxframe/dataframe/accessors/datetime_/tests/test_datetime_accessor.py +41 -0
  54. maxframe/dataframe/accessors/dict_/__init__.py +43 -0
  55. maxframe/dataframe/accessors/dict_/accessor.py +38 -0
  56. maxframe/dataframe/accessors/dict_/contains.py +81 -0
  57. maxframe/dataframe/accessors/dict_/getitem.py +144 -0
  58. maxframe/dataframe/accessors/dict_/length.py +72 -0
  59. maxframe/dataframe/accessors/dict_/remove.py +87 -0
  60. maxframe/dataframe/accessors/dict_/setitem.py +88 -0
  61. maxframe/dataframe/accessors/dict_/tests/__init__.py +13 -0
  62. maxframe/dataframe/accessors/dict_/tests/test_dict_accessor.py +130 -0
  63. maxframe/dataframe/{plotting → accessors/plotting}/__init__.py +4 -6
  64. maxframe/dataframe/{plotting → accessors/plotting}/core.py +3 -3
  65. maxframe/dataframe/accessors/plotting/tests/__init__.py +13 -0
  66. maxframe/dataframe/{plotting/tests/test_plotting.py → accessors/plotting/tests/test_plotting_accessor.py} +6 -6
  67. maxframe/dataframe/accessors/string_/__init__.py +32 -0
  68. maxframe/dataframe/{misc → accessors/string_}/accessor.py +4 -65
  69. maxframe/dataframe/{misc/string_.py → accessors/string_/core.py} +20 -20
  70. maxframe/dataframe/accessors/string_/tests/__init__.py +13 -0
  71. maxframe/dataframe/accessors/string_/tests/test_string_accessor.py +73 -0
  72. maxframe/dataframe/arithmetic/__init__.py +1 -1
  73. maxframe/dataframe/arithmetic/abs.py +1 -1
  74. maxframe/dataframe/arithmetic/add.py +1 -1
  75. maxframe/dataframe/arithmetic/arccos.py +1 -1
  76. maxframe/dataframe/arithmetic/arccosh.py +1 -1
  77. maxframe/dataframe/arithmetic/arcsin.py +1 -1
  78. maxframe/dataframe/arithmetic/arcsinh.py +1 -1
  79. maxframe/dataframe/arithmetic/arctan.py +1 -1
  80. maxframe/dataframe/arithmetic/arctanh.py +1 -1
  81. maxframe/dataframe/arithmetic/around.py +1 -1
  82. maxframe/dataframe/arithmetic/bitwise_and.py +1 -1
  83. maxframe/dataframe/arithmetic/bitwise_or.py +1 -1
  84. maxframe/dataframe/arithmetic/bitwise_xor.py +1 -1
  85. maxframe/dataframe/arithmetic/ceil.py +1 -1
  86. maxframe/dataframe/arithmetic/core.py +1 -1
  87. maxframe/dataframe/arithmetic/cos.py +1 -1
  88. maxframe/dataframe/arithmetic/cosh.py +1 -1
  89. maxframe/dataframe/arithmetic/degrees.py +1 -1
  90. maxframe/dataframe/arithmetic/docstring.py +1 -1
  91. maxframe/dataframe/arithmetic/equal.py +1 -1
  92. maxframe/dataframe/arithmetic/exp.py +1 -1
  93. maxframe/dataframe/arithmetic/exp2.py +1 -1
  94. maxframe/dataframe/arithmetic/expm1.py +1 -1
  95. maxframe/dataframe/arithmetic/floor.py +1 -1
  96. maxframe/dataframe/arithmetic/floordiv.py +1 -1
  97. maxframe/dataframe/arithmetic/greater.py +1 -1
  98. maxframe/dataframe/arithmetic/greater_equal.py +1 -1
  99. maxframe/dataframe/arithmetic/invert.py +1 -1
  100. maxframe/dataframe/arithmetic/is_ufuncs.py +1 -1
  101. maxframe/dataframe/arithmetic/less.py +1 -1
  102. maxframe/dataframe/arithmetic/less_equal.py +1 -1
  103. maxframe/dataframe/arithmetic/log.py +1 -1
  104. maxframe/dataframe/arithmetic/log10.py +1 -1
  105. maxframe/dataframe/arithmetic/log2.py +1 -1
  106. maxframe/dataframe/arithmetic/mod.py +1 -1
  107. maxframe/dataframe/arithmetic/multiply.py +1 -1
  108. maxframe/dataframe/arithmetic/negative.py +1 -1
  109. maxframe/dataframe/arithmetic/not_equal.py +1 -1
  110. maxframe/dataframe/arithmetic/power.py +1 -1
  111. maxframe/dataframe/arithmetic/radians.py +1 -1
  112. maxframe/dataframe/arithmetic/sin.py +1 -1
  113. maxframe/dataframe/arithmetic/sinh.py +1 -1
  114. maxframe/dataframe/arithmetic/sqrt.py +1 -1
  115. maxframe/dataframe/arithmetic/subtract.py +1 -1
  116. maxframe/dataframe/arithmetic/tan.py +1 -1
  117. maxframe/dataframe/arithmetic/tanh.py +1 -1
  118. maxframe/dataframe/arithmetic/tests/__init__.py +1 -1
  119. maxframe/dataframe/arithmetic/tests/test_arithmetic.py +1 -1
  120. maxframe/dataframe/arithmetic/truediv.py +1 -1
  121. maxframe/dataframe/arithmetic/trunc.py +1 -1
  122. maxframe/dataframe/arrays.py +1 -1
  123. maxframe/dataframe/core.py +1 -1
  124. maxframe/dataframe/datasource/__init__.py +1 -1
  125. maxframe/dataframe/datasource/core.py +1 -1
  126. maxframe/dataframe/datasource/dataframe.py +1 -1
  127. maxframe/dataframe/datasource/date_range.py +1 -1
  128. maxframe/dataframe/datasource/from_index.py +1 -1
  129. maxframe/dataframe/datasource/from_records.py +1 -1
  130. maxframe/dataframe/datasource/from_tensor.py +1 -1
  131. maxframe/dataframe/datasource/index.py +1 -1
  132. maxframe/dataframe/datasource/read_csv.py +1 -1
  133. maxframe/dataframe/datasource/read_odps_query.py +45 -16
  134. maxframe/dataframe/datasource/read_odps_table.py +1 -1
  135. maxframe/dataframe/datasource/read_parquet.py +1 -1
  136. maxframe/dataframe/datasource/series.py +1 -1
  137. maxframe/dataframe/datasource/tests/__init__.py +1 -1
  138. maxframe/dataframe/datasource/tests/test_datasource.py +55 -8
  139. maxframe/dataframe/datastore/__init__.py +1 -1
  140. maxframe/dataframe/datastore/core.py +1 -1
  141. maxframe/dataframe/datastore/tests/__init__.py +1 -1
  142. maxframe/dataframe/datastore/tests/test_to_odps.py +1 -1
  143. maxframe/dataframe/datastore/to_csv.py +1 -1
  144. maxframe/dataframe/datastore/to_odps.py +1 -1
  145. maxframe/dataframe/extensions/__init__.py +2 -2
  146. maxframe/dataframe/extensions/accessor.py +6 -22
  147. maxframe/dataframe/extensions/apply_chunk.py +86 -1
  148. maxframe/dataframe/extensions/flatjson.py +1 -1
  149. maxframe/dataframe/extensions/flatmap.py +1 -1
  150. maxframe/dataframe/extensions/reshuffle.py +1 -1
  151. maxframe/dataframe/extensions/tests/__init__.py +1 -1
  152. maxframe/dataframe/extensions/tests/test_apply_chunk.py +1 -1
  153. maxframe/dataframe/extensions/tests/test_extensions.py +1 -1
  154. maxframe/dataframe/fetch/__init__.py +1 -1
  155. maxframe/dataframe/fetch/core.py +1 -1
  156. maxframe/dataframe/groupby/__init__.py +1 -1
  157. maxframe/dataframe/groupby/aggregation.py +1 -1
  158. maxframe/dataframe/groupby/apply.py +1 -1
  159. maxframe/dataframe/groupby/core.py +1 -1
  160. maxframe/dataframe/groupby/cum.py +1 -1
  161. maxframe/dataframe/groupby/fill.py +1 -1
  162. maxframe/dataframe/groupby/getitem.py +1 -1
  163. maxframe/dataframe/groupby/head.py +1 -1
  164. maxframe/dataframe/groupby/sample.py +1 -1
  165. maxframe/dataframe/groupby/tests/__init__.py +1 -1
  166. maxframe/dataframe/groupby/tests/test_groupby.py +1 -1
  167. maxframe/dataframe/groupby/transform.py +1 -1
  168. maxframe/dataframe/indexing/__init__.py +1 -1
  169. maxframe/dataframe/indexing/add_prefix_suffix.py +1 -1
  170. maxframe/dataframe/indexing/align.py +1 -1
  171. maxframe/dataframe/indexing/at.py +1 -1
  172. maxframe/dataframe/indexing/getitem.py +1 -1
  173. maxframe/dataframe/indexing/iat.py +1 -1
  174. maxframe/dataframe/indexing/iloc.py +1 -1
  175. maxframe/dataframe/indexing/insert.py +1 -1
  176. maxframe/dataframe/indexing/loc.py +1 -1
  177. maxframe/dataframe/indexing/reindex.py +1 -1
  178. maxframe/dataframe/indexing/rename.py +1 -1
  179. maxframe/dataframe/indexing/rename_axis.py +1 -1
  180. maxframe/dataframe/indexing/reset_index.py +1 -1
  181. maxframe/dataframe/indexing/sample.py +1 -1
  182. maxframe/dataframe/indexing/set_axis.py +1 -1
  183. maxframe/dataframe/indexing/set_index.py +1 -1
  184. maxframe/dataframe/indexing/setitem.py +1 -1
  185. maxframe/dataframe/indexing/tests/__init__.py +1 -1
  186. maxframe/dataframe/indexing/tests/test_indexing.py +1 -1
  187. maxframe/dataframe/indexing/where.py +1 -1
  188. maxframe/dataframe/initializer.py +1 -1
  189. maxframe/dataframe/merge/__init__.py +1 -1
  190. maxframe/dataframe/merge/append.py +1 -1
  191. maxframe/dataframe/merge/concat.py +1 -1
  192. maxframe/dataframe/merge/merge.py +1 -1
  193. maxframe/dataframe/merge/tests/__init__.py +1 -1
  194. maxframe/dataframe/merge/tests/test_merge.py +1 -1
  195. maxframe/dataframe/misc/__init__.py +1 -16
  196. maxframe/dataframe/misc/_duplicate.py +1 -1
  197. maxframe/dataframe/misc/apply.py +74 -1
  198. maxframe/dataframe/misc/astype.py +1 -1
  199. maxframe/dataframe/misc/case_when.py +1 -1
  200. maxframe/dataframe/misc/check_monotonic.py +1 -1
  201. maxframe/dataframe/misc/cut.py +6 -4
  202. maxframe/dataframe/misc/describe.py +1 -1
  203. maxframe/dataframe/misc/diff.py +1 -1
  204. maxframe/dataframe/misc/drop.py +1 -1
  205. maxframe/dataframe/misc/drop_duplicates.py +7 -4
  206. maxframe/dataframe/misc/duplicated.py +1 -1
  207. maxframe/dataframe/misc/eval.py +1 -1
  208. maxframe/dataframe/misc/explode.py +1 -1
  209. maxframe/dataframe/misc/get_dummies.py +1 -1
  210. maxframe/dataframe/misc/isin.py +1 -1
  211. maxframe/dataframe/misc/map.py +1 -1
  212. maxframe/dataframe/misc/melt.py +1 -1
  213. maxframe/dataframe/misc/memory_usage.py +1 -1
  214. maxframe/dataframe/misc/pct_change.py +1 -1
  215. maxframe/dataframe/misc/pivot_table.py +1 -1
  216. maxframe/dataframe/misc/qcut.py +1 -1
  217. maxframe/dataframe/misc/select_dtypes.py +1 -1
  218. maxframe/dataframe/misc/shift.py +1 -1
  219. maxframe/dataframe/misc/stack.py +1 -1
  220. maxframe/dataframe/misc/tests/__init__.py +1 -1
  221. maxframe/dataframe/misc/tests/test_misc.py +1 -76
  222. maxframe/dataframe/misc/to_numeric.py +1 -1
  223. maxframe/dataframe/misc/transform.py +1 -1
  224. maxframe/dataframe/misc/transpose.py +1 -1
  225. maxframe/dataframe/misc/value_counts.py +1 -1
  226. maxframe/dataframe/missing/__init__.py +1 -1
  227. maxframe/dataframe/missing/checkna.py +1 -1
  228. maxframe/dataframe/missing/dropna.py +1 -1
  229. maxframe/dataframe/missing/fillna.py +1 -1
  230. maxframe/dataframe/missing/replace.py +1 -1
  231. maxframe/dataframe/missing/tests/__init__.py +1 -1
  232. maxframe/dataframe/missing/tests/test_missing.py +1 -1
  233. maxframe/dataframe/operators.py +1 -1
  234. maxframe/dataframe/reduction/__init__.py +1 -1
  235. maxframe/dataframe/reduction/aggregation.py +1 -1
  236. maxframe/dataframe/reduction/all.py +1 -1
  237. maxframe/dataframe/reduction/any.py +1 -1
  238. maxframe/dataframe/reduction/core.py +1 -1
  239. maxframe/dataframe/reduction/count.py +1 -1
  240. maxframe/dataframe/reduction/cummax.py +1 -1
  241. maxframe/dataframe/reduction/cummin.py +1 -1
  242. maxframe/dataframe/reduction/cumprod.py +1 -1
  243. maxframe/dataframe/reduction/cumsum.py +1 -1
  244. maxframe/dataframe/reduction/custom_reduction.py +1 -1
  245. maxframe/dataframe/reduction/kurtosis.py +1 -1
  246. maxframe/dataframe/reduction/max.py +1 -1
  247. maxframe/dataframe/reduction/mean.py +1 -1
  248. maxframe/dataframe/reduction/median.py +1 -1
  249. maxframe/dataframe/reduction/min.py +1 -1
  250. maxframe/dataframe/reduction/nunique.py +1 -1
  251. maxframe/dataframe/reduction/prod.py +1 -1
  252. maxframe/dataframe/reduction/reduction_size.py +1 -1
  253. maxframe/dataframe/reduction/sem.py +1 -1
  254. maxframe/dataframe/reduction/skew.py +1 -1
  255. maxframe/dataframe/reduction/std.py +1 -1
  256. maxframe/dataframe/reduction/str_concat.py +1 -1
  257. maxframe/dataframe/reduction/sum.py +1 -1
  258. maxframe/dataframe/reduction/tests/__init__.py +1 -1
  259. maxframe/dataframe/reduction/tests/test_reduction.py +1 -1
  260. maxframe/dataframe/reduction/unique.py +1 -1
  261. maxframe/dataframe/reduction/var.py +1 -1
  262. maxframe/dataframe/sort/__init__.py +1 -1
  263. maxframe/dataframe/sort/core.py +1 -1
  264. maxframe/dataframe/sort/sort_index.py +1 -1
  265. maxframe/dataframe/sort/sort_values.py +1 -1
  266. maxframe/dataframe/sort/tests/__init__.py +1 -1
  267. maxframe/dataframe/sort/tests/test_sort.py +1 -1
  268. maxframe/dataframe/statistics/__init__.py +1 -1
  269. maxframe/dataframe/statistics/corr.py +1 -1
  270. maxframe/dataframe/statistics/quantile.py +1 -1
  271. maxframe/dataframe/statistics/tests/__init__.py +1 -1
  272. maxframe/dataframe/statistics/tests/test_statistics.py +1 -1
  273. maxframe/dataframe/tests/__init__.py +1 -1
  274. maxframe/dataframe/tests/test_initializer.py +1 -1
  275. maxframe/dataframe/tests/test_utils.py +36 -2
  276. maxframe/dataframe/tseries/__init__.py +1 -1
  277. maxframe/dataframe/tseries/tests/__init__.py +1 -1
  278. maxframe/dataframe/tseries/tests/test_tseries.py +1 -1
  279. maxframe/dataframe/tseries/to_datetime.py +1 -1
  280. maxframe/dataframe/ufunc/__init__.py +1 -1
  281. maxframe/dataframe/ufunc/tensor.py +1 -1
  282. maxframe/dataframe/ufunc/ufunc.py +1 -1
  283. maxframe/dataframe/utils.py +22 -2
  284. maxframe/dataframe/window/__init__.py +1 -1
  285. maxframe/dataframe/window/aggregation.py +1 -1
  286. maxframe/dataframe/window/core.py +1 -1
  287. maxframe/dataframe/window/ewm.py +1 -1
  288. maxframe/dataframe/window/expanding.py +1 -1
  289. maxframe/dataframe/window/rolling.py +1 -1
  290. maxframe/dataframe/window/tests/__init__.py +1 -1
  291. maxframe/dataframe/window/tests/test_ewm.py +1 -1
  292. maxframe/dataframe/window/tests/test_expanding.py +1 -1
  293. maxframe/dataframe/window/tests/test_rolling.py +1 -1
  294. maxframe/env.py +1 -1
  295. maxframe/errors.py +5 -1
  296. maxframe/extension.py +5 -2
  297. maxframe/io/__init__.py +1 -1
  298. maxframe/io/objects/__init__.py +1 -1
  299. maxframe/io/objects/core.py +1 -1
  300. maxframe/io/objects/tensor.py +1 -1
  301. maxframe/io/objects/tests/__init__.py +1 -1
  302. maxframe/io/objects/tests/test_object_io.py +1 -1
  303. maxframe/io/odpsio/__init__.py +1 -1
  304. maxframe/io/odpsio/arrow.py +8 -4
  305. maxframe/io/odpsio/schema.py +75 -3
  306. maxframe/io/odpsio/tableio.py +10 -4
  307. maxframe/io/odpsio/tests/__init__.py +1 -1
  308. maxframe/io/odpsio/tests/test_arrow.py +46 -1
  309. maxframe/io/odpsio/tests/test_schema.py +19 -1
  310. maxframe/io/odpsio/tests/test_tableio.py +1 -1
  311. maxframe/io/odpsio/tests/test_volumeio.py +1 -1
  312. maxframe/io/odpsio/volumeio.py +1 -1
  313. maxframe/learn/__init__.py +1 -1
  314. maxframe/learn/contrib/__init__.py +1 -1
  315. maxframe/learn/contrib/graph/__init__.py +1 -1
  316. maxframe/learn/contrib/graph/connected_components.py +1 -1
  317. maxframe/learn/contrib/graph/tests/__init__.py +1 -1
  318. maxframe/learn/contrib/graph/tests/test_connected_components.py +1 -1
  319. maxframe/learn/contrib/llm/__init__.py +1 -1
  320. maxframe/learn/contrib/llm/core.py +1 -1
  321. maxframe/learn/contrib/llm/models/__init__.py +1 -1
  322. maxframe/learn/contrib/llm/models/dashscope.py +1 -1
  323. maxframe/learn/contrib/llm/multi_modal.py +1 -1
  324. maxframe/learn/contrib/llm/text.py +1 -1
  325. maxframe/learn/contrib/pytorch/__init__.py +1 -1
  326. maxframe/learn/contrib/pytorch/run_function.py +1 -1
  327. maxframe/learn/contrib/pytorch/run_script.py +1 -1
  328. maxframe/learn/contrib/pytorch/tests/__init__.py +1 -1
  329. maxframe/learn/contrib/pytorch/tests/test_pytorch.py +1 -1
  330. maxframe/learn/contrib/utils.py +1 -1
  331. maxframe/learn/contrib/xgboost/__init__.py +1 -1
  332. maxframe/learn/contrib/xgboost/classifier.py +1 -1
  333. maxframe/learn/contrib/xgboost/core.py +1 -1
  334. maxframe/learn/contrib/xgboost/dmatrix.py +5 -2
  335. maxframe/learn/contrib/xgboost/predict.py +1 -1
  336. maxframe/learn/contrib/xgboost/regressor.py +1 -1
  337. maxframe/learn/contrib/xgboost/tests/__init__.py +1 -1
  338. maxframe/learn/contrib/xgboost/tests/test_core.py +1 -1
  339. maxframe/learn/contrib/xgboost/train.py +1 -1
  340. maxframe/learn/core.py +1 -1
  341. maxframe/learn/utils/__init__.py +1 -1
  342. maxframe/learn/utils/core.py +1 -1
  343. maxframe/lib/__init__.py +1 -1
  344. maxframe/lib/aio/__init__.py +1 -1
  345. maxframe/lib/aio/_runners.py +1 -1
  346. maxframe/lib/aio/_threads.py +1 -1
  347. maxframe/lib/aio/base.py +1 -1
  348. maxframe/lib/aio/file.py +1 -1
  349. maxframe/lib/aio/isolation.py +1 -1
  350. maxframe/lib/aio/lru.py +1 -1
  351. maxframe/lib/aio/parallelism.py +1 -1
  352. maxframe/lib/aio/tests/__init__.py +1 -1
  353. maxframe/lib/aio/tests/test_aio_file.py +1 -1
  354. maxframe/lib/compression.py +1 -1
  355. maxframe/lib/cython/__init__.py +1 -1
  356. maxframe/lib/cython/libcpp.pxd +1 -1
  357. maxframe/lib/dtypes_extension/__init__.py +14 -0
  358. maxframe/lib/dtypes_extension/dtypes.py +91 -0
  359. maxframe/lib/dtypes_extension/tests/__init__.py +13 -0
  360. maxframe/lib/dtypes_extension/tests/test_dtypes.py +68 -0
  361. maxframe/lib/filesystem/__init__.py +1 -1
  362. maxframe/lib/filesystem/_glob.py +1 -1
  363. maxframe/lib/filesystem/_oss_lib/__init__.py +1 -1
  364. maxframe/lib/filesystem/_oss_lib/common.py +1 -1
  365. maxframe/lib/filesystem/_oss_lib/glob.py +1 -1
  366. maxframe/lib/filesystem/_oss_lib/handle.py +1 -1
  367. maxframe/lib/filesystem/arrow.py +1 -1
  368. maxframe/lib/filesystem/base.py +1 -1
  369. maxframe/lib/filesystem/core.py +1 -1
  370. maxframe/lib/filesystem/fsmap.py +1 -1
  371. maxframe/lib/filesystem/hdfs.py +1 -1
  372. maxframe/lib/filesystem/local.py +1 -1
  373. maxframe/lib/filesystem/oss.py +1 -1
  374. maxframe/lib/filesystem/tests/__init__.py +1 -1
  375. maxframe/lib/filesystem/tests/test_filesystem.py +6 -4
  376. maxframe/lib/filesystem/tests/test_oss.py +1 -1
  377. maxframe/lib/functools_compat.py +1 -1
  378. maxframe/lib/mmh3.cpython-311-darwin.so +0 -0
  379. maxframe/lib/mmh3.pyi +1 -1
  380. maxframe/lib/sparse/__init__.py +1 -1
  381. maxframe/lib/sparse/array.py +1 -1
  382. maxframe/lib/sparse/core.py +1 -1
  383. maxframe/lib/sparse/matrix.py +1 -1
  384. maxframe/lib/sparse/tests/__init__.py +1 -1
  385. maxframe/lib/sparse/tests/test_sparse.py +1 -1
  386. maxframe/lib/sparse/vector.py +1 -1
  387. maxframe/lib/tests/__init__.py +1 -1
  388. maxframe/lib/tests/test_wrapped_pickle.py +1 -1
  389. maxframe/lib/version.py +1 -1
  390. maxframe/lib/wrapped_pickle.py +1 -1
  391. maxframe/mixin.py +1 -1
  392. maxframe/opcodes.py +6 -1
  393. maxframe/protocol.py +1 -1
  394. maxframe/remote/__init__.py +1 -1
  395. maxframe/remote/core.py +1 -1
  396. maxframe/remote/run_script.py +1 -1
  397. maxframe/serialization/__init__.py +1 -1
  398. maxframe/serialization/arrow.py +1 -1
  399. maxframe/serialization/core.cpython-311-darwin.so +0 -0
  400. maxframe/serialization/core.pxd +1 -1
  401. maxframe/serialization/core.pyi +1 -1
  402. maxframe/serialization/core.pyx +9 -6
  403. maxframe/serialization/exception.py +1 -1
  404. maxframe/serialization/maxframe_objects.py +1 -1
  405. maxframe/serialization/numpy.py +1 -1
  406. maxframe/serialization/pandas.py +1 -1
  407. maxframe/serialization/scipy.py +1 -1
  408. maxframe/serialization/serializables/__init__.py +1 -1
  409. maxframe/serialization/serializables/core.py +95 -90
  410. maxframe/serialization/serializables/field.py +1 -1
  411. maxframe/serialization/serializables/field_type.py +1 -1
  412. maxframe/serialization/serializables/tests/__init__.py +1 -1
  413. maxframe/serialization/serializables/tests/test_field_type.py +1 -1
  414. maxframe/serialization/serializables/tests/test_serializable.py +1 -1
  415. maxframe/serialization/tests/__init__.py +1 -1
  416. maxframe/serialization/tests/test_serial.py +21 -3
  417. maxframe/session.py +1 -1
  418. maxframe/tensor/__init__.py +1 -1
  419. maxframe/tensor/arithmetic/__init__.py +1 -1
  420. maxframe/tensor/arithmetic/abs.py +1 -1
  421. maxframe/tensor/arithmetic/absolute.py +1 -1
  422. maxframe/tensor/arithmetic/add.py +1 -1
  423. maxframe/tensor/arithmetic/angle.py +1 -1
  424. maxframe/tensor/arithmetic/arccos.py +1 -1
  425. maxframe/tensor/arithmetic/arccosh.py +1 -1
  426. maxframe/tensor/arithmetic/arcsin.py +1 -1
  427. maxframe/tensor/arithmetic/arcsinh.py +1 -1
  428. maxframe/tensor/arithmetic/arctan.py +1 -1
  429. maxframe/tensor/arithmetic/arctan2.py +1 -1
  430. maxframe/tensor/arithmetic/arctanh.py +1 -1
  431. maxframe/tensor/arithmetic/around.py +1 -1
  432. maxframe/tensor/arithmetic/bitand.py +1 -1
  433. maxframe/tensor/arithmetic/bitor.py +1 -1
  434. maxframe/tensor/arithmetic/bitxor.py +1 -1
  435. maxframe/tensor/arithmetic/cbrt.py +1 -1
  436. maxframe/tensor/arithmetic/ceil.py +1 -1
  437. maxframe/tensor/arithmetic/clip.py +1 -1
  438. maxframe/tensor/arithmetic/conj.py +1 -1
  439. maxframe/tensor/arithmetic/copysign.py +1 -1
  440. maxframe/tensor/arithmetic/core.py +1 -1
  441. maxframe/tensor/arithmetic/cos.py +1 -1
  442. maxframe/tensor/arithmetic/cosh.py +1 -1
  443. maxframe/tensor/arithmetic/deg2rad.py +1 -1
  444. maxframe/tensor/arithmetic/degrees.py +1 -1
  445. maxframe/tensor/arithmetic/divide.py +1 -1
  446. maxframe/tensor/arithmetic/equal.py +1 -1
  447. maxframe/tensor/arithmetic/exp.py +1 -1
  448. maxframe/tensor/arithmetic/exp2.py +1 -1
  449. maxframe/tensor/arithmetic/expm1.py +1 -1
  450. maxframe/tensor/arithmetic/fabs.py +1 -1
  451. maxframe/tensor/arithmetic/fix.py +1 -1
  452. maxframe/tensor/arithmetic/float_power.py +1 -1
  453. maxframe/tensor/arithmetic/floor.py +1 -1
  454. maxframe/tensor/arithmetic/floordiv.py +1 -1
  455. maxframe/tensor/arithmetic/fmax.py +1 -1
  456. maxframe/tensor/arithmetic/fmin.py +1 -1
  457. maxframe/tensor/arithmetic/fmod.py +1 -1
  458. maxframe/tensor/arithmetic/frexp.py +1 -1
  459. maxframe/tensor/arithmetic/greater.py +1 -1
  460. maxframe/tensor/arithmetic/greater_equal.py +1 -1
  461. maxframe/tensor/arithmetic/hypot.py +1 -1
  462. maxframe/tensor/arithmetic/i0.py +1 -1
  463. maxframe/tensor/arithmetic/imag.py +1 -1
  464. maxframe/tensor/arithmetic/invert.py +1 -1
  465. maxframe/tensor/arithmetic/isclose.py +1 -1
  466. maxframe/tensor/arithmetic/iscomplex.py +1 -1
  467. maxframe/tensor/arithmetic/isfinite.py +1 -1
  468. maxframe/tensor/arithmetic/isinf.py +1 -1
  469. maxframe/tensor/arithmetic/isnan.py +1 -1
  470. maxframe/tensor/arithmetic/isreal.py +1 -1
  471. maxframe/tensor/arithmetic/ldexp.py +1 -1
  472. maxframe/tensor/arithmetic/less.py +1 -1
  473. maxframe/tensor/arithmetic/less_equal.py +1 -1
  474. maxframe/tensor/arithmetic/log.py +1 -1
  475. maxframe/tensor/arithmetic/log10.py +1 -1
  476. maxframe/tensor/arithmetic/log1p.py +1 -1
  477. maxframe/tensor/arithmetic/log2.py +1 -1
  478. maxframe/tensor/arithmetic/logaddexp.py +1 -1
  479. maxframe/tensor/arithmetic/logaddexp2.py +1 -1
  480. maxframe/tensor/arithmetic/logical_and.py +1 -1
  481. maxframe/tensor/arithmetic/logical_not.py +1 -1
  482. maxframe/tensor/arithmetic/logical_or.py +1 -1
  483. maxframe/tensor/arithmetic/logical_xor.py +1 -1
  484. maxframe/tensor/arithmetic/lshift.py +1 -1
  485. maxframe/tensor/arithmetic/maximum.py +1 -1
  486. maxframe/tensor/arithmetic/minimum.py +1 -1
  487. maxframe/tensor/arithmetic/mod.py +1 -1
  488. maxframe/tensor/arithmetic/modf.py +1 -1
  489. maxframe/tensor/arithmetic/multiply.py +1 -1
  490. maxframe/tensor/arithmetic/nan_to_num.py +1 -1
  491. maxframe/tensor/arithmetic/negative.py +1 -1
  492. maxframe/tensor/arithmetic/nextafter.py +1 -1
  493. maxframe/tensor/arithmetic/not_equal.py +1 -1
  494. maxframe/tensor/arithmetic/positive.py +1 -1
  495. maxframe/tensor/arithmetic/power.py +1 -1
  496. maxframe/tensor/arithmetic/rad2deg.py +1 -1
  497. maxframe/tensor/arithmetic/radians.py +1 -1
  498. maxframe/tensor/arithmetic/real.py +1 -1
  499. maxframe/tensor/arithmetic/reciprocal.py +1 -1
  500. maxframe/tensor/arithmetic/rint.py +1 -1
  501. maxframe/tensor/arithmetic/rshift.py +1 -1
  502. maxframe/tensor/arithmetic/setimag.py +1 -1
  503. maxframe/tensor/arithmetic/setreal.py +1 -1
  504. maxframe/tensor/arithmetic/sign.py +1 -1
  505. maxframe/tensor/arithmetic/signbit.py +1 -1
  506. maxframe/tensor/arithmetic/sin.py +1 -1
  507. maxframe/tensor/arithmetic/sinc.py +1 -1
  508. maxframe/tensor/arithmetic/sinh.py +1 -1
  509. maxframe/tensor/arithmetic/spacing.py +1 -1
  510. maxframe/tensor/arithmetic/sqrt.py +1 -1
  511. maxframe/tensor/arithmetic/square.py +1 -1
  512. maxframe/tensor/arithmetic/subtract.py +1 -1
  513. maxframe/tensor/arithmetic/tan.py +1 -1
  514. maxframe/tensor/arithmetic/tanh.py +1 -1
  515. maxframe/tensor/arithmetic/tests/__init__.py +1 -1
  516. maxframe/tensor/arithmetic/tests/test_arithmetic.py +1 -1
  517. maxframe/tensor/arithmetic/truediv.py +1 -1
  518. maxframe/tensor/arithmetic/trunc.py +1 -1
  519. maxframe/tensor/arithmetic/utils.py +1 -1
  520. maxframe/tensor/array_utils.py +1 -1
  521. maxframe/tensor/core.py +1 -1
  522. maxframe/tensor/datasource/__init__.py +1 -1
  523. maxframe/tensor/datasource/arange.py +1 -1
  524. maxframe/tensor/datasource/array.py +1 -1
  525. maxframe/tensor/datasource/core.py +1 -1
  526. maxframe/tensor/datasource/empty.py +1 -1
  527. maxframe/tensor/datasource/from_dataframe.py +1 -1
  528. maxframe/tensor/datasource/from_dense.py +1 -1
  529. maxframe/tensor/datasource/from_sparse.py +1 -1
  530. maxframe/tensor/datasource/full.py +1 -1
  531. maxframe/tensor/datasource/ones.py +1 -1
  532. maxframe/tensor/datasource/scalar.py +1 -1
  533. maxframe/tensor/datasource/tests/__init__.py +1 -1
  534. maxframe/tensor/datasource/tests/test_datasource.py +1 -1
  535. maxframe/tensor/datasource/zeros.py +1 -1
  536. maxframe/tensor/fetch/__init__.py +1 -1
  537. maxframe/tensor/fetch/core.py +1 -1
  538. maxframe/tensor/indexing/__init__.py +1 -1
  539. maxframe/tensor/indexing/choose.py +1 -1
  540. maxframe/tensor/indexing/compress.py +1 -1
  541. maxframe/tensor/indexing/core.py +1 -1
  542. maxframe/tensor/indexing/extract.py +1 -1
  543. maxframe/tensor/indexing/fill_diagonal.py +1 -1
  544. maxframe/tensor/indexing/flatnonzero.py +1 -1
  545. maxframe/tensor/indexing/getitem.py +1 -1
  546. maxframe/tensor/indexing/nonzero.py +1 -1
  547. maxframe/tensor/indexing/setitem.py +1 -1
  548. maxframe/tensor/indexing/slice.py +1 -1
  549. maxframe/tensor/indexing/take.py +1 -1
  550. maxframe/tensor/indexing/tests/__init__.py +1 -1
  551. maxframe/tensor/indexing/tests/test_indexing.py +1 -1
  552. maxframe/tensor/indexing/unravel_index.py +1 -1
  553. maxframe/tensor/merge/__init__.py +1 -1
  554. maxframe/tensor/merge/concatenate.py +1 -1
  555. maxframe/tensor/merge/stack.py +1 -1
  556. maxframe/tensor/merge/tests/__init__.py +1 -1
  557. maxframe/tensor/merge/tests/test_merge.py +1 -1
  558. maxframe/tensor/merge/vstack.py +1 -1
  559. maxframe/tensor/misc/__init__.py +1 -1
  560. maxframe/tensor/misc/astype.py +1 -1
  561. maxframe/tensor/misc/atleast_1d.py +1 -1
  562. maxframe/tensor/misc/atleast_2d.py +1 -1
  563. maxframe/tensor/misc/atleast_3d.py +1 -1
  564. maxframe/tensor/misc/broadcast_to.py +1 -1
  565. maxframe/tensor/misc/ravel.py +1 -1
  566. maxframe/tensor/misc/tests/__init__.py +1 -1
  567. maxframe/tensor/misc/tests/test_misc.py +1 -1
  568. maxframe/tensor/misc/transpose.py +1 -1
  569. maxframe/tensor/misc/unique.py +1 -1
  570. maxframe/tensor/misc/where.py +1 -1
  571. maxframe/tensor/operators.py +1 -1
  572. maxframe/tensor/random/__init__.py +1 -1
  573. maxframe/tensor/random/beta.py +1 -1
  574. maxframe/tensor/random/binomial.py +1 -1
  575. maxframe/tensor/random/bytes.py +1 -1
  576. maxframe/tensor/random/chisquare.py +1 -1
  577. maxframe/tensor/random/choice.py +1 -1
  578. maxframe/tensor/random/core.py +1 -1
  579. maxframe/tensor/random/dirichlet.py +1 -1
  580. maxframe/tensor/random/exponential.py +1 -1
  581. maxframe/tensor/random/f.py +1 -1
  582. maxframe/tensor/random/gamma.py +1 -1
  583. maxframe/tensor/random/geometric.py +1 -1
  584. maxframe/tensor/random/gumbel.py +1 -1
  585. maxframe/tensor/random/hypergeometric.py +1 -1
  586. maxframe/tensor/random/laplace.py +1 -1
  587. maxframe/tensor/random/logistic.py +1 -1
  588. maxframe/tensor/random/lognormal.py +1 -1
  589. maxframe/tensor/random/logseries.py +1 -1
  590. maxframe/tensor/random/multinomial.py +1 -1
  591. maxframe/tensor/random/multivariate_normal.py +1 -1
  592. maxframe/tensor/random/negative_binomial.py +1 -1
  593. maxframe/tensor/random/noncentral_chisquare.py +1 -1
  594. maxframe/tensor/random/noncentral_f.py +1 -1
  595. maxframe/tensor/random/normal.py +1 -1
  596. maxframe/tensor/random/pareto.py +1 -1
  597. maxframe/tensor/random/permutation.py +1 -1
  598. maxframe/tensor/random/poisson.py +1 -1
  599. maxframe/tensor/random/power.py +1 -1
  600. maxframe/tensor/random/rand.py +1 -1
  601. maxframe/tensor/random/randint.py +1 -1
  602. maxframe/tensor/random/randn.py +1 -1
  603. maxframe/tensor/random/random_integers.py +1 -1
  604. maxframe/tensor/random/random_sample.py +1 -1
  605. maxframe/tensor/random/rayleigh.py +1 -1
  606. maxframe/tensor/random/shuffle.py +1 -1
  607. maxframe/tensor/random/standard_cauchy.py +1 -1
  608. maxframe/tensor/random/standard_exponential.py +1 -1
  609. maxframe/tensor/random/standard_gamma.py +1 -1
  610. maxframe/tensor/random/standard_normal.py +1 -1
  611. maxframe/tensor/random/standard_t.py +1 -1
  612. maxframe/tensor/random/tests/__init__.py +1 -1
  613. maxframe/tensor/random/tests/test_random.py +1 -1
  614. maxframe/tensor/random/triangular.py +1 -1
  615. maxframe/tensor/random/uniform.py +1 -1
  616. maxframe/tensor/random/vonmises.py +1 -1
  617. maxframe/tensor/random/wald.py +1 -1
  618. maxframe/tensor/random/weibull.py +1 -1
  619. maxframe/tensor/random/zipf.py +1 -1
  620. maxframe/tensor/rechunk/__init__.py +1 -1
  621. maxframe/tensor/rechunk/rechunk.py +1 -1
  622. maxframe/tensor/reduction/__init__.py +1 -1
  623. maxframe/tensor/reduction/all.py +1 -1
  624. maxframe/tensor/reduction/allclose.py +1 -1
  625. maxframe/tensor/reduction/any.py +1 -1
  626. maxframe/tensor/reduction/argmax.py +1 -1
  627. maxframe/tensor/reduction/argmin.py +1 -1
  628. maxframe/tensor/reduction/array_equal.py +1 -1
  629. maxframe/tensor/reduction/core.py +1 -1
  630. maxframe/tensor/reduction/count_nonzero.py +1 -1
  631. maxframe/tensor/reduction/cumprod.py +1 -1
  632. maxframe/tensor/reduction/cumsum.py +1 -1
  633. maxframe/tensor/reduction/max.py +1 -1
  634. maxframe/tensor/reduction/mean.py +1 -1
  635. maxframe/tensor/reduction/min.py +1 -1
  636. maxframe/tensor/reduction/nanargmax.py +1 -1
  637. maxframe/tensor/reduction/nanargmin.py +1 -1
  638. maxframe/tensor/reduction/nancumprod.py +1 -1
  639. maxframe/tensor/reduction/nancumsum.py +1 -1
  640. maxframe/tensor/reduction/nanmax.py +1 -1
  641. maxframe/tensor/reduction/nanmean.py +1 -1
  642. maxframe/tensor/reduction/nanmin.py +1 -1
  643. maxframe/tensor/reduction/nanprod.py +1 -1
  644. maxframe/tensor/reduction/nanstd.py +1 -1
  645. maxframe/tensor/reduction/nansum.py +1 -1
  646. maxframe/tensor/reduction/nanvar.py +1 -1
  647. maxframe/tensor/reduction/prod.py +1 -1
  648. maxframe/tensor/reduction/std.py +1 -1
  649. maxframe/tensor/reduction/sum.py +1 -1
  650. maxframe/tensor/reduction/tests/__init__.py +1 -1
  651. maxframe/tensor/reduction/tests/test_reduction.py +1 -1
  652. maxframe/tensor/reduction/var.py +1 -1
  653. maxframe/tensor/reshape/__init__.py +1 -1
  654. maxframe/tensor/reshape/reshape.py +1 -1
  655. maxframe/tensor/reshape/tests/__init__.py +1 -1
  656. maxframe/tensor/reshape/tests/test_reshape.py +1 -1
  657. maxframe/tensor/statistics/__init__.py +1 -1
  658. maxframe/tensor/statistics/percentile.py +1 -1
  659. maxframe/tensor/statistics/quantile.py +1 -1
  660. maxframe/tensor/ufunc/__init__.py +1 -1
  661. maxframe/tensor/ufunc/ufunc.py +1 -1
  662. maxframe/tensor/utils.py +1 -1
  663. maxframe/tests/__init__.py +1 -1
  664. maxframe/tests/test_codegen.py +1 -1
  665. maxframe/tests/test_protocol.py +1 -1
  666. maxframe/tests/test_utils.py +1 -1
  667. maxframe/tests/utils.py +1 -1
  668. maxframe/typing_.py +1 -1
  669. maxframe/udf.py +6 -1
  670. maxframe/utils.py +8 -1
  671. {maxframe-1.1.1.dist-info → maxframe-1.2.0.dist-info}/METADATA +3 -2
  672. maxframe-1.2.0.dist-info/RECORD +697 -0
  673. {maxframe-1.1.1.dist-info → maxframe-1.2.0.dist-info}/WHEEL +1 -1
  674. maxframe_client/__init__.py +1 -1
  675. maxframe_client/clients/__init__.py +1 -1
  676. maxframe_client/clients/framedriver.py +1 -1
  677. maxframe_client/conftest.py +1 -1
  678. maxframe_client/fetcher.py +1 -1
  679. maxframe_client/session/__init__.py +1 -1
  680. maxframe_client/session/consts.py +1 -1
  681. maxframe_client/session/graph.py +1 -1
  682. maxframe_client/session/odps.py +2 -1
  683. maxframe_client/session/task.py +1 -1
  684. maxframe_client/session/tests/__init__.py +1 -1
  685. maxframe_client/session/tests/test_task.py +1 -1
  686. maxframe_client/tests/__init__.py +1 -1
  687. maxframe_client/tests/test_fetcher.py +1 -1
  688. maxframe_client/tests/test_session.py +1 -1
  689. maxframe-1.1.1.dist-info/RECORD +0 -675
  690. {maxframe-1.1.1.dist-info → maxframe-1.2.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,13 @@
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
@@ -0,0 +1,68 @@
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ import numpy as np
16
+ import pandas as pd
17
+ import pyarrow as pa
18
+ import pytest
19
+
20
+ from ....utils import ARROW_DTYPE_NOT_SUPPORTED
21
+ from ..dtypes import dict_, infer_arrow_dtype, is_map_dtype
22
+
23
+ try:
24
+ from pandas import ArrowDtype
25
+ except:
26
+ ArrowDtype = None
27
+
28
+
29
+ @pytest.mark.skipif(
30
+ ARROW_DTYPE_NOT_SUPPORTED,
31
+ reason="pandas doesn't support ArrowDtype",
32
+ )
33
+ def test_map_dtype():
34
+ dt = dict_(pa.int64(), pa.string())
35
+ assert is_map_dtype(dt)
36
+
37
+ dt = pd.ArrowDtype(pa.list_(pa.int64()))
38
+ assert not is_map_dtype(dt)
39
+ assert not is_map_dtype(pd.Int64Dtype)
40
+
41
+
42
+ @pytest.mark.skipif(
43
+ ARROW_DTYPE_NOT_SUPPORTED,
44
+ reason="pandas doesn't support ArrowDtype",
45
+ )
46
+ @pytest.mark.parametrize(
47
+ "input_dtype, expected_type, expected_pa_dtype",
48
+ [
49
+ (
50
+ ArrowDtype(pa.int64()) if ArrowDtype else None,
51
+ ArrowDtype,
52
+ pa.int64(),
53
+ ), # pd.ArrowDtype
54
+ (np.dtype("int64"), ArrowDtype, pa.int64()), # np.dtype
55
+ (pd.CategoricalDtype(), pd.CategoricalDtype, None), # pa.DataType
56
+ (pd.Int64Dtype(), ArrowDtype, pa.int64()), # pd.ExtensionDtype
57
+ (
58
+ pd.DatetimeTZDtype("ns", "Asia/Shanghai"),
59
+ pa.TimestampType,
60
+ pa.timestamp("ns", "Asia/Shanghai"),
61
+ ),
62
+ ],
63
+ )
64
+ def test_infer_arrow_dtype(input_dtype, expected_type, expected_pa_dtype):
65
+ result = infer_arrow_dtype(input_dtype)
66
+ assert isinstance(result, expected_type)
67
+ if expected_type == ArrowDtype:
68
+ assert result.pyarrow_dtype == expected_pa_dtype
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -62,9 +62,11 @@ def test_local_filesystem():
62
62
 
63
63
  @pytest.mark.parametrize(
64
64
  "fs_type",
65
- [LocalFileSystem, ArrowBasedLocalFileSystem]
66
- if pa is not None
67
- else [LocalFileSystem],
65
+ (
66
+ [LocalFileSystem, ArrowBasedLocalFileSystem]
67
+ if pa is not None
68
+ else [LocalFileSystem]
69
+ ),
68
70
  )
69
71
  def test_filesystems(fs_type):
70
72
  fs = fs_type.get_instance()
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
Binary file
maxframe/lib/mmh3.pyi CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
3
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
3
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
3
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
3
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
3
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
3
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
3
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
maxframe/lib/version.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
maxframe/mixin.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
maxframe/opcodes.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -575,6 +575,11 @@ DATAFRAME_RESHUFFLE = 10001
575
575
  FLATMAP = 10002
576
576
  FLATJSON = 10003
577
577
  APPLY_CHUNK = 10004
578
+ SERIES_DICT_GETITEM = 10005
579
+ SERIES_DICT_SETITEM = 10006
580
+ SERIES_DICT_LENGTH = 10007
581
+ SERIES_DICT_REMOVE = 10008
582
+ SERIES_DICT_CONTAINS = 10009
578
583
 
579
584
  # MaxFrame internal operators
580
585
  DATAFRAME_PROJECTION_SAME_INDEX_MERGE = 100001
maxframe/protocol.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
maxframe/remote/core.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
1
1
  # distutils: language = c++
2
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
2
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -37,13 +37,9 @@ from .._utils import NamedType
37
37
  from .._utils cimport TypeDispatcher
38
38
 
39
39
  from ..lib import wrapped_pickle as pickle
40
+ from ..lib.dtypes_extension import ArrowDtype
40
41
  from ..utils import NoDefault, arrow_type_from_str, no_default
41
42
 
42
- try:
43
- from pandas import ArrowDtype
44
- except ImportError:
45
- ArrowDtype = type(None)
46
-
47
43
  # resolve pandas pickle compatibility between <1.2 and >=1.3
48
44
  try:
49
45
  from pandas.core.internals import blocks as pd_blocks
@@ -67,6 +63,7 @@ except ImportError:
67
63
  BUFFER_PICKLE_PROTOCOL = max(pickle.DEFAULT_PROTOCOL, 5)
68
64
  cdef bint HAS_PICKLE_BUFFER = pickle.HIGHEST_PROTOCOL >= 5
69
65
  cdef bint _PANDAS_HAS_MGR = hasattr(pd.Series([0]), "_mgr")
66
+ cdef bint _ARROW_DTYPE_NOT_SUPPORTED = ArrowDtype is None
70
67
 
71
68
 
72
69
  cdef TypeDispatcher _serial_dispatcher = TypeDispatcher()
@@ -728,6 +725,8 @@ cdef class DtypeSerializer(Serializer):
728
725
  dtype_new_order = list(fields)
729
726
  return [_TYPE_CHAR_DTYPE_NUMPY, desc, dtype_new_order], [], True
730
727
  elif isinstance(obj, ExtensionDtype):
728
+ if _ARROW_DTYPE_NOT_SUPPORTED:
729
+ raise ImportError("ArrowDtype is not supported in current environment")
731
730
  if isinstance(obj, ArrowDtype):
732
731
  return [_TYPE_CHAR_DTYPE_PANDAS_ARROW, str(obj.pyarrow_dtype)], [], True
733
732
  elif isinstance(obj, pd.CategoricalDtype):
@@ -756,12 +755,16 @@ cdef class DtypeSerializer(Serializer):
756
755
  dt = dt[serialized[2]]
757
756
  return dt
758
757
  elif ser_type == _TYPE_CHAR_DTYPE_PANDAS_ARROW:
758
+ if _ARROW_DTYPE_NOT_SUPPORTED:
759
+ raise ImportError("ArrowDtype is not supported in current environment")
759
760
  return ArrowDtype(arrow_type_from_str(serialized[1]))
760
761
  elif ser_type == _TYPE_CHAR_DTYPE_PANDAS_CATEGORICAL:
761
762
  return pd.CategoricalDtype(subs[0], serialized[1])
762
763
  elif ser_type == _TYPE_CHAR_DTYPE_PANDAS_INTERVAL:
763
764
  return pd.IntervalDtype(subs[0], serialized[1])
764
765
  elif ser_type == _TYPE_CHAR_DTYPE_PANDAS_EXTENSION:
766
+ if serialized[1] == "StringDtype": # for legacy pandas version
767
+ return pd.StringDtype()
765
768
  return pandas_dtype(serialized[1])
766
769
  else:
767
770
  raise NotImplementedError(f"Unknown serialization type {ser_type}")
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 1999-2024 Alibaba Group Holding Ltd.
1
+ # Copyright 1999-2025 Alibaba Group Holding Ltd.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.