maxframe 1.0.0rc1__tar.gz → 1.0.0rc2__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-1.0.0rc1 → maxframe-1.0.0rc2}/MANIFEST.in +1 -0
- maxframe-1.0.0rc2/PKG-INFO +177 -0
- maxframe-1.0.0rc1/PKG-INFO → maxframe-1.0.0rc2/README.rst +72 -6
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/codegen.py +0 -4
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/config/config.py +34 -2
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/config/validators.py +1 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/entity/objects.py +1 -1
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/__init__.py +1 -1
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/around.py +5 -17
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/core.py +15 -7
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/docstring.py +5 -55
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/core.py +5 -5
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/date_range.py +2 -2
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/read_odps_query.py +6 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/read_odps_table.py +2 -1
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/groupby/cum.py +0 -1
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/add_prefix_suffix.py +1 -1
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/rename.py +3 -37
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/sample.py +0 -1
- maxframe-1.0.0rc2/maxframe/dataframe/indexing/set_index.py +128 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/merge/merge.py +236 -2
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/apply.py +3 -10
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/case_when.py +1 -1
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/describe.py +2 -2
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/drop_duplicates.py +4 -25
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/eval.py +4 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/pct_change.py +1 -83
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/transform.py +1 -30
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/value_counts.py +4 -17
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/missing/dropna.py +1 -1
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/missing/fillna.py +5 -5
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/sort/sort_values.py +1 -11
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/statistics/quantile.py +5 -17
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/utils.py +4 -7
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/xgboost/dmatrix.py +2 -2
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/xgboost/predict.py +2 -2
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/xgboost/train.py +2 -2
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/odpsio/__init__.py +1 -1
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/odpsio/arrow.py +8 -4
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/odpsio/schema.py +10 -7
- maxframe-1.0.0rc2/maxframe/odpsio/tableio.py +696 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/protocol.py +40 -2
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/serializables/core.py +48 -9
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/__init__.py +59 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/base/unique.py +2 -2
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/statistics/quantile.py +2 -2
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/utils.py +17 -9
- maxframe-1.0.0rc2/maxframe.egg-info/PKG-INFO +177 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe.egg-info/SOURCES.txt +1 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe_client/fetcher.py +38 -27
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe_client/session/odps.py +5 -5
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/pyproject.toml +1 -1
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/setup.py +11 -2
- maxframe-1.0.0rc1/maxframe/dataframe/indexing/set_index.py +0 -61
- maxframe-1.0.0rc1/maxframe/odpsio/tableio.py +0 -322
- maxframe-1.0.0rc1/maxframe.egg-info/PKG-INFO +0 -80
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/_utils.pxd +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/_utils.pyx +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/config/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/base.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/entity/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/entity/chunks.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/entity/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/entity/executable.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/entity/fuse.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/entity/output_types.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/entity/tileables.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/entity/utils.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/graph/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/graph/builder/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/graph/builder/base.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/graph/builder/chunk.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/graph/builder/tileable.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/graph/builder/utils.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/graph/core.pyx +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/graph/entity.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/mode.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/operator/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/operator/base.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/operator/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/operator/fetch.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/operator/fuse.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/operator/objects.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/core/operator/shuffle.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/abs.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/add.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/arccos.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/arccosh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/arcsin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/arcsinh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/arctan.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/arctanh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/bitwise_and.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/bitwise_or.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/bitwise_xor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/ceil.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/cos.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/cosh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/degrees.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/equal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/exp.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/exp2.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/expm1.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/floor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/floordiv.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/greater.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/greater_equal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/invert.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/is_ufuncs.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/less.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/less_equal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/log.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/log10.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/log2.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/mod.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/multiply.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/negative.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/not_equal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/power.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/radians.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/sin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/sinh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/sqrt.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/subtract.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/tan.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/tanh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/truediv.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arithmetic/trunc.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/arrays.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/dataframe.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/from_index.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/from_records.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/from_tensor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/index.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/read_csv.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/read_parquet.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datasource/series.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datastore/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datastore/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datastore/to_csv.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/datastore/to_odps.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/extensions/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/extensions/accessor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/extensions/reshuffle.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/fetch/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/fetch/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/groupby/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/groupby/aggregation.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/groupby/apply.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/groupby/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/groupby/fill.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/groupby/getitem.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/groupby/head.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/groupby/sample.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/groupby/transform.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/align.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/at.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/getitem.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/iat.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/iloc.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/insert.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/loc.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/reindex.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/rename_axis.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/reset_index.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/set_axis.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/setitem.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/indexing/where.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/initializer.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/merge/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/merge/append.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/merge/concat.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/_duplicate.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/accessor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/astype.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/check_monotonic.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/cut.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/datetimes.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/diff.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/drop.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/duplicated.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/explode.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/get_dummies.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/isin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/map.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/melt.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/memory_usage.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/pivot_table.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/qcut.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/select_dtypes.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/shift.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/stack.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/string_.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/to_numeric.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/misc/transpose.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/missing/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/missing/checkna.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/missing/replace.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/operators.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/plotting/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/plotting/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/aggregation.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/all.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/any.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/count.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/cummax.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/cummin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/cumprod.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/cumsum.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/custom_reduction.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/kurtosis.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/max.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/mean.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/min.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/nunique.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/prod.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/reduction_size.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/sem.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/skew.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/std.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/str_concat.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/sum.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/unique.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/reduction/var.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/sort/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/sort/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/sort/sort_index.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/statistics/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/statistics/corr.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/tseries/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/tseries/to_datetime.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/ufunc/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/ufunc/tensor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/ufunc/ufunc.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/window/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/window/aggregation.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/window/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/window/ewm.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/window/expanding.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/dataframe/window/rolling.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/env.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/errors.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/extension.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/pytorch/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/pytorch/run_function.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/pytorch/run_script.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/utils.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/xgboost/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/xgboost/classifier.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/xgboost/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/contrib/xgboost/regressor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/utils/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/learn/utils/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/aio/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/aio/_runners.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/aio/_threads.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/aio/base.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/aio/file.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/aio/isolation.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/aio/lru.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/aio/parallelism.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/compression.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/cython/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/cython/libcpp.pxd +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/_glob.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/_oss_lib/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/_oss_lib/common.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/_oss_lib/glob.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/_oss_lib/handle.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/arrow.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/base.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/fsmap.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/hdfs.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/local.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/filesystem/oss.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/functools_compat.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/mmh3.pyi +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/mmh3_src/MurmurHash3.cpp +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/mmh3_src/MurmurHash3.h +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/mmh3_src/mmh3module.cpp +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/sparse/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/sparse/array.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/sparse/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/sparse/matrix.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/sparse/vector.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/tblib/LICENSE +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/tblib/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/tblib/cpython.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/tblib/decorators.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/tblib/pickling_support.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/version.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/lib/wrapped_pickle.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/mixin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/odpsio/volumeio.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/opcodes.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/remote/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/remote/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/remote/run_script.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/arrow.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/core.pxd +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/core.pyi +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/core.pyx +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/exception.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/maxframe_objects.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/numpy.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/pandas.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/scipy.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/serializables/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/serializables/field.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/serialization/serializables/field_type.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/session.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/abs.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/absolute.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/add.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/angle.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/arccos.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/arccosh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/arcsin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/arcsinh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/arctan.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/arctan2.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/arctanh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/around.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/bitand.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/bitor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/bitxor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/cbrt.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/ceil.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/clip.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/conj.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/copysign.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/cos.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/cosh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/deg2rad.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/degrees.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/divide.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/equal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/exp.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/exp2.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/expm1.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/fabs.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/fix.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/float_power.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/floor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/floordiv.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/fmax.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/fmin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/fmod.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/frexp.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/greater.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/greater_equal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/hypot.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/i0.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/imag.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/invert.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/isclose.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/iscomplex.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/isfinite.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/isinf.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/isnan.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/isreal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/ldexp.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/less.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/less_equal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/log.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/log10.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/log1p.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/log2.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/logaddexp.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/logaddexp2.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/logical_and.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/logical_not.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/logical_or.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/logical_xor.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/lshift.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/maximum.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/minimum.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/mod.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/modf.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/multiply.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/nan_to_num.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/negative.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/nextafter.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/not_equal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/positive.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/power.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/rad2deg.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/radians.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/real.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/reciprocal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/rint.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/rshift.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/setimag.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/setreal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/sign.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/signbit.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/sin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/sinc.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/sinh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/spacing.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/sqrt.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/square.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/subtract.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/tan.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/tanh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/truediv.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/trunc.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/arithmetic/utils.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/array_utils.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/base/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/base/astype.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/base/atleast_1d.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/base/broadcast_to.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/base/ravel.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/base/transpose.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/base/where.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/arange.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/array.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/empty.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/from_dataframe.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/from_dense.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/from_sparse.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/full.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/ones.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/scalar.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/datasource/zeros.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/fetch/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/fetch/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/choose.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/compress.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/extract.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/fill_diagonal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/flatnonzero.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/getitem.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/nonzero.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/setitem.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/slice.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/take.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/indexing/unravel_index.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/merge/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/merge/stack.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/operators.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/beta.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/binomial.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/bytes.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/chisquare.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/choice.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/dirichlet.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/exponential.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/f.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/gamma.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/geometric.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/gumbel.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/hypergeometric.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/laplace.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/logistic.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/lognormal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/logseries.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/multinomial.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/multivariate_normal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/negative_binomial.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/noncentral_chisquare.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/noncentral_f.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/normal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/pareto.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/permutation.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/poisson.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/power.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/rand.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/randint.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/randn.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/random_integers.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/random_sample.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/rayleigh.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/shuffle.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/standard_cauchy.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/standard_exponential.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/standard_gamma.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/standard_normal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/standard_t.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/triangular.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/uniform.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/vonmises.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/wald.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/weibull.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/random/zipf.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/rechunk/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/rechunk/rechunk.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/all.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/allclose.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/any.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/argmax.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/argmin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/array_equal.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/core.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/count_nonzero.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/cumprod.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/cumsum.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/max.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/mean.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/min.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nanargmax.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nanargmin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nancumprod.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nancumsum.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nanmax.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nanmean.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nanmin.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nanprod.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nanstd.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nansum.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/nanvar.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/prod.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/std.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/sum.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reduction/var.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reshape/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/reshape/reshape.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/statistics/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/statistics/percentile.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/ufunc/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/ufunc/ufunc.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/tensor/utils.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/typing_.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe/udf.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe.egg-info/dependency_links.txt +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe.egg-info/requires.txt +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe.egg-info/top_level.txt +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe_client/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe_client/clients/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe_client/clients/framedriver.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe_client/session/__init__.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe_client/session/consts.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe_client/session/graph.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/maxframe_client/session/task.py +0 -0
- {maxframe-1.0.0rc1 → maxframe-1.0.0rc2}/setup.cfg +0 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: maxframe
|
|
3
|
+
Version: 1.0.0rc2
|
|
4
|
+
Summary: MaxFrame operator-based data analyze framework
|
|
5
|
+
Requires-Dist: numpy<2.0.0,>=1.19.0
|
|
6
|
+
Requires-Dist: pandas>=1.0.0
|
|
7
|
+
Requires-Dist: pyodps>=0.11.6.1
|
|
8
|
+
Requires-Dist: scipy>=1.0
|
|
9
|
+
Requires-Dist: pyarrow>=1.0.0
|
|
10
|
+
Requires-Dist: msgpack>=1.0.0
|
|
11
|
+
Requires-Dist: traitlets>=5.0
|
|
12
|
+
Requires-Dist: cloudpickle>=1.5.0
|
|
13
|
+
Requires-Dist: pyyaml>=5.1
|
|
14
|
+
Requires-Dist: pickle5; python_version < "3.8"
|
|
15
|
+
Requires-Dist: tornado>=6.0
|
|
16
|
+
Requires-Dist: defusedxml>=0.5.0
|
|
17
|
+
Requires-Dist: tqdm>=4.1.0
|
|
18
|
+
Requires-Dist: importlib_metadata>=1.4
|
|
19
|
+
Provides-Extra: dev
|
|
20
|
+
Requires-Dist: black>=22.3.0; extra == "dev"
|
|
21
|
+
Requires-Dist: flake8>=5.0.4; extra == "dev"
|
|
22
|
+
Requires-Dist: pre-commit>=2.15.0; extra == "dev"
|
|
23
|
+
Requires-Dist: graphviz>=0.20.1; extra == "dev"
|
|
24
|
+
Provides-Extra: test
|
|
25
|
+
Requires-Dist: mock; extra == "test"
|
|
26
|
+
Requires-Dist: pytest>=7.3.1; extra == "test"
|
|
27
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
|
|
28
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
|
|
29
|
+
Requires-Dist: pytest-timeout>=2.1.0; extra == "test"
|
|
30
|
+
Requires-Dist: matplotlib>=2.0.0; extra == "test"
|
|
31
|
+
|
|
32
|
+
MaxCompute MaxFrame Client
|
|
33
|
+
==========================
|
|
34
|
+
|
|
35
|
+
MaxFrame is a computational framework created by Alibaba Cloud to
|
|
36
|
+
provide a way for Python developers to parallelize their code with
|
|
37
|
+
MaxCompute. It creates a runnable computation graph locally, submits it
|
|
38
|
+
to MaxCompute to execute and obtains results from MaxCompute.
|
|
39
|
+
|
|
40
|
+
MaxFrame client is the client of MaxFrame. Currently it provides a
|
|
41
|
+
DataFrame-based SDK with compatible APIs for pandas. In future, other
|
|
42
|
+
common Python libraries like numpy and scikit-learn will be added as
|
|
43
|
+
well. Python 3.7 is recommended for MaxFrame client to enable all
|
|
44
|
+
functionalities while supports for higher Python versions are on the
|
|
45
|
+
way.
|
|
46
|
+
|
|
47
|
+
Installation
|
|
48
|
+
------------
|
|
49
|
+
|
|
50
|
+
You may install MaxFrame client through PIP:
|
|
51
|
+
|
|
52
|
+
.. code:: bash
|
|
53
|
+
|
|
54
|
+
pip install maxframe
|
|
55
|
+
|
|
56
|
+
Latest beta version can be installed with ``--pre`` argument:
|
|
57
|
+
|
|
58
|
+
.. code:: bash
|
|
59
|
+
|
|
60
|
+
pip install --pre maxframe
|
|
61
|
+
|
|
62
|
+
You can also install MaxFrame client from source code:
|
|
63
|
+
|
|
64
|
+
.. code:: bash
|
|
65
|
+
|
|
66
|
+
pip install git+https://github.com/aliyun/alibabacloud-odps-maxframe-client.git
|
|
67
|
+
|
|
68
|
+
Getting started
|
|
69
|
+
---------------
|
|
70
|
+
|
|
71
|
+
We show a simple code example of MaxFrame client which read data from a
|
|
72
|
+
MaxCompute table, performs some simple data transform and writes back
|
|
73
|
+
into MaxCompute.
|
|
74
|
+
|
|
75
|
+
.. code:: python
|
|
76
|
+
|
|
77
|
+
import maxframe.dataframe as md
|
|
78
|
+
import os
|
|
79
|
+
from maxframe import new_session
|
|
80
|
+
from odps import ODPS
|
|
81
|
+
|
|
82
|
+
o = ODPS(
|
|
83
|
+
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
|
|
84
|
+
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
|
|
85
|
+
project='your-default-project',
|
|
86
|
+
endpoint='your-end-point',
|
|
87
|
+
)
|
|
88
|
+
session = new_session(o)
|
|
89
|
+
|
|
90
|
+
df = md.read_odps_table("source_table")
|
|
91
|
+
df["A"] = "prefix_" + df["A"]
|
|
92
|
+
md.to_odps_table(df, "prefix_source_table")
|
|
93
|
+
|
|
94
|
+
Documentation
|
|
95
|
+
-------------
|
|
96
|
+
|
|
97
|
+
Detailed documentations can be found
|
|
98
|
+
`here <https://maxframe.readthedocs.io>`__.
|
|
99
|
+
|
|
100
|
+
License
|
|
101
|
+
-------
|
|
102
|
+
|
|
103
|
+
Licensed under the `Apache License
|
|
104
|
+
2.0 <https://www.apache.org/licenses/LICENSE-2.0.html>`__.
|
|
105
|
+
MaxCompute MaxFrame Client
|
|
106
|
+
==========================
|
|
107
|
+
|
|
108
|
+
MaxFrame is a computational framework created by Alibaba Cloud to
|
|
109
|
+
provide a way for Python developers to parallelize their code with
|
|
110
|
+
MaxCompute. It creates a runnable computation graph locally, submits it
|
|
111
|
+
to MaxCompute to execute and obtains results from MaxCompute.
|
|
112
|
+
|
|
113
|
+
MaxFrame client is the client of MaxFrame. Currently it provides a
|
|
114
|
+
DataFrame-based SDK with compatible APIs for pandas. In future, other
|
|
115
|
+
common Python libraries like numpy and scikit-learn will be added as
|
|
116
|
+
well. Python 3.7 is recommended for MaxFrame client to enable all
|
|
117
|
+
functionalities while supports for higher Python versions are on the
|
|
118
|
+
way.
|
|
119
|
+
|
|
120
|
+
Installation
|
|
121
|
+
------------
|
|
122
|
+
|
|
123
|
+
You may install MaxFrame client through PIP:
|
|
124
|
+
|
|
125
|
+
.. code:: bash
|
|
126
|
+
|
|
127
|
+
pip install maxframe
|
|
128
|
+
|
|
129
|
+
Latest beta version can be installed with ``--pre`` argument:
|
|
130
|
+
|
|
131
|
+
.. code:: bash
|
|
132
|
+
|
|
133
|
+
pip install --pre maxframe
|
|
134
|
+
|
|
135
|
+
You can also install MaxFrame client from source code:
|
|
136
|
+
|
|
137
|
+
.. code:: bash
|
|
138
|
+
|
|
139
|
+
pip install git+https://github.com/aliyun/alibabacloud-odps-maxframe-client.git
|
|
140
|
+
|
|
141
|
+
Getting started
|
|
142
|
+
---------------
|
|
143
|
+
|
|
144
|
+
We show a simple code example of MaxFrame client which read data from a
|
|
145
|
+
MaxCompute table, performs some simple data transform and writes back
|
|
146
|
+
into MaxCompute.
|
|
147
|
+
|
|
148
|
+
.. code:: python
|
|
149
|
+
|
|
150
|
+
import maxframe.dataframe as md
|
|
151
|
+
import os
|
|
152
|
+
from maxframe import new_session
|
|
153
|
+
from odps import ODPS
|
|
154
|
+
|
|
155
|
+
o = ODPS(
|
|
156
|
+
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
|
|
157
|
+
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
|
|
158
|
+
project='your-default-project',
|
|
159
|
+
endpoint='your-end-point',
|
|
160
|
+
)
|
|
161
|
+
session = new_session(o)
|
|
162
|
+
|
|
163
|
+
df = md.read_odps_table("source_table")
|
|
164
|
+
df["A"] = "prefix_" + df["A"]
|
|
165
|
+
md.to_odps_table(df, "prefix_source_table")
|
|
166
|
+
|
|
167
|
+
Documentation
|
|
168
|
+
-------------
|
|
169
|
+
|
|
170
|
+
Detailed documentations can be found
|
|
171
|
+
`here <https://maxframe.readthedocs.io>`__.
|
|
172
|
+
|
|
173
|
+
License
|
|
174
|
+
-------
|
|
175
|
+
|
|
176
|
+
Licensed under the `Apache License
|
|
177
|
+
2.0 <https://www.apache.org/licenses/LICENSE-2.0.html>`__.
|
|
@@ -1,10 +1,76 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
+
-------------
|
|
7
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>`__.
|
|
8
74
|
MaxCompute MaxFrame Client
|
|
9
75
|
==========================
|
|
10
76
|
|
|
@@ -205,12 +205,8 @@ class BigDagCodeContext(metaclass=abc.ABCMeta):
|
|
|
205
205
|
return self._session_id
|
|
206
206
|
|
|
207
207
|
def register_udf(self, udf: AbstractUDF):
|
|
208
|
-
from maxframe_framedriver.services.session import SessionManager
|
|
209
|
-
|
|
210
208
|
udf.session_id = self._session_id
|
|
211
209
|
self._udfs[udf.name] = udf
|
|
212
|
-
if self._session_id and SessionManager.initialized():
|
|
213
|
-
SessionManager.instance().register_udf(self._session_id, udf)
|
|
214
210
|
|
|
215
211
|
def get_udfs(self) -> List[AbstractUDF]:
|
|
216
212
|
return list(self._udfs.values())
|
|
@@ -19,6 +19,15 @@ 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,
|
|
@@ -28,6 +37,7 @@ from .validators import (
|
|
|
28
37
|
is_dict,
|
|
29
38
|
is_in,
|
|
30
39
|
is_integer,
|
|
40
|
+
is_non_negative_integer,
|
|
31
41
|
is_null,
|
|
32
42
|
is_numeric,
|
|
33
43
|
is_string,
|
|
@@ -37,11 +47,12 @@ _DEFAULT_REDIRECT_WARN = "Option {source} has been replaced by {target} and migh
|
|
|
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
|
|
44
|
-
_DEFAULT_LOGVIEW_HOURS = 24 *
|
|
55
|
+
_DEFAULT_LOGVIEW_HOURS = 24 * 30
|
|
45
56
|
|
|
46
57
|
|
|
47
58
|
class OptionError(Exception):
|
|
@@ -297,13 +308,28 @@ class Config:
|
|
|
297
308
|
return {k: v for k, v in res.items() if k in self._remote_options}
|
|
298
309
|
|
|
299
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
|
+
|
|
300
319
|
default_options = Config()
|
|
301
320
|
default_options.register_option(
|
|
302
321
|
"execution_mode", "trigger", validator=is_in(["trigger", "eager"])
|
|
303
322
|
)
|
|
323
|
+
default_options.register_option("use_common_table", False, validator=is_bool)
|
|
304
324
|
default_options.register_option(
|
|
305
325
|
"python_tag", get_python_tag(), validator=is_string, remote=True
|
|
306
326
|
)
|
|
327
|
+
default_options.register_option(
|
|
328
|
+
"local_timezone",
|
|
329
|
+
_get_legal_local_tz_name(),
|
|
330
|
+
validator=any_validator(is_null, is_in(set(available_timezones()))),
|
|
331
|
+
remote=True,
|
|
332
|
+
)
|
|
307
333
|
default_options.register_option(
|
|
308
334
|
"session.logview_hours", _DEFAULT_LOGVIEW_HOURS, validator=is_integer, remote=True
|
|
309
335
|
)
|
|
@@ -378,7 +404,13 @@ default_options.register_option(
|
|
|
378
404
|
default_options.register_option(
|
|
379
405
|
"spe.operation_timeout_seconds",
|
|
380
406
|
_DEFAULT_SPE_OPERATION_TIMEOUT_SECONDS,
|
|
381
|
-
validator=
|
|
407
|
+
validator=is_non_negative_integer,
|
|
408
|
+
remote=True,
|
|
409
|
+
)
|
|
410
|
+
default_options.register_option(
|
|
411
|
+
"spe.failure_retry_times",
|
|
412
|
+
_DEFAULT_SPE_FAILURE_RETRY_TIMES,
|
|
413
|
+
validator=is_non_negative_integer,
|
|
382
414
|
remote=True,
|
|
383
415
|
)
|
|
384
416
|
|
|
@@ -40,6 +40,7 @@ is_numeric = lambda x: isinstance(x, (int, float))
|
|
|
40
40
|
is_string = lambda x: isinstance(x, str)
|
|
41
41
|
is_dict = lambda x: isinstance(x, dict)
|
|
42
42
|
is_positive_integer = lambda x: is_integer(x) and x > 0
|
|
43
|
+
is_non_negative_integer = lambda x: is_integer(x) and x >= 0
|
|
43
44
|
|
|
44
45
|
|
|
45
46
|
def is_in(vals):
|
|
@@ -23,7 +23,7 @@ class ObjectData(TileableData, _ToObjectMixin):
|
|
|
23
23
|
__slots__ = ()
|
|
24
24
|
type_name = "Object"
|
|
25
25
|
# workaround for removed field since v0.1.0b5
|
|
26
|
-
# todo remove this when all versions below
|
|
26
|
+
# todo remove this when all versions below v1.0.0rc1 is eliminated
|
|
27
27
|
_legacy_deprecated_non_primitives = ["_chunks"]
|
|
28
28
|
|
|
29
29
|
def __init__(self, op=None, nsplits=None, **kw):
|
|
@@ -43,20 +43,20 @@ def around(df, decimals=0, *args, **kwargs):
|
|
|
43
43
|
return op(df)
|
|
44
44
|
|
|
45
45
|
|
|
46
|
+
# FIXME Series input of decimals not supported yet
|
|
46
47
|
around.__frame_doc__ = """
|
|
47
48
|
Round a DataFrame to a variable number of decimal places.
|
|
48
49
|
|
|
49
50
|
Parameters
|
|
50
51
|
----------
|
|
51
|
-
decimals : int, dict
|
|
52
|
+
decimals : int, dict
|
|
52
53
|
Number of decimal places to round each column to. If an int is
|
|
53
54
|
given, round each column to the same number of places.
|
|
54
55
|
Otherwise dict and Series round to variable numbers of places.
|
|
55
56
|
Column names should be in the keys if `decimals` is a
|
|
56
|
-
dict-like
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
ignored.
|
|
57
|
+
dict-like. Any columns not included in `decimals` will be left
|
|
58
|
+
as is. Elements of `decimals` which are not columns of the
|
|
59
|
+
input will be ignored.
|
|
60
60
|
*args
|
|
61
61
|
Additional keywords have no effect but might be accepted for
|
|
62
62
|
compatibility with numpy.
|
|
@@ -107,18 +107,6 @@ places as value
|
|
|
107
107
|
1 0.0 1.0
|
|
108
108
|
2 0.7 0.0
|
|
109
109
|
3 0.2 0.0
|
|
110
|
-
|
|
111
|
-
Using a Series, the number of places for specific columns can be
|
|
112
|
-
specified with the column names as index and the number of
|
|
113
|
-
decimal places as value
|
|
114
|
-
|
|
115
|
-
>>> decimals = md.Series([0, 1], index=['cats', 'dogs'])
|
|
116
|
-
>>> df.round(decimals).execute()
|
|
117
|
-
dogs cats
|
|
118
|
-
0 0.2 0.0
|
|
119
|
-
1 0.0 1.0
|
|
120
|
-
2 0.7 0.0
|
|
121
|
-
3 0.2 0.0
|
|
122
110
|
"""
|
|
123
111
|
around.__series_doc__ = """
|
|
124
112
|
Round each value in a Series to the given number of decimals.
|
|
@@ -39,7 +39,7 @@ class DataFrameBinOpMixin(DataFrameOperatorMixin):
|
|
|
39
39
|
raise NotImplementedError
|
|
40
40
|
|
|
41
41
|
@classmethod
|
|
42
|
-
def _calc_properties(cls, x1, x2=None, axis="columns"):
|
|
42
|
+
def _calc_properties(cls, x1, x2=None, axis="columns", level=None):
|
|
43
43
|
if isinstance(x1, DATAFRAME_TYPE) and (
|
|
44
44
|
x2 is None or pd.api.types.is_scalar(x2) or isinstance(x2, TENSOR_TYPE)
|
|
45
45
|
):
|
|
@@ -108,7 +108,9 @@ class DataFrameBinOpMixin(DataFrameOperatorMixin):
|
|
|
108
108
|
index = copy.copy(x1.index_value)
|
|
109
109
|
index_shape = x1.shape[0]
|
|
110
110
|
else:
|
|
111
|
-
index = infer_index_value(
|
|
111
|
+
index = infer_index_value(
|
|
112
|
+
x1.index_value, x2.index_value, level=level
|
|
113
|
+
)
|
|
112
114
|
if index.key == x1.index_value.key == x2.index_value.key and (
|
|
113
115
|
not np.isnan(x1.shape[0]) or not np.isnan(x2.shape[0])
|
|
114
116
|
):
|
|
@@ -141,7 +143,9 @@ class DataFrameBinOpMixin(DataFrameOperatorMixin):
|
|
|
141
143
|
column_shape = len(dtypes)
|
|
142
144
|
else: # pragma: no cover
|
|
143
145
|
dtypes = x1.dtypes # FIXME
|
|
144
|
-
columns = infer_index_value(
|
|
146
|
+
columns = infer_index_value(
|
|
147
|
+
x1.columns_value, x2.index_value, level=level
|
|
148
|
+
)
|
|
145
149
|
column_shape = np.nan
|
|
146
150
|
else:
|
|
147
151
|
assert axis == "index" or axis == 0
|
|
@@ -169,7 +173,9 @@ class DataFrameBinOpMixin(DataFrameOperatorMixin):
|
|
|
169
173
|
],
|
|
170
174
|
index=x1.dtypes.index,
|
|
171
175
|
)
|
|
172
|
-
index = infer_index_value(
|
|
176
|
+
index = infer_index_value(
|
|
177
|
+
x1.index_value, x2.index_value, level=level
|
|
178
|
+
)
|
|
173
179
|
index_shape = np.nan
|
|
174
180
|
return {
|
|
175
181
|
"shape": (index_shape, column_shape),
|
|
@@ -187,7 +193,9 @@ class DataFrameBinOpMixin(DataFrameOperatorMixin):
|
|
|
187
193
|
index = copy.copy(x1.index_value)
|
|
188
194
|
index_shape = x1.shape[0]
|
|
189
195
|
else:
|
|
190
|
-
index = infer_index_value(
|
|
196
|
+
index = infer_index_value(
|
|
197
|
+
x1.index_value, x2.index_value, level=level
|
|
198
|
+
)
|
|
191
199
|
if index.key == x1.index_value.key == x2.index_value.key and (
|
|
192
200
|
not np.isnan(x1.shape[0]) or not np.isnan(x2.shape[0])
|
|
193
201
|
):
|
|
@@ -237,14 +245,14 @@ class DataFrameBinOpMixin(DataFrameOperatorMixin):
|
|
|
237
245
|
self._check_inputs(x1, x2)
|
|
238
246
|
if isinstance(x1, DATAFRAME_TYPE) or isinstance(x2, DATAFRAME_TYPE):
|
|
239
247
|
df1, df2 = (x1, x2) if isinstance(x1, DATAFRAME_TYPE) else (x2, x1)
|
|
240
|
-
kw = self._calc_properties(df1, df2, axis=self.axis)
|
|
248
|
+
kw = self._calc_properties(df1, df2, axis=self.axis, level=self.level)
|
|
241
249
|
if not pd.api.types.is_scalar(df2):
|
|
242
250
|
return self.new_dataframe([x1, x2], **kw)
|
|
243
251
|
else:
|
|
244
252
|
return self.new_dataframe([df1], **kw)
|
|
245
253
|
if isinstance(x1, SERIES_TYPE) or isinstance(x2, SERIES_TYPE):
|
|
246
254
|
s1, s2 = (x1, x2) if isinstance(x1, SERIES_TYPE) else (x2, x1)
|
|
247
|
-
kw = self._calc_properties(s1, s2)
|
|
255
|
+
kw = self._calc_properties(s1, s2, level=self.level)
|
|
248
256
|
if not pd.api.types.is_scalar(s2):
|
|
249
257
|
return self.new_series([x1, x2], **kw)
|
|
250
258
|
else:
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
+
# FIXME:https://github.com/aliyun/alibabacloud-odps-maxframe-client/issues/17
|
|
15
16
|
_flex_doc_FRAME = """
|
|
16
17
|
Get {desc} of dataframe and other, element-wise (binary operator `{op_name}`).
|
|
17
18
|
Equivalent to ``{equiv}``, but with support to substitute a fill_value
|
|
@@ -127,44 +128,15 @@ circle 0
|
|
|
127
128
|
triangle 3
|
|
128
129
|
rectangle 4
|
|
129
130
|
|
|
130
|
-
>>> (df * other).execute()
|
|
131
|
-
angles degrees
|
|
132
|
-
circle 0 NaN
|
|
133
|
-
triangle 9 NaN
|
|
134
|
-
rectangle 16 NaN
|
|
135
|
-
|
|
136
131
|
>>> df.mul(other, fill_value=0).execute()
|
|
137
132
|
angles degrees
|
|
138
133
|
circle 0 0.0
|
|
139
134
|
triangle 9 0.0
|
|
140
135
|
rectangle 16 0.0
|
|
141
136
|
|
|
142
|
-
Divide by a MultiIndex by level.
|
|
143
|
-
|
|
144
|
-
>>> df_multindex = md.DataFrame({{'angles': [0, 3, 4, 4, 5, 6],
|
|
145
|
-
... 'degrees': [360, 180, 360, 360, 540, 720]}},
|
|
146
|
-
... index=[['A', 'A', 'A', 'B', 'B', 'B'],
|
|
147
|
-
... ['circle', 'triangle', 'rectangle',
|
|
148
|
-
... 'square', 'pentagon', 'hexagon']])
|
|
149
|
-
>>> df_multindex.execute()
|
|
150
|
-
angles degrees
|
|
151
|
-
A circle 0 360
|
|
152
|
-
triangle 3 180
|
|
153
|
-
rectangle 4 360
|
|
154
|
-
B square 4 360
|
|
155
|
-
pentagon 5 540
|
|
156
|
-
hexagon 6 720
|
|
157
|
-
|
|
158
|
-
>>> df.div(df_multindex, level=1, fill_value=0).execute()
|
|
159
|
-
angles degrees
|
|
160
|
-
A circle NaN 1.0
|
|
161
|
-
triangle 1.0 1.0
|
|
162
|
-
rectangle 1.0 1.0
|
|
163
|
-
B square 0.0 0.0
|
|
164
|
-
pentagon 0.0 0.0
|
|
165
|
-
hexagon 0.0 0.0
|
|
166
137
|
"""
|
|
167
138
|
|
|
139
|
+
# FIXME:https://github.com/aliyun/alibabacloud-odps-maxframe-client/issues/28
|
|
168
140
|
_flex_doc_SERIES = """
|
|
169
141
|
Return {desc} of series and other, element-wise (binary operator `{op_name}`).
|
|
170
142
|
|
|
@@ -213,6 +185,7 @@ e NaN
|
|
|
213
185
|
dtype: float64
|
|
214
186
|
"""
|
|
215
187
|
|
|
188
|
+
# FIXME: https://github.com/aliyun/alibabacloud-odps-maxframe-client/issues/48
|
|
216
189
|
_flex_comp_doc_FRAME = """
|
|
217
190
|
Get {desc} of dataframe and other, element-wise (binary operator `{op_name}`).
|
|
218
191
|
Among flexible wrappers (`eq`, `ne`, `le`, `lt`, `ge`, `gt`) to comparison
|
|
@@ -257,7 +230,8 @@ Mismatched indices will be unioned together.
|
|
|
257
230
|
|
|
258
231
|
Examples
|
|
259
232
|
--------
|
|
260
|
-
>>>
|
|
233
|
+
>>> import maxframe.dataframe as md
|
|
234
|
+
>>> df = md.DataFrame({{'cost': [250, 150, 100],
|
|
261
235
|
... 'revenue': [100, 250, 300]}},
|
|
262
236
|
... index=['A', 'B', 'C'])
|
|
263
237
|
>>> df.execute()
|
|
@@ -332,30 +306,6 @@ A False False
|
|
|
332
306
|
B False False
|
|
333
307
|
C False True
|
|
334
308
|
D False False
|
|
335
|
-
|
|
336
|
-
Compare to a MultiIndex by level.
|
|
337
|
-
|
|
338
|
-
>>> df_multindex = pd.DataFrame({{'cost': [250, 150, 100, 150, 300, 220],
|
|
339
|
-
... 'revenue': [100, 250, 300, 200, 175, 225]}},
|
|
340
|
-
... index=[['Q1', 'Q1', 'Q1', 'Q2', 'Q2', 'Q2'],
|
|
341
|
-
... ['A', 'B', 'C', 'A', 'B', 'C']])
|
|
342
|
-
>>> df_multindex.execute()
|
|
343
|
-
cost revenue
|
|
344
|
-
Q1 A 250 100
|
|
345
|
-
B 150 250
|
|
346
|
-
C 100 300
|
|
347
|
-
Q2 A 150 200
|
|
348
|
-
B 300 175
|
|
349
|
-
C 220 225
|
|
350
|
-
|
|
351
|
-
>>> df.le(df_multindex, level=1).execute()
|
|
352
|
-
cost revenue
|
|
353
|
-
Q1 A True True
|
|
354
|
-
B True True
|
|
355
|
-
C True True
|
|
356
|
-
Q2 A False True
|
|
357
|
-
B True False
|
|
358
|
-
C True False
|
|
359
309
|
"""
|
|
360
310
|
|
|
361
311
|
|
|
@@ -1086,11 +1086,11 @@ class Series(HasShapeTileable, _ToPandasMixin):
|
|
|
1086
1086
|
--------
|
|
1087
1087
|
>>> import maxframe.dataframe as md
|
|
1088
1088
|
>>> s = md.Series({'a': 1, 'b': 2, 'c': 3})
|
|
1089
|
-
>>> s.ndim
|
|
1089
|
+
>>> s.ndim
|
|
1090
1090
|
1
|
|
1091
1091
|
|
|
1092
1092
|
>>> df = md.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
|
|
1093
|
-
>>> df.ndim
|
|
1093
|
+
>>> df.ndim
|
|
1094
1094
|
2
|
|
1095
1095
|
"""
|
|
1096
1096
|
return super().ndim
|
|
@@ -1520,7 +1520,7 @@ class BaseDataFrameData(HasShapeTileableData, _ToPandasMixin):
|
|
|
1520
1520
|
self._columns_value = parse_index(dtypes.index, store_data=True)
|
|
1521
1521
|
self._dtypes_value = DtypesValue(key=tokenize(dtypes), value=dtypes)
|
|
1522
1522
|
new_shape = list(self._shape)
|
|
1523
|
-
new_shape[
|
|
1523
|
+
new_shape[-1] = len(dtypes)
|
|
1524
1524
|
self._shape = tuple(new_shape)
|
|
1525
1525
|
|
|
1526
1526
|
@property
|
|
@@ -1761,11 +1761,11 @@ class DataFrame(HasShapeTileable, _ToPandasMixin):
|
|
|
1761
1761
|
--------
|
|
1762
1762
|
>>> import maxframe.dataframe as md
|
|
1763
1763
|
>>> s = md.Series({'a': 1, 'b': 2, 'c': 3})
|
|
1764
|
-
>>> s.ndim
|
|
1764
|
+
>>> s.ndim
|
|
1765
1765
|
1
|
|
1766
1766
|
|
|
1767
1767
|
>>> df = md.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
|
|
1768
|
-
>>> df.ndim
|
|
1768
|
+
>>> df.ndim
|
|
1769
1769
|
2
|
|
1770
1770
|
"""
|
|
1771
1771
|
return super().ndim
|
|
@@ -22,7 +22,7 @@ from pandas._libs.tslibs import timezones
|
|
|
22
22
|
from pandas.tseries.frequencies import to_offset
|
|
23
23
|
from pandas.tseries.offsets import Tick
|
|
24
24
|
|
|
25
|
-
from ... import opcodes
|
|
25
|
+
from ... import opcodes
|
|
26
26
|
from ...core import OutputType
|
|
27
27
|
from ...serialization.serializables import AnyField, BoolField, Int64Field, StringField
|
|
28
28
|
from ...utils import no_default, pd_release_version
|
|
@@ -117,7 +117,7 @@ def generate_range_count(
|
|
|
117
117
|
|
|
118
118
|
|
|
119
119
|
class DataFrameDateRange(DataFrameOperator, DataFrameOperatorMixin):
|
|
120
|
-
_op_type_ =
|
|
120
|
+
_op_type_ = opcodes.DATE_RANGE
|
|
121
121
|
|
|
122
122
|
start = AnyField("start")
|
|
123
123
|
end = AnyField("end")
|
|
@@ -47,6 +47,7 @@ _EXPLAIN_TASK_SCHEMA_REGEX = re.compile(
|
|
|
47
47
|
re.MULTILINE,
|
|
48
48
|
)
|
|
49
49
|
_EXPLAIN_COLUMN_REGEX = re.compile(r"([^\(]+) \(([^)]+)\)(?:| AS ([^ ]+))(?:\n|$)")
|
|
50
|
+
_ANONYMOUS_COL_REGEX = re.compile(r"^_c\d+$")
|
|
50
51
|
|
|
51
52
|
|
|
52
53
|
@dataclasses.dataclass
|
|
@@ -272,6 +273,11 @@ def read_odps_query(
|
|
|
272
273
|
explain_str = list(inst.get_task_results().values())[0]
|
|
273
274
|
|
|
274
275
|
odps_schema = _parse_explained_schema(explain_str)
|
|
276
|
+
|
|
277
|
+
for col in odps_schema.columns:
|
|
278
|
+
if _ANONYMOUS_COL_REGEX.match(col.name) and col.name not in query:
|
|
279
|
+
raise ValueError("Need to specify names for all columns in SELECT clause.")
|
|
280
|
+
|
|
275
281
|
dtypes = odps_schema_to_pandas_dtypes(odps_schema)
|
|
276
282
|
|
|
277
283
|
if not index_col:
|