maxframe 0.1.0b5__tar.gz → 1.0.0rc1__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.0rc1}/PKG-INFO +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/codegen.py +10 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/config/config.py +4 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/__init__.py +0 -3
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/entity/__init__.py +1 -8
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/entity/objects.py +3 -45
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/graph/core.pyx +4 -4
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datastore/to_odps.py +21 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/align.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/apply.py +2 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/memory_usage.py +2 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/statistics/corr.py +3 -3
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/errors.py +13 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/extension.py +12 -0
- maxframe-1.0.0rc1/maxframe/lib/mmh3.pyi +43 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/wrapped_pickle.py +2 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/protocol.py +108 -10
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/core.pxd +3 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/core.pyi +3 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/core.pyx +54 -25
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/exception.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/pandas.py +7 -2
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/serializables/core.py +119 -12
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/base/atleast_1d.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/base/unique.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/count_nonzero.py +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/utils.py +16 -13
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe.egg-info/PKG-INFO +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe.egg-info/SOURCES.txt +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe.egg-info/requires.txt +1 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe_client/__init__.py +0 -1
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe_client/session/odps.py +45 -5
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe_client/session/task.py +41 -20
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/pyproject.toml +7 -3
- maxframe-0.1.0b5/maxframe_client/clients/spe.py +0 -104
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/MANIFEST.in +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/_utils.pxd +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/_utils.pyx +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/config/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/config/validators.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/base.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/entity/chunks.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/entity/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/entity/executable.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/entity/fuse.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/entity/output_types.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/entity/tileables.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/entity/utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/graph/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/graph/builder/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/graph/builder/base.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/graph/builder/chunk.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/graph/builder/tileable.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/graph/builder/utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/graph/entity.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/mode.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/operator/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/operator/base.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/operator/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/operator/fetch.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/operator/fuse.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/operator/objects.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/core/operator/shuffle.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/abs.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/add.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/arccos.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/arccosh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/arcsin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/arcsinh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/arctan.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/arctanh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/around.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/bitwise_and.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/bitwise_or.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/bitwise_xor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/ceil.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/cos.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/cosh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/degrees.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/docstring.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/exp.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/exp2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/expm1.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/floor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/floordiv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/greater.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/greater_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/invert.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/is_ufuncs.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/less.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/less_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/log.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/log10.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/log2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/mod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/multiply.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/negative.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/not_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/power.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/radians.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/sin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/sinh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/sqrt.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/subtract.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/tan.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/tanh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/truediv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arithmetic/trunc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/arrays.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/dataframe.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/date_range.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/from_index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/from_records.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/from_tensor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/read_csv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/read_odps_query.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/read_odps_table.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/read_parquet.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datasource/series.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datastore/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datastore/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/datastore/to_csv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/extensions/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/extensions/accessor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/extensions/reshuffle.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/fetch/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/fetch/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/groupby/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/groupby/aggregation.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/groupby/apply.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/groupby/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/groupby/cum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/groupby/fill.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/groupby/getitem.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/groupby/head.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/groupby/sample.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/groupby/transform.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/add_prefix_suffix.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/at.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/getitem.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/iat.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/iloc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/insert.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/loc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/reindex.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/rename.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/rename_axis.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/reset_index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/sample.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/set_axis.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/set_index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/setitem.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/indexing/where.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/initializer.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/merge/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/merge/append.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/merge/concat.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/merge/merge.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/_duplicate.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/accessor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/astype.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/case_when.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/check_monotonic.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/cut.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/datetimes.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/describe.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/diff.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/drop.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/drop_duplicates.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/duplicated.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/eval.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/explode.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/get_dummies.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/isin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/map.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/melt.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/pct_change.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/pivot_table.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/qcut.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/select_dtypes.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/shift.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/stack.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/string_.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/to_numeric.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/transform.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/transpose.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/misc/value_counts.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/missing/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/missing/checkna.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/missing/dropna.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/missing/fillna.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/missing/replace.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/operators.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/plotting/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/plotting/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/aggregation.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/all.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/any.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/count.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/cummax.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/cummin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/cumprod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/cumsum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/custom_reduction.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/kurtosis.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/max.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/mean.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/min.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/nunique.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/prod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/reduction_size.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/sem.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/skew.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/std.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/str_concat.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/sum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/unique.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/reduction/var.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/sort/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/sort/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/sort/sort_index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/sort/sort_values.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/statistics/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/statistics/quantile.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/tseries/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/tseries/to_datetime.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/ufunc/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/ufunc/tensor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/ufunc/ufunc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/window/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/window/aggregation.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/window/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/window/ewm.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/window/expanding.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/dataframe/window/rolling.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/env.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/pytorch/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/pytorch/run_function.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/pytorch/run_script.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/xgboost/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/xgboost/classifier.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/xgboost/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/xgboost/dmatrix.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/xgboost/predict.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/xgboost/regressor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/contrib/xgboost/train.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/utils/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/learn/utils/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/aio/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/aio/_runners.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/aio/_threads.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/aio/base.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/aio/file.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/aio/isolation.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/aio/lru.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/aio/parallelism.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/compression.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/cython/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/cython/libcpp.pxd +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/_glob.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/_oss_lib/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/_oss_lib/common.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/_oss_lib/glob.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/_oss_lib/handle.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/arrow.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/base.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/fsmap.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/hdfs.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/local.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/filesystem/oss.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/functools_compat.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/mmh3_src/MurmurHash3.cpp +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/mmh3_src/MurmurHash3.h +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/mmh3_src/mmh3module.cpp +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/sparse/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/sparse/array.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/sparse/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/sparse/matrix.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/sparse/vector.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/tblib/LICENSE +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/tblib/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/tblib/cpython.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/tblib/decorators.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/tblib/pickling_support.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/lib/version.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/mixin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/odpsio/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/odpsio/arrow.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/odpsio/schema.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/odpsio/tableio.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/odpsio/volumeio.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/opcodes.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/remote/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/remote/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/remote/run_script.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/arrow.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/maxframe_objects.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/numpy.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/scipy.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/serializables/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/serializables/field.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/serialization/serializables/field_type.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/session.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/abs.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/absolute.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/add.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/angle.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/arccos.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/arccosh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/arcsin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/arcsinh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/arctan.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/arctan2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/arctanh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/around.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/bitand.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/bitor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/bitxor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/cbrt.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/ceil.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/clip.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/conj.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/copysign.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/cos.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/cosh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/deg2rad.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/degrees.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/divide.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/exp.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/exp2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/expm1.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/fabs.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/fix.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/float_power.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/floor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/floordiv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/fmax.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/fmin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/fmod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/frexp.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/greater.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/greater_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/hypot.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/i0.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/imag.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/invert.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/isclose.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/iscomplex.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/isfinite.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/isinf.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/isnan.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/isreal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/ldexp.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/less.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/less_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/log.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/log10.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/log1p.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/log2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/logaddexp.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/logaddexp2.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/logical_and.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/logical_not.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/logical_or.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/logical_xor.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/lshift.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/maximum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/minimum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/mod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/modf.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/multiply.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/nan_to_num.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/negative.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/nextafter.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/not_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/positive.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/power.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/rad2deg.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/radians.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/real.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/reciprocal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/rint.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/rshift.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/setimag.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/setreal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/sign.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/signbit.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/sin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/sinc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/sinh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/spacing.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/sqrt.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/square.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/subtract.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/tan.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/tanh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/truediv.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/trunc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/arithmetic/utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/array_utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/base/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/base/astype.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/base/broadcast_to.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/base/ravel.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/base/transpose.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/base/where.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/arange.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/array.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/empty.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/from_dataframe.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/from_dense.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/from_sparse.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/full.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/ones.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/scalar.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/datasource/zeros.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/fetch/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/fetch/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/choose.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/compress.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/extract.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/fill_diagonal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/flatnonzero.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/getitem.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/nonzero.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/setitem.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/slice.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/take.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/indexing/unravel_index.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/merge/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/merge/stack.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/operators.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/beta.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/binomial.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/bytes.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/chisquare.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/choice.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/dirichlet.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/exponential.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/f.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/gamma.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/geometric.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/gumbel.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/hypergeometric.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/laplace.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/logistic.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/lognormal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/logseries.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/multinomial.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/multivariate_normal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/negative_binomial.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/noncentral_chisquare.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/noncentral_f.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/normal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/pareto.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/permutation.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/poisson.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/power.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/rand.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/randint.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/randn.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/random_integers.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/random_sample.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/rayleigh.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/shuffle.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/standard_cauchy.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/standard_exponential.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/standard_gamma.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/standard_normal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/standard_t.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/triangular.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/uniform.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/vonmises.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/wald.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/weibull.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/random/zipf.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/rechunk/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/rechunk/rechunk.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/all.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/allclose.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/any.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/argmax.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/argmin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/array_equal.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/core.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/cumprod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/cumsum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/max.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/mean.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/min.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nanargmax.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nanargmin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nancumprod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nancumsum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nanmax.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nanmean.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nanmin.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nanprod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nanstd.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nansum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/nanvar.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/prod.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/std.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/sum.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reduction/var.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reshape/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/reshape/reshape.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/statistics/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/statistics/percentile.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/statistics/quantile.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/ufunc/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/ufunc/ufunc.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/tensor/utils.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/typing_.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe/udf.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe.egg-info/dependency_links.txt +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe.egg-info/top_level.txt +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe_client/clients/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe_client/clients/framedriver.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe_client/fetcher.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe_client/session/__init__.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe_client/session/consts.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/maxframe_client/session/graph.py +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/setup.cfg +0 -0
- {maxframe-0.1.0b5 → maxframe-1.0.0rc1}/setup.py +0 -0
|
@@ -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
|
"""
|
|
@@ -203,8 +205,12 @@ class BigDagCodeContext(metaclass=abc.ABCMeta):
|
|
|
203
205
|
return self._session_id
|
|
204
206
|
|
|
205
207
|
def register_udf(self, udf: AbstractUDF):
|
|
208
|
+
from maxframe_framedriver.services.session import SessionManager
|
|
209
|
+
|
|
206
210
|
udf.session_id = self._session_id
|
|
207
211
|
self._udfs[udf.name] = udf
|
|
212
|
+
if self._session_id and SessionManager.initialized():
|
|
213
|
+
SessionManager.instance().register_udf(self._session_id, udf)
|
|
208
214
|
|
|
209
215
|
def get_udfs(self) -> List[AbstractUDF]:
|
|
210
216
|
return list(self._udfs.values())
|
|
@@ -344,6 +350,8 @@ def register_engine_codegen(type_: Type["BigDagCodeGenerator"]):
|
|
|
344
350
|
BUILTIN_ENGINE_SPE = "SPE"
|
|
345
351
|
BUILTIN_ENGINE_MCSQL = "MCSQL"
|
|
346
352
|
|
|
353
|
+
FAST_RANGE_INDEX_ENABLED = "codegen.fast_range_index_enabled"
|
|
354
|
+
|
|
347
355
|
|
|
348
356
|
class BigDagCodeGenerator(metaclass=abc.ABCMeta):
|
|
349
357
|
_context: BigDagCodeContext
|
|
@@ -516,12 +524,12 @@ class BigDagCodeGenerator(metaclass=abc.ABCMeta):
|
|
|
516
524
|
|
|
517
525
|
def register_udfs(self, odps_ctx: "ODPSSessionContext"):
|
|
518
526
|
for udf in self._context.get_udfs():
|
|
519
|
-
logger.info("[Session
|
|
527
|
+
logger.info("[Session=%s] Registering UDF %s", self._session_id, udf.name)
|
|
520
528
|
udf.register(odps_ctx, True)
|
|
521
529
|
|
|
522
530
|
def unregister_udfs(self, odps_ctx: "ODPSSessionContext"):
|
|
523
531
|
for udf in self._context.get_udfs():
|
|
524
|
-
logger.info("[Session
|
|
532
|
+
logger.info("[Session=%s] Unregistering UDF %s", self._session_id, udf.name)
|
|
525
533
|
udf.unregister(odps_ctx)
|
|
526
534
|
|
|
527
535
|
def get_udfs(self) -> List[AbstractUDF]:
|
|
@@ -40,6 +40,7 @@ _DEFAULT_SPE_OPERATION_TIMEOUT_SECONDS = 120
|
|
|
40
40
|
_DEFAULT_UPLOAD_BATCH_SIZE = 4096
|
|
41
41
|
_DEFAULT_TEMP_LIFECYCLE = 1
|
|
42
42
|
_DEFAULT_TASK_START_TIMEOUT = 60
|
|
43
|
+
_DEFAULT_TASK_RESTART_TIMEOUT = 300
|
|
43
44
|
_DEFAULT_LOGVIEW_HOURS = 24 * 60
|
|
44
45
|
|
|
45
46
|
|
|
@@ -309,6 +310,9 @@ default_options.register_option(
|
|
|
309
310
|
default_options.register_option(
|
|
310
311
|
"client.task_start_timeout", _DEFAULT_TASK_START_TIMEOUT, validator=is_integer
|
|
311
312
|
)
|
|
313
|
+
default_options.register_option(
|
|
314
|
+
"client.task_restart_timeout", _DEFAULT_TASK_RESTART_TIMEOUT, validator=is_integer
|
|
315
|
+
)
|
|
312
316
|
default_options.register_option("sql.enable_mcqa", True, validator=is_bool, remote=True)
|
|
313
317
|
default_options.register_option(
|
|
314
318
|
"sql.generate_comments", True, validator=is_bool, remote=True
|
|
@@ -19,7 +19,6 @@ from .entity import (
|
|
|
19
19
|
CHUNK_TYPE,
|
|
20
20
|
ENTITY_TYPE,
|
|
21
21
|
FUSE_CHUNK_TYPE,
|
|
22
|
-
OBJECT_CHUNK_TYPE,
|
|
23
22
|
OBJECT_TYPE,
|
|
24
23
|
TILEABLE_TYPE,
|
|
25
24
|
Chunk,
|
|
@@ -33,8 +32,6 @@ from .entity import (
|
|
|
33
32
|
HasShapeTileableData,
|
|
34
33
|
NotSupportTile,
|
|
35
34
|
Object,
|
|
36
|
-
ObjectChunk,
|
|
37
|
-
ObjectChunkData,
|
|
38
35
|
ObjectData,
|
|
39
36
|
OutputType,
|
|
40
37
|
Tileable,
|
|
@@ -16,14 +16,7 @@ from .chunks import CHUNK_TYPE, Chunk, ChunkData
|
|
|
16
16
|
from .core import ENTITY_TYPE, Entity, EntityData
|
|
17
17
|
from .executable import ExecutableTuple, _ExecuteAndFetchMixin
|
|
18
18
|
from .fuse import FUSE_CHUNK_TYPE, FuseChunk, FuseChunkData
|
|
19
|
-
from .objects import
|
|
20
|
-
OBJECT_CHUNK_TYPE,
|
|
21
|
-
OBJECT_TYPE,
|
|
22
|
-
Object,
|
|
23
|
-
ObjectChunk,
|
|
24
|
-
ObjectChunkData,
|
|
25
|
-
ObjectData,
|
|
26
|
-
)
|
|
19
|
+
from .objects import OBJECT_TYPE, Object, ObjectData
|
|
27
20
|
from .output_types import (
|
|
28
21
|
OutputType,
|
|
29
22
|
get_fetch_class,
|
|
@@ -14,58 +14,17 @@
|
|
|
14
14
|
|
|
15
15
|
from typing import Any, Dict
|
|
16
16
|
|
|
17
|
-
from ...serialization.serializables import FieldTypes, ListField
|
|
18
|
-
from ...utils import skip_na_call
|
|
19
|
-
from .chunks import Chunk, ChunkData
|
|
20
17
|
from .core import Entity
|
|
21
18
|
from .executable import _ToObjectMixin
|
|
22
19
|
from .tileables import TileableData
|
|
23
20
|
|
|
24
21
|
|
|
25
|
-
class ObjectChunkData(ChunkData):
|
|
26
|
-
# chunk whose data could be any serializable
|
|
27
|
-
__slots__ = ()
|
|
28
|
-
type_name = "Object"
|
|
29
|
-
|
|
30
|
-
def __init__(self, op=None, index=None, **kw):
|
|
31
|
-
super().__init__(_op=op, _index=index, **kw)
|
|
32
|
-
|
|
33
|
-
@property
|
|
34
|
-
def params(self) -> Dict[str, Any]:
|
|
35
|
-
# params return the properties which useful to rebuild a new chunk
|
|
36
|
-
return {
|
|
37
|
-
"index": self.index,
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@params.setter
|
|
41
|
-
def params(self, new_params: Dict[str, Any]):
|
|
42
|
-
params = new_params.copy()
|
|
43
|
-
params.pop("index", None) # index not needed to update
|
|
44
|
-
if params: # pragma: no cover
|
|
45
|
-
raise TypeError(f"Unknown params: {list(params)}")
|
|
46
|
-
|
|
47
|
-
@classmethod
|
|
48
|
-
def get_params_from_data(cls, data: Any) -> Dict[str, Any]:
|
|
49
|
-
return dict()
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
class ObjectChunk(Chunk):
|
|
53
|
-
__slots__ = ()
|
|
54
|
-
_allow_data_type_ = (ObjectChunkData,)
|
|
55
|
-
type_name = "Object"
|
|
56
|
-
|
|
57
|
-
|
|
58
22
|
class ObjectData(TileableData, _ToObjectMixin):
|
|
59
23
|
__slots__ = ()
|
|
60
24
|
type_name = "Object"
|
|
61
|
-
|
|
62
|
-
#
|
|
63
|
-
|
|
64
|
-
"chunks",
|
|
65
|
-
FieldTypes.reference(ObjectChunkData),
|
|
66
|
-
on_serialize=skip_na_call(lambda x: [it.data for it in x]),
|
|
67
|
-
on_deserialize=skip_na_call(lambda x: [ObjectChunk(it) for it in x]),
|
|
68
|
-
)
|
|
25
|
+
# workaround for removed field since v0.1.0b5
|
|
26
|
+
# todo remove this when all versions below v0.1.0b5 is eliminated
|
|
27
|
+
_legacy_deprecated_non_primitives = ["_chunks"]
|
|
69
28
|
|
|
70
29
|
def __init__(self, op=None, nsplits=None, **kw):
|
|
71
30
|
super().__init__(_op=op, _nsplits=nsplits, **kw)
|
|
@@ -97,4 +56,3 @@ class Object(Entity, _ToObjectMixin):
|
|
|
97
56
|
|
|
98
57
|
|
|
99
58
|
OBJECT_TYPE = (Object, ObjectData)
|
|
100
|
-
OBJECT_CHUNK_TYPE = (ObjectChunk, ObjectChunkData)
|
|
@@ -354,10 +354,10 @@ cdef class DirectedGraph:
|
|
|
354
354
|
sio.write(f'"Chunk:{self._gen_chunk_key(input_chunk, trunc_key)}" {chunk_style}\n')
|
|
355
355
|
visited.add(input_chunk.key)
|
|
356
356
|
if op.key not in visited:
|
|
357
|
-
sio.write(f'"{op_name}:{op.key[:trunc_key]}" {operator_style}\n')
|
|
357
|
+
sio.write(f'"{op_name}:{op.key[:trunc_key]}_{id(op)}" {operator_style}\n')
|
|
358
358
|
visited.add(op.key)
|
|
359
359
|
sio.write(f'"Chunk:{self._gen_chunk_key(input_chunk, trunc_key)}" -> '
|
|
360
|
-
f'"{op_name}:{op.key[:trunc_key]}"\n')
|
|
360
|
+
f'"{op_name}:{op.key[:trunc_key]}_{id(op)}"\n')
|
|
361
361
|
|
|
362
362
|
for output_chunk in (op.outputs or []):
|
|
363
363
|
if output_chunk.key not in visited:
|
|
@@ -367,9 +367,9 @@ cdef class DirectedGraph:
|
|
|
367
367
|
sio.write(f'"Chunk:{self._gen_chunk_key(output_chunk, trunc_key)}" {tmp_chunk_style}\n')
|
|
368
368
|
visited.add(output_chunk.key)
|
|
369
369
|
if op.key not in visited:
|
|
370
|
-
sio.write(f'"{op_name}:{op.key[:trunc_key]}" {operator_style}\n')
|
|
370
|
+
sio.write(f'"{op_name}:{op.key[:trunc_key]}_{id(op)}" {operator_style}\n')
|
|
371
371
|
visited.add(op.key)
|
|
372
|
-
sio.write(f'"{op_name}:{op.key[:trunc_key]}" -> '
|
|
372
|
+
sio.write(f'"{op_name}:{op.key[:trunc_key]}_{id(op)}" -> '
|
|
373
373
|
f'"Chunk:{self._gen_chunk_key(output_chunk, trunc_key)}"')
|
|
374
374
|
if show_columns:
|
|
375
375
|
sio.write(f' [ label={get_col_names(output_chunk)} ]')
|
|
@@ -18,10 +18,12 @@ import logging
|
|
|
18
18
|
from typing import List, Optional, Union
|
|
19
19
|
|
|
20
20
|
from odps.models import Table as ODPSTable
|
|
21
|
+
from odps.types import PartitionSpec
|
|
21
22
|
|
|
22
23
|
from ... import opcodes
|
|
23
24
|
from ...config import options
|
|
24
25
|
from ...core import OutputType
|
|
26
|
+
from ...odpsio import build_dataframe_table_meta
|
|
25
27
|
from ...serialization.serializables import (
|
|
26
28
|
BoolField,
|
|
27
29
|
FieldTypes,
|
|
@@ -147,6 +149,25 @@ def to_odps_table(
|
|
|
147
149
|
f"index_label needs {len(df.index.nlevels)} labels "
|
|
148
150
|
f"but it only have {len(index_label)}"
|
|
149
151
|
)
|
|
152
|
+
table_cols = set(build_dataframe_table_meta(df).table_column_names)
|
|
153
|
+
if partition:
|
|
154
|
+
partition_intersect = (
|
|
155
|
+
set(x.lower() for x in PartitionSpec(partition).keys()) & table_cols
|
|
156
|
+
)
|
|
157
|
+
if partition_intersect:
|
|
158
|
+
raise ValueError(
|
|
159
|
+
f"Data column(s) {partition_intersect} in the dataframe"
|
|
160
|
+
" cannot be used in parameter 'partition'."
|
|
161
|
+
" Use 'partition_col' instead."
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
if partition_col:
|
|
165
|
+
partition_diff = set(x.lower() for x in partition_col) - table_cols
|
|
166
|
+
if partition_diff:
|
|
167
|
+
raise ValueError(
|
|
168
|
+
f"Partition column(s) {partition_diff}"
|
|
169
|
+
" is not the data column(s) of the input dataframe."
|
|
170
|
+
)
|
|
150
171
|
|
|
151
172
|
op = DataFrameToODPSTable(
|
|
152
173
|
dtypes=df.dtypes,
|
|
@@ -138,7 +138,7 @@ class DataFrameAlign(DataFrameOperator, DataFrameOperatorMixin):
|
|
|
138
138
|
series_index = rhs.index_value.to_pandas()
|
|
139
139
|
dtypes = lhs.dtypes.reindex(
|
|
140
140
|
lhs.dtypes.index.join(series_index, how=self.join)
|
|
141
|
-
).fillna(np.dtype(
|
|
141
|
+
).fillna(np.dtype(float))
|
|
142
142
|
l_shape[1] = r_size = len(dtypes)
|
|
143
143
|
col_val = r_idx_val = parse_index(dtypes.index, store_data=True)
|
|
144
144
|
|
|
@@ -170,6 +170,8 @@ class ApplyOperator(
|
|
|
170
170
|
elif self.output_types[0] == OutputType.dataframe:
|
|
171
171
|
shape = [np.nan, np.nan]
|
|
172
172
|
shape[1 - self.axis] = df.shape[1 - self.axis]
|
|
173
|
+
if self.axis == 1:
|
|
174
|
+
shape[1] = len(dtypes)
|
|
173
175
|
shape = tuple(shape)
|
|
174
176
|
else:
|
|
175
177
|
shape = (df.shape[1 - self.axis],)
|
|
@@ -58,7 +58,7 @@ class DataFrameMemoryUsage(DataFrameOperator, DataFrameOperatorMixin):
|
|
|
58
58
|
"""
|
|
59
59
|
if df_or_series.ndim == 1:
|
|
60
60
|
# the input data is a series, a Scalar will be returned
|
|
61
|
-
return self.new_scalar([df_or_series], dtype=np.dtype(
|
|
61
|
+
return self.new_scalar([df_or_series], dtype=np.dtype(int))
|
|
62
62
|
else:
|
|
63
63
|
# the input data is a DataFrame, a Scalar will be returned
|
|
64
64
|
# calculate shape of returning series given ``op.index``
|
|
@@ -71,7 +71,7 @@ class DataFrameMemoryUsage(DataFrameOperator, DataFrameOperatorMixin):
|
|
|
71
71
|
[df_or_series],
|
|
72
72
|
index_value=self._adapt_index(df_or_series.columns_value),
|
|
73
73
|
shape=new_shape,
|
|
74
|
-
dtype=np.dtype(
|
|
74
|
+
dtype=np.dtype(int),
|
|
75
75
|
)
|
|
76
76
|
|
|
77
77
|
|
|
@@ -43,7 +43,7 @@ class DataFrameCorr(DataFrameOperator, DataFrameOperatorMixin):
|
|
|
43
43
|
def __call__(self, df_or_series):
|
|
44
44
|
if isinstance(df_or_series, SERIES_TYPE):
|
|
45
45
|
inputs = filter_inputs([df_or_series, self.other])
|
|
46
|
-
return self.new_scalar(inputs, dtype=np.dtype(
|
|
46
|
+
return self.new_scalar(inputs, dtype=np.dtype(float))
|
|
47
47
|
else:
|
|
48
48
|
|
|
49
49
|
def _filter_numeric(obj):
|
|
@@ -60,7 +60,7 @@ class DataFrameCorr(DataFrameOperator, DataFrameOperatorMixin):
|
|
|
60
60
|
inputs = filter_inputs([df_or_series, self.other])
|
|
61
61
|
if self.axis is None:
|
|
62
62
|
dtypes = pd.Series(
|
|
63
|
-
[np.dtype(
|
|
63
|
+
[np.dtype(float)] * len(df_or_series.dtypes),
|
|
64
64
|
index=df_or_series.dtypes.index,
|
|
65
65
|
)
|
|
66
66
|
return self.new_dataframe(
|
|
@@ -85,7 +85,7 @@ class DataFrameCorr(DataFrameOperator, DataFrameOperatorMixin):
|
|
|
85
85
|
return self.new_series(
|
|
86
86
|
inputs,
|
|
87
87
|
shape=shape,
|
|
88
|
-
dtype=np.dtype(
|
|
88
|
+
dtype=np.dtype(float),
|
|
89
89
|
index_value=new_index_value,
|
|
90
90
|
)
|
|
91
91
|
|
|
@@ -17,5 +17,18 @@ class MaxFrameError(Exception):
|
|
|
17
17
|
pass
|
|
18
18
|
|
|
19
19
|
|
|
20
|
+
class MaxFrameIntentionalError(MaxFrameError):
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
|
|
20
24
|
class MaxFrameUserError(MaxFrameError):
|
|
21
25
|
pass
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class NoTaskServerResponseError(MaxFrameError):
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class SessionAlreadyClosedError(MaxFrameError):
|
|
33
|
+
def __init__(self, session_id: str):
|
|
34
|
+
super().__init__(f"Session {session_id} is already closed")
|
|
@@ -48,6 +48,18 @@ class MaxFrameExtension(metaclass=abc.ABCMeta):
|
|
|
48
48
|
"""
|
|
49
49
|
pass
|
|
50
50
|
|
|
51
|
+
@classmethod
|
|
52
|
+
async def reload_session(cls, session_id: str) -> None:
|
|
53
|
+
"""
|
|
54
|
+
Reload the session state when the session is recovered from failover.
|
|
55
|
+
|
|
56
|
+
Parameters
|
|
57
|
+
----------
|
|
58
|
+
session_id : str
|
|
59
|
+
The session id.
|
|
60
|
+
"""
|
|
61
|
+
pass
|
|
62
|
+
|
|
51
63
|
@classmethod
|
|
52
64
|
def init_service_extension(cls) -> None:
|
|
53
65
|
"""
|
|
@@ -0,0 +1,43 @@
|
|
|
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 Tuple
|
|
16
|
+
|
|
17
|
+
def hash(key, seed=0, signed=True) -> int:
|
|
18
|
+
"""
|
|
19
|
+
Return a 32 bit integer.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
def hash_from_buffer(key, seed=0, signed=True) -> int:
|
|
23
|
+
"""
|
|
24
|
+
Return a 32 bit integer. Designed for large memory-views such as numpy arrays.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def hash64(key, seed=0, x64arch=True, signed=True) -> Tuple[int, int]:
|
|
28
|
+
"""
|
|
29
|
+
Return a tuple of two 64 bit integers for a string. Optimized for
|
|
30
|
+
the x64 bit architecture when x64arch=True, otherwise for x86.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
def hash128(key, seed=0, x64arch=True, signed=False) -> int:
|
|
34
|
+
"""
|
|
35
|
+
Return a 128 bit long integer. Optimized for the x64 bit architecture
|
|
36
|
+
when x64arch=True, otherwise for x86.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
def hash_bytes(key, seed=0, x64arch=True) -> bytes:
|
|
40
|
+
"""
|
|
41
|
+
Return a 128 bit hash value as bytes for a string. Optimized for the
|
|
42
|
+
x64 bit architecture when x64arch=True, otherwise for the x86.
|
|
43
|
+
"""
|
|
@@ -120,7 +120,8 @@ class _UnpickleSwitch:
|
|
|
120
120
|
@functools.wraps(func)
|
|
121
121
|
async def wrapped(*args, **kwargs):
|
|
122
122
|
with _UnpickleSwitch(forbidden=self._forbidden):
|
|
123
|
-
|
|
123
|
+
ret = await func(*args, **kwargs)
|
|
124
|
+
return ret
|
|
124
125
|
|
|
125
126
|
else:
|
|
126
127
|
|
|
@@ -32,6 +32,7 @@ from .serialization.serializables import (
|
|
|
32
32
|
EnumField,
|
|
33
33
|
FieldTypes,
|
|
34
34
|
Float64Field,
|
|
35
|
+
Int32Field,
|
|
35
36
|
ListField,
|
|
36
37
|
ReferenceField,
|
|
37
38
|
Serializable,
|
|
@@ -71,6 +72,9 @@ class DagStatus(enum.Enum):
|
|
|
71
72
|
CANCELLING = 4
|
|
72
73
|
CANCELLED = 5
|
|
73
74
|
|
|
75
|
+
def is_terminated(self):
|
|
76
|
+
return self in (DagStatus.CANCELLED, DagStatus.SUCCEEDED, DagStatus.FAILED)
|
|
77
|
+
|
|
74
78
|
|
|
75
79
|
class DimensionIndex(Serializable):
|
|
76
80
|
is_slice: bool = BoolField("is_slice", default=None)
|
|
@@ -190,9 +194,9 @@ class ErrorInfo(JsonSerializable):
|
|
|
190
194
|
"error_tracebacks", FieldTypes.list
|
|
191
195
|
)
|
|
192
196
|
raw_error_source: ErrorSource = EnumField(
|
|
193
|
-
"raw_error_source", ErrorSource, FieldTypes.int8
|
|
197
|
+
"raw_error_source", ErrorSource, FieldTypes.int8, default=None
|
|
194
198
|
)
|
|
195
|
-
raw_error_data: Optional[Exception] = AnyField("raw_error_data")
|
|
199
|
+
raw_error_data: Optional[Exception] = AnyField("raw_error_data", default=None)
|
|
196
200
|
|
|
197
201
|
@classmethod
|
|
198
202
|
def from_exception(cls, exc: Exception):
|
|
@@ -201,20 +205,29 @@ class ErrorInfo(JsonSerializable):
|
|
|
201
205
|
return cls(messages, tracebacks, ErrorSource.PYTHON, exc)
|
|
202
206
|
|
|
203
207
|
def reraise(self):
|
|
204
|
-
if
|
|
208
|
+
if (
|
|
209
|
+
self.raw_error_source == ErrorSource.PYTHON
|
|
210
|
+
and self.raw_error_data is not None
|
|
211
|
+
):
|
|
205
212
|
raise self.raw_error_data
|
|
206
213
|
raise RemoteException(self.error_messages, self.error_tracebacks, [])
|
|
207
214
|
|
|
208
215
|
@classmethod
|
|
209
216
|
def from_json(cls, serialized: dict) -> "ErrorInfo":
|
|
210
217
|
kw = serialized.copy()
|
|
211
|
-
kw
|
|
218
|
+
if kw.get("raw_error_source") is not None:
|
|
219
|
+
kw["raw_error_source"] = ErrorSource(serialized["raw_error_source"])
|
|
220
|
+
else:
|
|
221
|
+
kw["raw_error_source"] = None
|
|
222
|
+
|
|
212
223
|
if kw.get("raw_error_data"):
|
|
213
224
|
bufs = [base64.b64decode(s) for s in kw["raw_error_data"]]
|
|
214
225
|
try:
|
|
215
226
|
kw["raw_error_data"] = pickle.loads(bufs[0], buffers=bufs[1:])
|
|
216
227
|
except:
|
|
217
|
-
|
|
228
|
+
# both error source and data shall be None to make sure
|
|
229
|
+
# RemoteException is raised.
|
|
230
|
+
kw["raw_error_source"] = kw["raw_error_data"] = None
|
|
218
231
|
return cls(**kw)
|
|
219
232
|
|
|
220
233
|
def to_json(self) -> dict:
|
|
@@ -227,7 +240,12 @@ class ErrorInfo(JsonSerializable):
|
|
|
227
240
|
if isinstance(self.raw_error_data, (PickleContainer, RemoteException)):
|
|
228
241
|
err_data_bufs = self.raw_error_data.get_buffers()
|
|
229
242
|
elif isinstance(self.raw_error_data, BaseException):
|
|
230
|
-
|
|
243
|
+
try:
|
|
244
|
+
err_data_bufs = pickle_buffers(self.raw_error_data)
|
|
245
|
+
except:
|
|
246
|
+
err_data_bufs = None
|
|
247
|
+
ret["raw_error_source"] = None
|
|
248
|
+
|
|
231
249
|
if err_data_bufs:
|
|
232
250
|
ret["raw_error_data"] = [
|
|
233
251
|
base64.b64encode(s).decode() for s in err_data_bufs
|
|
@@ -249,9 +267,17 @@ class DagInfo(JsonSerializable):
|
|
|
249
267
|
error_info: Optional[ErrorInfo] = ReferenceField("error_info", default=None)
|
|
250
268
|
start_timestamp: Optional[float] = Float64Field("start_timestamp", default=None)
|
|
251
269
|
end_timestamp: Optional[float] = Float64Field("end_timestamp", default=None)
|
|
270
|
+
subdag_infos: Dict[str, "SubDagInfo"] = DictField(
|
|
271
|
+
"subdag_infos",
|
|
272
|
+
key_type=FieldTypes.string,
|
|
273
|
+
value_type=FieldTypes.reference,
|
|
274
|
+
default_factory=dict,
|
|
275
|
+
)
|
|
252
276
|
|
|
253
277
|
@classmethod
|
|
254
|
-
def from_json(cls, serialized: dict) -> "DagInfo":
|
|
278
|
+
def from_json(cls, serialized: dict) -> Optional["DagInfo"]:
|
|
279
|
+
if serialized is None:
|
|
280
|
+
return None
|
|
255
281
|
kw = serialized.copy()
|
|
256
282
|
kw["status"] = DagStatus(kw["status"])
|
|
257
283
|
if kw.get("tileable_to_result_infos"):
|
|
@@ -261,6 +287,10 @@ class DagInfo(JsonSerializable):
|
|
|
261
287
|
}
|
|
262
288
|
if kw.get("error_info"):
|
|
263
289
|
kw["error_info"] = ErrorInfo.from_json(kw["error_info"])
|
|
290
|
+
if kw.get("subdag_infos"):
|
|
291
|
+
kw["subdag_infos"] = {
|
|
292
|
+
k: SubDagInfo.from_json(v) for k, v in kw["subdag_infos"].items()
|
|
293
|
+
}
|
|
264
294
|
return DagInfo(**kw)
|
|
265
295
|
|
|
266
296
|
def to_json(self) -> dict:
|
|
@@ -279,6 +309,8 @@ class DagInfo(JsonSerializable):
|
|
|
279
309
|
}
|
|
280
310
|
if self.error_info:
|
|
281
311
|
ret["error_info"] = self.error_info.to_json()
|
|
312
|
+
if self.subdag_infos:
|
|
313
|
+
ret["subdag_infos"] = {k: v.to_json() for k, v in self.subdag_infos.items()}
|
|
282
314
|
return ret
|
|
283
315
|
|
|
284
316
|
|
|
@@ -302,7 +334,9 @@ class SessionInfo(JsonSerializable):
|
|
|
302
334
|
error_info: Optional[ErrorInfo] = ReferenceField("error_info", default=None)
|
|
303
335
|
|
|
304
336
|
@classmethod
|
|
305
|
-
def from_json(cls, serialized: dict) -> "SessionInfo":
|
|
337
|
+
def from_json(cls, serialized: dict) -> Optional["SessionInfo"]:
|
|
338
|
+
if serialized is None:
|
|
339
|
+
return None
|
|
306
340
|
kw = serialized.copy()
|
|
307
341
|
if kw.get("dag_infos"):
|
|
308
342
|
kw["dag_infos"] = {
|
|
@@ -320,7 +354,10 @@ class SessionInfo(JsonSerializable):
|
|
|
320
354
|
"idle_timestamp": self.idle_timestamp,
|
|
321
355
|
}
|
|
322
356
|
if self.dag_infos:
|
|
323
|
-
ret["dag_infos"] = {
|
|
357
|
+
ret["dag_infos"] = {
|
|
358
|
+
k: v.to_json() if v is not None else None
|
|
359
|
+
for k, v in self.dag_infos.items()
|
|
360
|
+
}
|
|
324
361
|
if self.error_info:
|
|
325
362
|
ret["error_info"] = self.error_info.to_json()
|
|
326
363
|
return ret
|
|
@@ -342,7 +379,25 @@ class ExecuteDagRequest(Serializable):
|
|
|
342
379
|
)
|
|
343
380
|
|
|
344
381
|
|
|
345
|
-
class
|
|
382
|
+
class SubDagSubmitInstanceInfo(JsonSerializable):
|
|
383
|
+
submit_reason: str = StringField("submit_reason")
|
|
384
|
+
instance_id: str = StringField("instance_id")
|
|
385
|
+
subquery_id: Optional[int] = Int32Field("subquery_id", default=None)
|
|
386
|
+
|
|
387
|
+
@classmethod
|
|
388
|
+
def from_json(cls, serialized: dict) -> "SubDagSubmitInstanceInfo":
|
|
389
|
+
return SubDagSubmitInstanceInfo(**serialized)
|
|
390
|
+
|
|
391
|
+
def to_json(self) -> dict:
|
|
392
|
+
ret = {
|
|
393
|
+
"submit_reason": self.submit_reason,
|
|
394
|
+
"instance_id": self.instance_id,
|
|
395
|
+
"subquery_id": self.subquery_id,
|
|
396
|
+
}
|
|
397
|
+
return ret
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
class SubDagInfo(JsonSerializable):
|
|
346
401
|
subdag_id: str = StringField("subdag_id")
|
|
347
402
|
status: DagStatus = EnumField("status", DagStatus, FieldTypes.int8, default=None)
|
|
348
403
|
progress: float = Float64Field("progress", default=None)
|
|
@@ -355,9 +410,52 @@ class SubDagInfo(Serializable):
|
|
|
355
410
|
FieldTypes.reference,
|
|
356
411
|
default_factory=dict,
|
|
357
412
|
)
|
|
413
|
+
start_timestamp: Optional[float] = Float64Field("start_timestamp", default=None)
|
|
414
|
+
end_timestamp: Optional[float] = Float64Field("end_timestamp", default=None)
|
|
415
|
+
submit_instances: List[SubDagSubmitInstanceInfo] = ListField(
|
|
416
|
+
"submit_instances",
|
|
417
|
+
FieldTypes.reference,
|
|
418
|
+
default_factory=list,
|
|
419
|
+
)
|
|
420
|
+
|
|
421
|
+
@classmethod
|
|
422
|
+
def from_json(cls, serialized: dict) -> "SubDagInfo":
|
|
423
|
+
kw = serialized.copy()
|
|
424
|
+
kw["status"] = DagStatus(kw["status"])
|
|
425
|
+
if kw.get("tileable_to_result_infos"):
|
|
426
|
+
kw["tileable_to_result_infos"] = {
|
|
427
|
+
k: ResultInfo.from_json(s)
|
|
428
|
+
for k, s in kw["tileable_to_result_infos"].items()
|
|
429
|
+
}
|
|
430
|
+
if kw.get("error_info"):
|
|
431
|
+
kw["error_info"] = ErrorInfo.from_json(kw["error_info"])
|
|
432
|
+
if kw.get("submit_instances"):
|
|
433
|
+
kw["submit_instances"] = [
|
|
434
|
+
SubDagSubmitInstanceInfo.from_json(s) for s in kw["submit_instances"]
|
|
435
|
+
]
|
|
436
|
+
return SubDagInfo(**kw)
|
|
437
|
+
|
|
438
|
+
def to_json(self) -> dict:
|
|
439
|
+
ret = {
|
|
440
|
+
"subdag_id": self.subdag_id,
|
|
441
|
+
"status": self.status.value,
|
|
442
|
+
"progress": self.progress,
|
|
443
|
+
"start_timestamp": self.start_timestamp,
|
|
444
|
+
"end_timestamp": self.end_timestamp,
|
|
445
|
+
}
|
|
446
|
+
if self.error_info:
|
|
447
|
+
ret["error_info"] = self.error_info.to_json()
|
|
448
|
+
if self.tileable_to_result_infos:
|
|
449
|
+
ret["tileable_to_result_infos"] = {
|
|
450
|
+
k: v.to_json() for k, v in self.tileable_to_result_infos.items()
|
|
451
|
+
}
|
|
452
|
+
if self.submit_instances:
|
|
453
|
+
ret["submit_instances"] = [i.to_json() for i in self.submit_instances]
|
|
454
|
+
return ret
|
|
358
455
|
|
|
359
456
|
|
|
360
457
|
class ExecuteSubDagRequest(Serializable):
|
|
458
|
+
subdag_id: str = StringField("subdag_id")
|
|
361
459
|
dag: TileableGraph = ReferenceField(
|
|
362
460
|
"dag",
|
|
363
461
|
on_serialize=SerializableGraph.from_graph,
|
|
@@ -18,6 +18,9 @@ from libc.stdint cimport int32_t, uint64_t
|
|
|
18
18
|
cdef class Serializer:
|
|
19
19
|
cdef int _serializer_id
|
|
20
20
|
|
|
21
|
+
cpdef bint is_public_data_exist(self, dict context, object key)
|
|
22
|
+
cpdef put_public_data(self, dict context, object key, object value)
|
|
23
|
+
cpdef get_public_data(self, dict context, object key)
|
|
21
24
|
cpdef serial(self, object obj, dict context)
|
|
22
25
|
cpdef deserial(self, list serialized, dict context, list subs)
|
|
23
26
|
cpdef on_deserial_error(
|
|
@@ -29,6 +29,9 @@ class PickleContainer:
|
|
|
29
29
|
|
|
30
30
|
class Serializer:
|
|
31
31
|
serializer_id: int
|
|
32
|
+
def is_public_data_exist(self, context: Dict, key: Any) -> bool: ...
|
|
33
|
+
def put_public_data(self, context: Dict, key: Any, value: Any) -> None: ...
|
|
34
|
+
def get_public_data(self, context: Dict, key: Any) -> Any: ...
|
|
32
35
|
def serial(self, obj: Any, context: Dict): ...
|
|
33
36
|
def deserial(self, serialized: List, context: Dict, subs: List[Any]): ...
|
|
34
37
|
def on_deserial_error(
|