maxframe 0.1.0b5__tar.gz → 1.0.0__tar.gz
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.
- {maxframe-0.1.0b5 → maxframe-1.0.0}/MANIFEST.in +1 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/PKG-INFO +1 -1
- maxframe-1.0.0/README.rst +73 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/codegen.py +10 -4
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/config/config.py +68 -10
- maxframe-1.0.0/maxframe/config/validators.py +88 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/__init__.py +2 -16
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/entity/__init__.py +1 -12
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/entity/executable.py +1 -1
- maxframe-1.0.0/maxframe/core/entity/objects.py +101 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/entity/output_types.py +0 -3
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/entity/tileables.py +5 -78
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/graph/__init__.py +2 -2
- {maxframe-0.1.0b5/maxframe/learn/contrib → maxframe-1.0.0/maxframe/core/graph/builder}/__init__.py +1 -3
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/graph/builder/base.py +5 -4
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/graph/builder/tileable.py +4 -4
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/graph/builder/utils.py +4 -8
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/graph/core.pyx +4 -4
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/graph/entity.py +9 -33
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/operator/__init__.py +2 -9
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/operator/base.py +3 -5
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/operator/objects.py +0 -9
- maxframe-1.0.0/maxframe/core/operator/utils.py +55 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/__init__.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/around.py +5 -17
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/core.py +15 -7
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/docstring.py +7 -33
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/equal.py +4 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/greater.py +4 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/greater_equal.py +4 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/less.py +2 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/less_equal.py +4 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/not_equal.py +4 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/core.py +31 -7
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/date_range.py +2 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/read_odps_query.py +117 -23
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/read_odps_table.py +6 -3
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datastore/to_odps.py +28 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/extensions/__init__.py +5 -0
- maxframe-1.0.0/maxframe/dataframe/extensions/flatjson.py +131 -0
- maxframe-1.0.0/maxframe/dataframe/extensions/flatmap.py +317 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/extensions/reshuffle.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/groupby/core.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/groupby/cum.py +0 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/groupby/fill.py +4 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/groupby/getitem.py +6 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/groupby/transform.py +5 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/align.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/loc.py +6 -4
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/rename.py +5 -28
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/sample.py +0 -1
- maxframe-1.0.0/maxframe/dataframe/indexing/set_index.py +128 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/initializer.py +11 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/merge/__init__.py +9 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/merge/concat.py +41 -31
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/merge/merge.py +237 -3
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/apply.py +5 -10
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/case_when.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/describe.py +2 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/drop_duplicates.py +8 -8
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/eval.py +4 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/memory_usage.py +2 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/pct_change.py +1 -83
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/transform.py +1 -30
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/value_counts.py +4 -17
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/missing/dropna.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/missing/fillna.py +5 -5
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/operators.py +1 -17
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/core.py +2 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/sort/sort_values.py +1 -11
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/statistics/corr.py +3 -3
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/statistics/quantile.py +13 -19
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/utils.py +26 -11
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/window/expanding.py +5 -3
- maxframe-0.1.0b5/maxframe/core/operator/fuse.py → maxframe-1.0.0/maxframe/errors.py +15 -10
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/extension.py +12 -0
- maxframe-1.0.0/maxframe/io/objects/__init__.py +24 -0
- maxframe-1.0.0/maxframe/io/objects/core.py +140 -0
- maxframe-1.0.0/maxframe/io/objects/tensor.py +76 -0
- {maxframe-0.1.0b5/maxframe → maxframe-1.0.0/maxframe/io}/odpsio/__init__.py +3 -1
- {maxframe-0.1.0b5/maxframe → maxframe-1.0.0/maxframe/io}/odpsio/arrow.py +42 -10
- {maxframe-0.1.0b5/maxframe → maxframe-1.0.0/maxframe/io}/odpsio/schema.py +38 -16
- maxframe-1.0.0/maxframe/io/odpsio/tableio.py +719 -0
- maxframe-1.0.0/maxframe/io/odpsio/volumeio.py +63 -0
- maxframe-1.0.0/maxframe/learn/contrib/__init__.py +19 -0
- maxframe-1.0.0/maxframe/learn/contrib/graph/__init__.py +15 -0
- maxframe-1.0.0/maxframe/learn/contrib/graph/connected_components.py +215 -0
- maxframe-1.0.0/maxframe/learn/contrib/llm/__init__.py +16 -0
- maxframe-1.0.0/maxframe/learn/contrib/llm/core.py +54 -0
- maxframe-1.0.0/maxframe/learn/contrib/llm/models/__init__.py +14 -0
- maxframe-1.0.0/maxframe/learn/contrib/llm/models/dashscope.py +73 -0
- maxframe-1.0.0/maxframe/learn/contrib/llm/multi_modal.py +42 -0
- maxframe-1.0.0/maxframe/learn/contrib/llm/text.py +42 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/xgboost/classifier.py +26 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/xgboost/core.py +87 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/xgboost/dmatrix.py +3 -6
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/xgboost/predict.py +29 -46
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/xgboost/regressor.py +3 -10
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/xgboost/train.py +29 -18
- maxframe-0.1.0b5/maxframe/errors.py → maxframe-1.0.0/maxframe/learn/core.py +7 -2
- maxframe-1.0.0/maxframe/lib/mmh3.pyi +43 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/wrapped_pickle.py +2 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/opcodes.py +8 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/protocol.py +154 -27
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/remote/core.py +4 -8
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/__init__.py +1 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/core.pxd +3 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/core.pyi +3 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/core.pyx +67 -26
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/exception.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/pandas.py +52 -17
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/serializables/core.py +180 -15
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/serializables/field_type.py +4 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/session.py +9 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/__init__.py +81 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/isclose.py +1 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/core.py +5 -136
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/array.py +3 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/full.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/flatnonzero.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/getitem.py +2 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/merge/__init__.py +2 -0
- maxframe-1.0.0/maxframe/tensor/merge/concatenate.py +101 -0
- maxframe-1.0.0/maxframe/tensor/merge/vstack.py +74 -0
- {maxframe-0.1.0b5/maxframe/tensor/base → maxframe-1.0.0/maxframe/tensor/misc}/__init__.py +2 -0
- {maxframe-0.1.0b5/maxframe/tensor/base → maxframe-1.0.0/maxframe/tensor/misc}/atleast_1d.py +1 -3
- maxframe-1.0.0/maxframe/tensor/misc/atleast_2d.py +70 -0
- maxframe-1.0.0/maxframe/tensor/misc/atleast_3d.py +85 -0
- {maxframe-0.1.0b5/maxframe/tensor/base → maxframe-1.0.0/maxframe/tensor/misc}/transpose.py +22 -18
- {maxframe-0.1.0b5/maxframe/tensor/base → maxframe-1.0.0/maxframe/tensor/misc}/unique.py +3 -3
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/operators.py +1 -7
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/core.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/count_nonzero.py +2 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/mean.py +1 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nanmean.py +1 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nanvar.py +2 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/var.py +2 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/statistics/quantile.py +2 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/utils.py +2 -22
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/typing_.py +4 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/udf.py +8 -9
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/utils.py +106 -86
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe.egg-info/PKG-INFO +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe.egg-info/SOURCES.txt +35 -18
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe.egg-info/requires.txt +2 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe_client/__init__.py +0 -1
- maxframe-1.0.0/maxframe_client/clients/__init__.py +13 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe_client/clients/framedriver.py +4 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe_client/fetcher.py +81 -74
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe_client/session/consts.py +3 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe_client/session/graph.py +8 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe_client/session/odps.py +194 -40
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe_client/session/task.py +94 -39
- {maxframe-0.1.0b5 → maxframe-1.0.0}/pyproject.toml +9 -5
- {maxframe-0.1.0b5 → maxframe-1.0.0}/setup.py +11 -2
- maxframe-0.1.0b5/maxframe/config/validators.py +0 -57
- maxframe-0.1.0b5/maxframe/core/entity/chunks.py +0 -68
- maxframe-0.1.0b5/maxframe/core/entity/fuse.py +0 -73
- maxframe-0.1.0b5/maxframe/core/entity/objects.py +0 -100
- maxframe-0.1.0b5/maxframe/core/graph/builder/__init__.py +0 -16
- maxframe-0.1.0b5/maxframe/core/graph/builder/chunk.py +0 -430
- maxframe-0.1.0b5/maxframe/dataframe/indexing/set_index.py +0 -61
- maxframe-0.1.0b5/maxframe/odpsio/tableio.py +0 -322
- maxframe-0.1.0b5/maxframe/odpsio/volumeio.py +0 -95
- maxframe-0.1.0b5/maxframe_client/clients/spe.py +0 -104
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/_utils.pxd +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/_utils.pyx +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/config/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/base.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/entity/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/entity/utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/mode.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/operator/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/operator/fetch.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/core/operator/shuffle.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/abs.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/add.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/arccos.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/arccosh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/arcsin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/arcsinh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/arctan.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/arctanh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/bitwise_and.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/bitwise_or.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/bitwise_xor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/ceil.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/cos.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/cosh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/degrees.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/exp.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/exp2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/expm1.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/floor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/floordiv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/invert.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/is_ufuncs.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/log.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/log10.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/log2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/mod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/multiply.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/negative.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/power.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/radians.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/sin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/sinh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/sqrt.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/subtract.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/tan.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/tanh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/truediv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arithmetic/trunc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/arrays.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/dataframe.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/from_index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/from_records.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/from_tensor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/read_csv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/read_parquet.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datasource/series.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datastore/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datastore/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/datastore/to_csv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/extensions/accessor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/fetch/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/fetch/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/groupby/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/groupby/aggregation.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/groupby/apply.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/groupby/head.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/groupby/sample.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/add_prefix_suffix.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/at.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/getitem.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/iat.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/iloc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/insert.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/reindex.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/rename_axis.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/reset_index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/set_axis.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/setitem.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/indexing/where.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/merge/append.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/_duplicate.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/accessor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/astype.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/check_monotonic.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/cut.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/datetimes.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/diff.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/drop.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/duplicated.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/explode.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/get_dummies.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/isin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/map.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/melt.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/pivot_table.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/qcut.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/select_dtypes.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/shift.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/stack.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/string_.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/to_numeric.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/misc/transpose.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/missing/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/missing/checkna.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/missing/replace.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/plotting/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/plotting/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/aggregation.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/all.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/any.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/count.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/cummax.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/cummin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/cumprod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/cumsum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/custom_reduction.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/kurtosis.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/max.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/mean.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/min.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/nunique.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/prod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/reduction_size.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/sem.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/skew.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/std.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/str_concat.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/sum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/unique.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/reduction/var.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/sort/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/sort/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/sort/sort_index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/statistics/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/tseries/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/tseries/to_datetime.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/ufunc/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/ufunc/tensor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/ufunc/ufunc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/window/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/window/aggregation.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/window/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/window/ewm.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/dataframe/window/rolling.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/env.py +0 -0
- {maxframe-0.1.0b5/maxframe/lib/cython → maxframe-1.0.0/maxframe/io}/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/pytorch/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/pytorch/run_function.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/pytorch/run_script.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/contrib/xgboost/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/utils/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/learn/utils/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/aio/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/aio/_runners.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/aio/_threads.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/aio/base.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/aio/file.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/aio/isolation.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/aio/lru.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/aio/parallelism.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/compression.py +0 -0
- {maxframe-0.1.0b5/maxframe/lib/filesystem/_oss_lib → maxframe-1.0.0/maxframe/lib/cython}/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/cython/libcpp.pxd +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/_glob.py +0 -0
- {maxframe-0.1.0b5/maxframe/tensor/statistics → maxframe-1.0.0/maxframe/lib/filesystem/_oss_lib}/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/_oss_lib/common.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/_oss_lib/glob.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/_oss_lib/handle.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/arrow.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/base.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/fsmap.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/hdfs.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/local.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/filesystem/oss.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/functools_compat.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/mmh3_src/MurmurHash3.cpp +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/mmh3_src/MurmurHash3.h +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/mmh3_src/mmh3module.cpp +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/sparse/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/sparse/array.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/sparse/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/sparse/matrix.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/sparse/vector.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/tblib/LICENSE +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/tblib/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/tblib/cpython.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/tblib/decorators.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/tblib/pickling_support.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/lib/version.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/mixin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/remote/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/remote/run_script.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/arrow.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/maxframe_objects.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/numpy.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/scipy.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/serializables/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/serialization/serializables/field.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/abs.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/absolute.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/add.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/angle.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/arccos.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/arccosh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/arcsin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/arcsinh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/arctan.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/arctan2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/arctanh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/around.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/bitand.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/bitor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/bitxor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/cbrt.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/ceil.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/clip.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/conj.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/copysign.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/cos.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/cosh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/deg2rad.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/degrees.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/divide.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/exp.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/exp2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/expm1.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/fabs.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/fix.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/float_power.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/floor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/floordiv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/fmax.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/fmin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/fmod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/frexp.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/greater.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/greater_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/hypot.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/i0.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/imag.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/invert.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/iscomplex.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/isfinite.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/isinf.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/isnan.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/isreal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/ldexp.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/less.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/less_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/log.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/log10.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/log1p.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/log2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/logaddexp.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/logaddexp2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/logical_and.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/logical_not.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/logical_or.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/logical_xor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/lshift.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/maximum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/minimum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/mod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/modf.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/multiply.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/nan_to_num.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/negative.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/nextafter.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/not_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/positive.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/power.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/rad2deg.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/radians.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/real.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/reciprocal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/rint.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/rshift.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/setimag.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/setreal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/sign.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/signbit.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/sin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/sinc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/sinh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/spacing.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/sqrt.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/square.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/subtract.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/tan.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/tanh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/truediv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/trunc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/arithmetic/utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/array_utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/arange.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/empty.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/from_dataframe.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/from_dense.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/from_sparse.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/ones.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/scalar.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/datasource/zeros.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/fetch/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/fetch/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/choose.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/compress.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/extract.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/fill_diagonal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/nonzero.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/setitem.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/slice.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/take.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/indexing/unravel_index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/merge/stack.py +0 -0
- {maxframe-0.1.0b5/maxframe/tensor/base → maxframe-1.0.0/maxframe/tensor/misc}/astype.py +0 -0
- {maxframe-0.1.0b5/maxframe/tensor/base → maxframe-1.0.0/maxframe/tensor/misc}/broadcast_to.py +0 -0
- {maxframe-0.1.0b5/maxframe/tensor/base → maxframe-1.0.0/maxframe/tensor/misc}/ravel.py +0 -0
- {maxframe-0.1.0b5/maxframe/tensor/base → maxframe-1.0.0/maxframe/tensor/misc}/where.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/beta.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/binomial.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/bytes.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/chisquare.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/choice.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/dirichlet.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/exponential.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/f.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/gamma.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/geometric.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/gumbel.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/hypergeometric.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/laplace.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/logistic.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/lognormal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/logseries.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/multinomial.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/multivariate_normal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/negative_binomial.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/noncentral_chisquare.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/noncentral_f.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/normal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/pareto.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/permutation.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/poisson.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/power.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/rand.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/randint.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/randn.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/random_integers.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/random_sample.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/rayleigh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/shuffle.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/standard_cauchy.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/standard_exponential.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/standard_gamma.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/standard_normal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/standard_t.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/triangular.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/uniform.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/vonmises.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/wald.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/weibull.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/random/zipf.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/rechunk/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/rechunk/rechunk.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/all.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/allclose.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/any.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/argmax.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/argmin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/array_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/cumprod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/cumsum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/max.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/min.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nanargmax.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nanargmin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nancumprod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nancumsum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nanmax.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nanmin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nanprod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nanstd.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/nansum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/prod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/std.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reduction/sum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reshape/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/reshape/reshape.py +0 -0
- {maxframe-0.1.0b5/maxframe_client/clients → maxframe-1.0.0/maxframe/tensor/statistics}/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/statistics/percentile.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/ufunc/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe/tensor/ufunc/ufunc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe.egg-info/dependency_links.txt +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe.egg-info/top_level.txt +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/maxframe_client/session/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0}/setup.cfg +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
MaxCompute MaxFrame Client
|
|
2
|
+
==========================
|
|
3
|
+
|
|
4
|
+
MaxFrame is a computational framework created by Alibaba Cloud to
|
|
5
|
+
provide a way for Python developers to parallelize their code with
|
|
6
|
+
MaxCompute. It creates a runnable computation graph locally, submits it
|
|
7
|
+
to MaxCompute to execute and obtains results from MaxCompute.
|
|
8
|
+
|
|
9
|
+
MaxFrame client is the client of MaxFrame. Currently it provides a
|
|
10
|
+
DataFrame-based SDK with compatible APIs for pandas. In future, other
|
|
11
|
+
common Python libraries like numpy and scikit-learn will be added as
|
|
12
|
+
well. Python 3.7 is recommended for MaxFrame client to enable all
|
|
13
|
+
functionalities while supports for higher Python versions are on the
|
|
14
|
+
way.
|
|
15
|
+
|
|
16
|
+
Installation
|
|
17
|
+
------------
|
|
18
|
+
|
|
19
|
+
You may install MaxFrame client through PIP:
|
|
20
|
+
|
|
21
|
+
.. code:: bash
|
|
22
|
+
|
|
23
|
+
pip install maxframe
|
|
24
|
+
|
|
25
|
+
Latest beta version can be installed with ``--pre`` argument:
|
|
26
|
+
|
|
27
|
+
.. code:: bash
|
|
28
|
+
|
|
29
|
+
pip install --pre maxframe
|
|
30
|
+
|
|
31
|
+
You can also install MaxFrame client from source code:
|
|
32
|
+
|
|
33
|
+
.. code:: bash
|
|
34
|
+
|
|
35
|
+
pip install git+https://github.com/aliyun/alibabacloud-odps-maxframe-client.git
|
|
36
|
+
|
|
37
|
+
Getting started
|
|
38
|
+
---------------
|
|
39
|
+
|
|
40
|
+
We show a simple code example of MaxFrame client which read data from a
|
|
41
|
+
MaxCompute table, performs some simple data transform and writes back
|
|
42
|
+
into MaxCompute.
|
|
43
|
+
|
|
44
|
+
.. code:: python
|
|
45
|
+
|
|
46
|
+
import maxframe.dataframe as md
|
|
47
|
+
import os
|
|
48
|
+
from maxframe import new_session
|
|
49
|
+
from odps import ODPS
|
|
50
|
+
|
|
51
|
+
o = ODPS(
|
|
52
|
+
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
|
|
53
|
+
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
|
|
54
|
+
project='your-default-project',
|
|
55
|
+
endpoint='your-end-point',
|
|
56
|
+
)
|
|
57
|
+
session = new_session(o)
|
|
58
|
+
|
|
59
|
+
df = md.read_odps_table("source_table")
|
|
60
|
+
df["A"] = "prefix_" + df["A"]
|
|
61
|
+
md.to_odps_table(df, "prefix_source_table")
|
|
62
|
+
|
|
63
|
+
Documentation
|
|
64
|
+
-------------
|
|
65
|
+
|
|
66
|
+
Detailed documentations can be found
|
|
67
|
+
`here <https://maxframe.readthedocs.io>`__.
|
|
68
|
+
|
|
69
|
+
License
|
|
70
|
+
-------
|
|
71
|
+
|
|
72
|
+
Licensed under the `Apache License
|
|
73
|
+
2.0 <https://www.apache.org/licenses/LICENSE-2.0.html>`__.
|
|
@@ -26,9 +26,9 @@ from odps.utils import camel_to_underline
|
|
|
26
26
|
from .core import OperatorType, Tileable, TileableGraph
|
|
27
27
|
from .core.operator import Fetch
|
|
28
28
|
from .extension import iter_extensions
|
|
29
|
+
from .io.odpsio import build_dataframe_table_meta
|
|
30
|
+
from .io.odpsio.schema import pandas_to_odps_schema
|
|
29
31
|
from .lib import wrapped_pickle as pickle
|
|
30
|
-
from .odpsio import build_dataframe_table_meta
|
|
31
|
-
from .odpsio.schema import pandas_to_odps_schema
|
|
32
32
|
from .protocol import DataFrameTableMeta, ResultInfo
|
|
33
33
|
from .serialization import PickleContainer
|
|
34
34
|
from .serialization.serializables import Serializable, StringField
|
|
@@ -86,6 +86,8 @@ class AbstractUDF(Serializable):
|
|
|
86
86
|
|
|
87
87
|
|
|
88
88
|
class UserCodeMixin:
|
|
89
|
+
__slots__ = ()
|
|
90
|
+
|
|
89
91
|
@classmethod
|
|
90
92
|
def obj_to_python_expr(cls, obj: Any = None) -> str:
|
|
91
93
|
"""
|
|
@@ -344,6 +346,9 @@ def register_engine_codegen(type_: Type["BigDagCodeGenerator"]):
|
|
|
344
346
|
BUILTIN_ENGINE_SPE = "SPE"
|
|
345
347
|
BUILTIN_ENGINE_MCSQL = "MCSQL"
|
|
346
348
|
|
|
349
|
+
FAST_RANGE_INDEX_ENABLED = "codegen.fast_range_index_enabled"
|
|
350
|
+
ROW_NUMBER_WINDOW_INDEX_ENABLED = "codegen.row_number_window_index_enabled"
|
|
351
|
+
|
|
347
352
|
|
|
348
353
|
class BigDagCodeGenerator(metaclass=abc.ABCMeta):
|
|
349
354
|
_context: BigDagCodeContext
|
|
@@ -502,6 +507,7 @@ class BigDagCodeGenerator(metaclass=abc.ABCMeta):
|
|
|
502
507
|
prefer_binary=pack.prefer_binary,
|
|
503
508
|
pre_release=pack.pre_release,
|
|
504
509
|
force_rebuild=pack.force_rebuild,
|
|
510
|
+
no_audit_wheel=pack.no_audit_wheel,
|
|
505
511
|
python_tag=python_tag,
|
|
506
512
|
is_production=is_production,
|
|
507
513
|
schedule_id=schedule_id,
|
|
@@ -516,12 +522,12 @@ class BigDagCodeGenerator(metaclass=abc.ABCMeta):
|
|
|
516
522
|
|
|
517
523
|
def register_udfs(self, odps_ctx: "ODPSSessionContext"):
|
|
518
524
|
for udf in self._context.get_udfs():
|
|
519
|
-
logger.info("[Session
|
|
525
|
+
logger.info("[Session=%s] Registering UDF %s", self._session_id, udf.name)
|
|
520
526
|
udf.register(odps_ctx, True)
|
|
521
527
|
|
|
522
528
|
def unregister_udfs(self, odps_ctx: "ODPSSessionContext"):
|
|
523
529
|
for udf in self._context.get_udfs():
|
|
524
|
-
logger.info("[Session
|
|
530
|
+
logger.info("[Session=%s] Unregistering UDF %s", self._session_id, udf.name)
|
|
525
531
|
udf.unregister(odps_ctx)
|
|
526
532
|
|
|
527
533
|
def get_udfs(self) -> List[AbstractUDF]:
|
|
@@ -19,28 +19,40 @@ import warnings
|
|
|
19
19
|
from copy import deepcopy
|
|
20
20
|
from typing import Any, Dict, Optional, Union
|
|
21
21
|
|
|
22
|
+
from odps.lib import tzlocal
|
|
23
|
+
|
|
24
|
+
try:
|
|
25
|
+
from zoneinfo import available_timezones
|
|
26
|
+
except ImportError:
|
|
27
|
+
from pytz import all_timezones
|
|
28
|
+
|
|
29
|
+
available_timezones = lambda: all_timezones
|
|
30
|
+
|
|
22
31
|
from ..utils import get_python_tag
|
|
23
32
|
from .validators import (
|
|
24
33
|
ValidatorType,
|
|
25
34
|
all_validator,
|
|
26
|
-
any_validator,
|
|
27
35
|
is_bool,
|
|
28
36
|
is_dict,
|
|
29
37
|
is_in,
|
|
30
38
|
is_integer,
|
|
39
|
+
is_non_negative_integer,
|
|
31
40
|
is_null,
|
|
32
41
|
is_numeric,
|
|
33
42
|
is_string,
|
|
43
|
+
is_valid_cache_path,
|
|
34
44
|
)
|
|
35
45
|
|
|
36
46
|
_DEFAULT_REDIRECT_WARN = "Option {source} has been replaced by {target} and might be removed in a future release."
|
|
37
47
|
_DEFAULT_MAX_ALIVE_SECONDS = 3 * 24 * 3600
|
|
38
48
|
_DEFAULT_MAX_IDLE_SECONDS = 3600
|
|
39
49
|
_DEFAULT_SPE_OPERATION_TIMEOUT_SECONDS = 120
|
|
50
|
+
_DEFAULT_SPE_FAILURE_RETRY_TIMES = 5
|
|
40
51
|
_DEFAULT_UPLOAD_BATCH_SIZE = 4096
|
|
41
52
|
_DEFAULT_TEMP_LIFECYCLE = 1
|
|
42
53
|
_DEFAULT_TASK_START_TIMEOUT = 60
|
|
43
|
-
|
|
54
|
+
_DEFAULT_TASK_RESTART_TIMEOUT = 300
|
|
55
|
+
_DEFAULT_LOGVIEW_HOURS = 24 * 30
|
|
44
56
|
|
|
45
57
|
|
|
46
58
|
class OptionError(Exception):
|
|
@@ -296,28 +308,60 @@ class Config:
|
|
|
296
308
|
return {k: v for k, v in res.items() if k in self._remote_options}
|
|
297
309
|
|
|
298
310
|
|
|
311
|
+
def _get_legal_local_tz_name() -> Optional[str]:
|
|
312
|
+
"""Sometimes we may get illegal tz name from tzlocal.get_localzone()"""
|
|
313
|
+
tz_name = str(tzlocal.get_localzone())
|
|
314
|
+
if tz_name not in available_timezones():
|
|
315
|
+
return None
|
|
316
|
+
return tz_name
|
|
317
|
+
|
|
318
|
+
|
|
299
319
|
default_options = Config()
|
|
300
320
|
default_options.register_option(
|
|
301
321
|
"execution_mode", "trigger", validator=is_in(["trigger", "eager"])
|
|
302
322
|
)
|
|
323
|
+
default_options.register_option("use_common_table", False, validator=is_bool)
|
|
303
324
|
default_options.register_option(
|
|
304
325
|
"python_tag", get_python_tag(), validator=is_string, remote=True
|
|
305
326
|
)
|
|
327
|
+
default_options.register_option(
|
|
328
|
+
"local_timezone",
|
|
329
|
+
_get_legal_local_tz_name(),
|
|
330
|
+
validator=is_null | is_in(set(available_timezones())),
|
|
331
|
+
remote=True,
|
|
332
|
+
)
|
|
306
333
|
default_options.register_option(
|
|
307
334
|
"session.logview_hours", _DEFAULT_LOGVIEW_HOURS, validator=is_integer, remote=True
|
|
308
335
|
)
|
|
309
336
|
default_options.register_option(
|
|
310
337
|
"client.task_start_timeout", _DEFAULT_TASK_START_TIMEOUT, validator=is_integer
|
|
311
338
|
)
|
|
339
|
+
default_options.register_option(
|
|
340
|
+
"client.task_restart_timeout", _DEFAULT_TASK_RESTART_TIMEOUT, validator=is_integer
|
|
341
|
+
)
|
|
312
342
|
default_options.register_option("sql.enable_mcqa", True, validator=is_bool, remote=True)
|
|
313
343
|
default_options.register_option(
|
|
314
344
|
"sql.generate_comments", True, validator=is_bool, remote=True
|
|
315
345
|
)
|
|
346
|
+
default_options.register_option(
|
|
347
|
+
"sql.auto_use_common_image", True, validator=is_bool, remote=True
|
|
348
|
+
)
|
|
316
349
|
default_options.register_option("sql.settings", {}, validator=is_dict, remote=True)
|
|
317
350
|
|
|
318
351
|
default_options.register_option("is_production", False, validator=is_bool, remote=True)
|
|
319
352
|
default_options.register_option("schedule_id", "", validator=is_string, remote=True)
|
|
320
353
|
|
|
354
|
+
default_options.register_option(
|
|
355
|
+
"service_role_arn", None, validator=is_null | is_string, remote=True
|
|
356
|
+
)
|
|
357
|
+
default_options.register_option(
|
|
358
|
+
"object_cache_url", None, validator=is_null | is_valid_cache_path, remote=True
|
|
359
|
+
)
|
|
360
|
+
|
|
361
|
+
default_options.register_option(
|
|
362
|
+
"chunk_size", None, validator=is_null | is_integer, remote=True
|
|
363
|
+
)
|
|
364
|
+
|
|
321
365
|
default_options.register_option(
|
|
322
366
|
"session.max_alive_seconds",
|
|
323
367
|
_DEFAULT_MAX_ALIVE_SECONDS,
|
|
@@ -330,15 +374,25 @@ default_options.register_option(
|
|
|
330
374
|
validator=is_numeric,
|
|
331
375
|
remote=True,
|
|
332
376
|
)
|
|
377
|
+
default_options.register_option(
|
|
378
|
+
"session.quota_name", None, validator=is_null | is_string, remote=True
|
|
379
|
+
)
|
|
380
|
+
default_options.register_option(
|
|
381
|
+
"session.enable_schema", None, validator=is_null | is_bool, remote=True
|
|
382
|
+
)
|
|
383
|
+
default_options.register_option(
|
|
384
|
+
"session.enable_high_availability", None, validator=is_null | is_bool, remote=True
|
|
385
|
+
)
|
|
386
|
+
default_options.register_option(
|
|
387
|
+
"session.default_schema", None, validator=is_null | is_string, remote=True
|
|
388
|
+
)
|
|
333
389
|
default_options.register_option(
|
|
334
390
|
"session.upload_batch_size",
|
|
335
391
|
_DEFAULT_UPLOAD_BATCH_SIZE,
|
|
336
392
|
validator=is_integer,
|
|
337
393
|
)
|
|
338
394
|
default_options.register_option(
|
|
339
|
-
"session.table_lifecycle",
|
|
340
|
-
None,
|
|
341
|
-
validator=any_validator(is_null, is_integer),
|
|
395
|
+
"session.table_lifecycle", None, validator=is_null | is_integer, remote=True
|
|
342
396
|
)
|
|
343
397
|
default_options.register_option(
|
|
344
398
|
"session.temp_table_lifecycle",
|
|
@@ -349,7 +403,7 @@ default_options.register_option(
|
|
|
349
403
|
default_options.register_option(
|
|
350
404
|
"session.subinstance_priority",
|
|
351
405
|
None,
|
|
352
|
-
validator=
|
|
406
|
+
validator=is_null | is_integer,
|
|
353
407
|
remote=True,
|
|
354
408
|
)
|
|
355
409
|
|
|
@@ -361,9 +415,7 @@ default_options.register_option(
|
|
|
361
415
|
default_options.register_option(
|
|
362
416
|
"optimize.head_optimize_threshold", 1000, validator=is_integer
|
|
363
417
|
)
|
|
364
|
-
default_options.register_option(
|
|
365
|
-
"show_progress", "auto", validator=any_validator(is_bool, is_string)
|
|
366
|
-
)
|
|
418
|
+
default_options.register_option("show_progress", "auto", validator=is_bool | is_string)
|
|
367
419
|
default_options.register_option(
|
|
368
420
|
"dag.settings", value=dict(), validator=is_dict, remote=True
|
|
369
421
|
)
|
|
@@ -374,7 +426,13 @@ default_options.register_option(
|
|
|
374
426
|
default_options.register_option(
|
|
375
427
|
"spe.operation_timeout_seconds",
|
|
376
428
|
_DEFAULT_SPE_OPERATION_TIMEOUT_SECONDS,
|
|
377
|
-
validator=
|
|
429
|
+
validator=is_non_negative_integer,
|
|
430
|
+
remote=True,
|
|
431
|
+
)
|
|
432
|
+
default_options.register_option(
|
|
433
|
+
"spe.failure_retry_times",
|
|
434
|
+
_DEFAULT_SPE_FAILURE_RETRY_TIMES,
|
|
435
|
+
validator=is_non_negative_integer,
|
|
378
436
|
remote=True,
|
|
379
437
|
)
|
|
380
438
|
|
|
@@ -0,0 +1,88 @@
|
|
|
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 typing import Callable
|
|
16
|
+
from urllib.parse import urlparse
|
|
17
|
+
|
|
18
|
+
ValidatorType = Callable[..., bool]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def any_validator(*validators: ValidatorType):
|
|
22
|
+
def validate(x):
|
|
23
|
+
return any(validator(x) for validator in validators)
|
|
24
|
+
|
|
25
|
+
return validate
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def all_validator(*validators: ValidatorType):
|
|
29
|
+
def validate(x):
|
|
30
|
+
return all(validator(x) for validator in validators)
|
|
31
|
+
|
|
32
|
+
validate.validators = validators
|
|
33
|
+
return validate
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class Validator:
|
|
37
|
+
def __init__(self, func: ValidatorType):
|
|
38
|
+
self._func = func
|
|
39
|
+
|
|
40
|
+
def __call__(self, arg) -> bool:
|
|
41
|
+
return self._func(arg)
|
|
42
|
+
|
|
43
|
+
def __or__(self, other):
|
|
44
|
+
return OrValidator(self, other)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class OrValidator(Validator):
|
|
48
|
+
def __init__(self, lhs: Validator, rhs: Validator):
|
|
49
|
+
super().__init__(lambda x: lhs(x) or rhs(x))
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
is_null = Validator(lambda x: x is None)
|
|
53
|
+
is_bool = Validator(lambda x: isinstance(x, bool))
|
|
54
|
+
is_float = Validator(lambda x: isinstance(x, float))
|
|
55
|
+
is_integer = Validator(lambda x: isinstance(x, int))
|
|
56
|
+
is_numeric = Validator(lambda x: isinstance(x, (int, float)))
|
|
57
|
+
is_string = Validator(lambda x: isinstance(x, str))
|
|
58
|
+
is_dict = Validator(lambda x: isinstance(x, dict))
|
|
59
|
+
is_positive_integer = Validator(lambda x: is_integer(x) and x > 0)
|
|
60
|
+
is_non_negative_integer = Validator(lambda x: is_integer(x) and x >= 0)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def is_in(vals):
|
|
64
|
+
return Validator(vals.__contains__)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def _is_valid_cache_path(path: str) -> bool:
|
|
68
|
+
"""
|
|
69
|
+
path should look like oss://oss_endpoint/oss_bucket/path
|
|
70
|
+
"""
|
|
71
|
+
parsed_url = urlparse(path)
|
|
72
|
+
return (
|
|
73
|
+
parsed_url.scheme == "oss"
|
|
74
|
+
and parsed_url.netloc
|
|
75
|
+
and parsed_url.path
|
|
76
|
+
and "/" in parsed_url.path
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
is_valid_cache_path = Validator(_is_valid_cache_path)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
_invalid_char_in_yaml_str = {'"', "'", "\n", "\\"}
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def simple_yaml_str_validator(name: str) -> bool:
|
|
87
|
+
chars = set(name)
|
|
88
|
+
return len(_invalid_char_in_yaml_str & chars) == 0
|
|
@@ -14,27 +14,18 @@
|
|
|
14
14
|
|
|
15
15
|
# noinspection PyUnresolvedReferences
|
|
16
16
|
from ..typing_ import ChunkType, EntityType, OperatorType, TileableType
|
|
17
|
-
from .base import ExecutionError
|
|
17
|
+
from .base import Base, ExecutionError
|
|
18
18
|
from .entity import (
|
|
19
|
-
CHUNK_TYPE,
|
|
20
19
|
ENTITY_TYPE,
|
|
21
|
-
FUSE_CHUNK_TYPE,
|
|
22
|
-
OBJECT_CHUNK_TYPE,
|
|
23
20
|
OBJECT_TYPE,
|
|
24
21
|
TILEABLE_TYPE,
|
|
25
|
-
Chunk,
|
|
26
|
-
ChunkData,
|
|
27
22
|
Entity,
|
|
28
23
|
EntityData,
|
|
29
24
|
ExecutableTuple,
|
|
30
|
-
FuseChunk,
|
|
31
|
-
FuseChunkData,
|
|
32
25
|
HasShapeTileable,
|
|
33
26
|
HasShapeTileableData,
|
|
34
27
|
NotSupportTile,
|
|
35
28
|
Object,
|
|
36
|
-
ObjectChunk,
|
|
37
|
-
ObjectChunkData,
|
|
38
29
|
ObjectData,
|
|
39
30
|
OutputType,
|
|
40
31
|
Tileable,
|
|
@@ -43,23 +34,18 @@ from .entity import (
|
|
|
43
34
|
get_fetch_class,
|
|
44
35
|
get_output_types,
|
|
45
36
|
get_tileable_types,
|
|
46
|
-
register,
|
|
47
37
|
register_fetch_class,
|
|
48
38
|
register_output_types,
|
|
49
|
-
unregister,
|
|
50
39
|
)
|
|
51
40
|
|
|
52
41
|
# noinspection PyUnresolvedReferences
|
|
53
42
|
from .graph import (
|
|
54
43
|
DAG,
|
|
55
|
-
ChunkGraph,
|
|
56
|
-
ChunkGraphBuilder,
|
|
57
44
|
DirectedGraph,
|
|
58
45
|
GraphContainsCycleError,
|
|
59
46
|
GraphSerializer,
|
|
60
47
|
TileableGraph,
|
|
61
48
|
TileableGraphBuilder,
|
|
62
|
-
TileContext,
|
|
63
|
-
TileStatus,
|
|
64
49
|
)
|
|
65
50
|
from .mode import enter_mode, is_build_mode, is_eager_mode, is_kernel_mode
|
|
51
|
+
from .operator import build_fetch
|
|
@@ -12,18 +12,9 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from .chunks import CHUNK_TYPE, Chunk, ChunkData
|
|
16
15
|
from .core import ENTITY_TYPE, Entity, EntityData
|
|
17
16
|
from .executable import ExecutableTuple, _ExecuteAndFetchMixin
|
|
18
|
-
from .
|
|
19
|
-
from .objects import (
|
|
20
|
-
OBJECT_CHUNK_TYPE,
|
|
21
|
-
OBJECT_TYPE,
|
|
22
|
-
Object,
|
|
23
|
-
ObjectChunk,
|
|
24
|
-
ObjectChunkData,
|
|
25
|
-
ObjectData,
|
|
26
|
-
)
|
|
17
|
+
from .objects import OBJECT_TYPE, Object, ObjectData
|
|
27
18
|
from .output_types import (
|
|
28
19
|
OutputType,
|
|
29
20
|
get_fetch_class,
|
|
@@ -39,6 +30,4 @@ from .tileables import (
|
|
|
39
30
|
NotSupportTile,
|
|
40
31
|
Tileable,
|
|
41
32
|
TileableData,
|
|
42
|
-
register,
|
|
43
|
-
unregister,
|
|
44
33
|
)
|
|
@@ -0,0 +1,101 @@
|
|
|
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 typing import Any, Dict, Type
|
|
16
|
+
|
|
17
|
+
from ...serialization import load_type
|
|
18
|
+
from ...serialization.serializables import StringField
|
|
19
|
+
from .core import Entity
|
|
20
|
+
from .executable import _ToObjectMixin
|
|
21
|
+
from .tileables import TileableData
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class ObjectData(TileableData, _ToObjectMixin):
|
|
25
|
+
__slots__ = ()
|
|
26
|
+
type_name = "Object"
|
|
27
|
+
# workaround for removed field since v0.1.0b5
|
|
28
|
+
# todo remove this when all versions below v1.0.0rc1 is eliminated
|
|
29
|
+
_legacy_deprecated_non_primitives = ["_chunks"]
|
|
30
|
+
_legacy_new_non_primitives = ["object_class"]
|
|
31
|
+
|
|
32
|
+
object_class = StringField("object_class", default=None)
|
|
33
|
+
|
|
34
|
+
@classmethod
|
|
35
|
+
def get_entity_class(cls) -> Type["Object"]:
|
|
36
|
+
if getattr(cls, "_entity_class", None) is not None:
|
|
37
|
+
return cls._entity_class
|
|
38
|
+
assert cls.__qualname__[-4:] == "Data"
|
|
39
|
+
target_class_name = cls.__module__ + "#" + cls.__qualname__[:-4]
|
|
40
|
+
cls._entity_class = load_type(target_class_name, Object)
|
|
41
|
+
return cls._entity_class
|
|
42
|
+
|
|
43
|
+
def __new__(cls, op=None, nsplits=None, **kw):
|
|
44
|
+
if cls is ObjectData:
|
|
45
|
+
obj_cls = kw.get("object_class")
|
|
46
|
+
if isinstance(obj_cls, str):
|
|
47
|
+
obj_cls = load_type(obj_cls, (Object, ObjectData))
|
|
48
|
+
if isinstance(obj_cls, type) and issubclass(obj_cls, Object):
|
|
49
|
+
obj_cls = obj_cls.get_data_class()
|
|
50
|
+
|
|
51
|
+
if obj_cls is not None and cls is not obj_cls:
|
|
52
|
+
return obj_cls(op=op, nsplits=nsplits, **kw)
|
|
53
|
+
return super().__new__(cls)
|
|
54
|
+
|
|
55
|
+
def __init__(self, op=None, nsplits=None, **kw):
|
|
56
|
+
obj_cls = kw.pop("object_class", None)
|
|
57
|
+
if isinstance(obj_cls, type):
|
|
58
|
+
if isinstance(obj_cls, type) and issubclass(obj_cls, Object):
|
|
59
|
+
obj_cls = obj_cls.get_data_class()
|
|
60
|
+
kw["object_class"] = obj_cls.__module__ + "#" + obj_cls.__qualname__
|
|
61
|
+
|
|
62
|
+
super().__init__(_op=op, _nsplits=nsplits, **kw)
|
|
63
|
+
if self.object_class is None and type(self) is not ObjectData:
|
|
64
|
+
cls = type(self)
|
|
65
|
+
self.object_class = cls.__module__ + "#" + cls.__qualname__
|
|
66
|
+
|
|
67
|
+
def __repr__(self):
|
|
68
|
+
return f"Object <op={type(self.op).__name__}, key={self.key}>"
|
|
69
|
+
|
|
70
|
+
@property
|
|
71
|
+
def params(self):
|
|
72
|
+
# params return the properties which useful to rebuild a new tileable object
|
|
73
|
+
return dict(object_class=self.object_class)
|
|
74
|
+
|
|
75
|
+
@params.setter
|
|
76
|
+
def params(self, new_params: Dict[str, Any]):
|
|
77
|
+
params = new_params.copy()
|
|
78
|
+
if params: # pragma: no cover
|
|
79
|
+
raise TypeError(f"Unknown params: {list(params)}")
|
|
80
|
+
|
|
81
|
+
def refresh_params(self):
|
|
82
|
+
# refresh params when chunks updated
|
|
83
|
+
# nothing needs to do for Object
|
|
84
|
+
pass
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class Object(Entity, _ToObjectMixin):
|
|
88
|
+
__slots__ = ()
|
|
89
|
+
_allow_data_type_ = (ObjectData,)
|
|
90
|
+
type_name = "Object"
|
|
91
|
+
|
|
92
|
+
@classmethod
|
|
93
|
+
def get_data_class(cls) -> Type[ObjectData]:
|
|
94
|
+
if getattr(cls, "_data_class", None) is not None:
|
|
95
|
+
return cls._data_class
|
|
96
|
+
target_class_name = cls.__module__ + "#" + cls.__qualname__ + "Data"
|
|
97
|
+
cls._data_class = load_type(target_class_name, ObjectData)
|
|
98
|
+
return cls._data_class
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
OBJECT_TYPE = (Object, ObjectData)
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
import functools
|
|
16
16
|
from enum import Enum
|
|
17
17
|
|
|
18
|
-
from .fuse import FUSE_CHUNK_TYPE
|
|
19
18
|
from .objects import OBJECT_TYPE
|
|
20
19
|
|
|
21
20
|
|
|
@@ -77,8 +76,6 @@ def get_output_types(*objs, unknown_as=None):
|
|
|
77
76
|
for obj in objs:
|
|
78
77
|
if obj is None:
|
|
79
78
|
continue
|
|
80
|
-
elif isinstance(obj, FUSE_CHUNK_TYPE):
|
|
81
|
-
obj = obj.chunk
|
|
82
79
|
|
|
83
80
|
try:
|
|
84
81
|
output_types.append(_get_output_type_by_cls(type(obj)))
|