perspective-python 3.0.0rc6__tar.gz → 3.0.1__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.
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/Cargo.lock +9 -7
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/PKG-INFO +13 -1
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/__init__.py +1 -1
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/pyproject.toml +13 -1
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/Cargo.toml +1 -1
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/client.md +8 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table.md +11 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/on_delete.md +5 -1
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/on_update.md +5 -1
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view.md +97 -17
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/Cargo.toml +3 -3
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/build/main.rs +4 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/docs/index.html +1 -1
- perspective_python-3.0.1/rust/perspective-python/docs/lib.md +528 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/__init__.py +1 -1
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/src/lib.rs +1 -0
- {perspective_python-3.0.0rc6.data → perspective_python-3.0.1.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/package.json +2 -2
- perspective_python-3.0.1.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/253.21bd87061737b28bdb5b.js +18 -0
- perspective_python-3.0.1.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/905.bda9d13f81bc1d4190ff.js +1 -0
- perspective_python-3.0.1.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/remoteEntry.2d479254617fc3abef25.js +1 -0
- perspective_python-3.0.0rc6.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/253.68e6568b5970b09d562f.js +0 -18
- perspective_python-3.0.0rc6.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/905.d3bbc3d5954582d507bb.js +0 -1
- perspective_python-3.0.0rc6.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/remoteEntry.f837ca9d296229985161.js +0 -1
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/Cargo.toml +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/extension/finos-perspective-nbextension.json +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/handlers/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/handlers/aiohttp.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/handlers/starlette.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/handlers/tornado.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/psp_cffi.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/templates/exported_widget.html.jinja +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/conftest.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/core/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/core/test_async.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/core/test_threadpool.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/server/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/server/test_server.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/server/test_session.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/single_threaded/test_single_threaded.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/arrow/date32.arrow +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/arrow/date64.arrow +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/arrow/dict.arrow +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/arrow/dict_update.arrow +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/arrow/int_float_str.arrow +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/arrow/int_float_str_file.arrow +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/arrow/int_float_str_update.arrow +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/object_sequence.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_delete.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_exception.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_leaks.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_ports.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_remove.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_table.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_table_arrow.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_table_datetime.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_table_infer.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_table_limit.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_table_numpy.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_table_pandas.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_to_arrow.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_to_arrow_lz4.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_to_format.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_update.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_update_arrow.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_update_pandas.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_view.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/table/test_view_expression.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/viewer/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/viewer/test_validate.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/viewer/test_viewer.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/widget/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/widget/test_widget.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/tests/widget/test_widget_pandas.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/viewer/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/viewer/validate.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/viewer/viewer.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/viewer/viewer_traitlets.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/widget/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/perspective/widget/widget.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/build.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/client/get_hosted_table_names.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/client/open_table.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/client/set_loop_callback.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/client/system_info.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/client/table.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/client/terminate.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/index.html +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/clear.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/columns.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/delete.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/get_client.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/get_features.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/get_index.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/get_limit.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/get_num_views.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/make_port.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/on_delete.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/remove.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/remove_delete.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/replace.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/schema.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/size.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/update.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/validate_expressions.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table/view.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/collapse.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/column_paths.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/delete.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/dimensions.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/expand.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/expression_schema.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/get_config.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/get_min_max.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/num_columns.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/num_rows.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/remove_delete.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/remove_update.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/schema.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/set_depth.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/to_arrow.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/to_columns.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/to_columns_string.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/to_csv.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/to_json.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view/to_json_string.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/client.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/config/aggregates.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/config/column_type.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/config/expressions.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/config/filters.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/config/mod.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/config/plugin.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/config/sort.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/config/view_config.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/lib.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/session.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/table.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/table_data.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/utils/clone.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/utils/logging.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/utils/mod.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/utils/tests/clone.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/utils/tests/mod.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/src/rust/view.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/README.md +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/runtime/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/runtime/bench.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/runtime/perspective_benchmark.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/runtime/run_perspective_benchmark.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/tornado/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/tornado/async_server.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/tornado/bench.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/tornado/distributed_mode.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/tornado/server/new_api.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/tornado/server/old_api.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/bench/tornado/server_mode.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/build/psp.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/handlers/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/handlers/aiohttp.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/handlers/starlette.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/handlers/tornado.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/psp_cffi.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/conftest.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/core/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/core/test_async.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/core/test_threadpool.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/server/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/server/test_server.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/server/test_session.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/single_threaded/test_single_threaded.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/object_sequence.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_delete.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_exception.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_leaks.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_ports.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_remove.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_table.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_table_arrow.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_table_datetime.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_table_infer.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_table_limit.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_table_numpy.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_table_pandas.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_to_arrow.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_to_arrow_lz4.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_to_format.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_update.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_update_arrow.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_update_pandas.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_view.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/table/test_view_expression.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/viewer/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/viewer/test_validate.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/viewer/test_viewer.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/widget/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/widget/test_widget.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/tests/widget/test_widget_pandas.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/viewer/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/viewer/validate.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/viewer/viewer.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/viewer/viewer_traitlets.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/widget/__init__.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/perspective/widget/widget.py +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/src/client/client_sync.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/src/client/mod.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/src/client/python.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/src/server/mod.rs +0 -0
- {perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/src/server/server_sync.rs +0 -0
- {perspective_python-3.0.0rc6.data → perspective_python-3.0.1.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/install.json +0 -0
- /perspective_python-3.0.0rc6.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/253.68e6568b5970b09d562f.js.LICENSE.txt → /perspective_python-3.0.1.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/253.21bd87061737b28bdb5b.js.LICENSE.txt +0 -0
- {perspective_python-3.0.0rc6.data → perspective_python-3.0.1.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/style.js +0 -0
- {perspective_python-3.0.0rc6.data → perspective_python-3.0.1.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/third-party-licenses.json +0 -0
|
@@ -1783,7 +1783,7 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
|
|
1783
1783
|
|
|
1784
1784
|
[[package]]
|
|
1785
1785
|
name = "perspective"
|
|
1786
|
-
version = "3.0.
|
|
1786
|
+
version = "3.0.1"
|
|
1787
1787
|
dependencies = [
|
|
1788
1788
|
"async-lock",
|
|
1789
1789
|
"axum",
|
|
@@ -1823,7 +1823,7 @@ dependencies = [
|
|
|
1823
1823
|
|
|
1824
1824
|
[[package]]
|
|
1825
1825
|
name = "perspective-client"
|
|
1826
|
-
version = "3.0.
|
|
1826
|
+
version = "3.0.1"
|
|
1827
1827
|
dependencies = [
|
|
1828
1828
|
"async-lock",
|
|
1829
1829
|
"futures",
|
|
@@ -1845,7 +1845,7 @@ dependencies = [
|
|
|
1845
1845
|
|
|
1846
1846
|
[[package]]
|
|
1847
1847
|
name = "perspective-js"
|
|
1848
|
-
version = "3.0.
|
|
1848
|
+
version = "3.0.1"
|
|
1849
1849
|
dependencies = [
|
|
1850
1850
|
"anyhow",
|
|
1851
1851
|
"base64 0.13.1",
|
|
@@ -1874,7 +1874,7 @@ dependencies = [
|
|
|
1874
1874
|
|
|
1875
1875
|
[[package]]
|
|
1876
1876
|
name = "perspective-lint"
|
|
1877
|
-
version = "3.0.
|
|
1877
|
+
version = "3.0.1"
|
|
1878
1878
|
dependencies = [
|
|
1879
1879
|
"glob",
|
|
1880
1880
|
"yew-fmt",
|
|
@@ -1882,7 +1882,7 @@ dependencies = [
|
|
|
1882
1882
|
|
|
1883
1883
|
[[package]]
|
|
1884
1884
|
name = "perspective-python"
|
|
1885
|
-
version = "3.0.
|
|
1885
|
+
version = "3.0.1"
|
|
1886
1886
|
dependencies = [
|
|
1887
1887
|
"async-lock",
|
|
1888
1888
|
"cmake",
|
|
@@ -1902,21 +1902,23 @@ dependencies = [
|
|
|
1902
1902
|
|
|
1903
1903
|
[[package]]
|
|
1904
1904
|
name = "perspective-server"
|
|
1905
|
-
version = "3.0.
|
|
1905
|
+
version = "3.0.1"
|
|
1906
1906
|
dependencies = [
|
|
1907
1907
|
"async-lock",
|
|
1908
|
+
"base64 0.22.1",
|
|
1908
1909
|
"cmake",
|
|
1909
1910
|
"cxx",
|
|
1910
1911
|
"cxx-build",
|
|
1911
1912
|
"futures",
|
|
1912
1913
|
"num_cpus",
|
|
1913
1914
|
"perspective-client",
|
|
1915
|
+
"regex",
|
|
1914
1916
|
"tracing",
|
|
1915
1917
|
]
|
|
1916
1918
|
|
|
1917
1919
|
[[package]]
|
|
1918
1920
|
name = "perspective-viewer"
|
|
1919
|
-
version = "3.0.
|
|
1921
|
+
version = "3.0.1"
|
|
1920
1922
|
dependencies = [
|
|
1921
1923
|
"anyhow",
|
|
1922
1924
|
"async-lock",
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: perspective-python
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.1
|
|
4
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
4
5
|
Classifier: Programming Language :: Rust
|
|
5
6
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Framework :: Jupyter :: JupyterLab
|
|
13
|
+
Classifier: Framework :: Jupyter :: JupyterLab :: 3
|
|
14
|
+
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions
|
|
15
|
+
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt
|
|
16
|
+
Requires-Dist: jinja2 >=2.0, <4
|
|
17
|
+
Requires-Dist: ipywidgets >=7.5.1, <9
|
|
6
18
|
Summary: A data visualization and analytics component, especially well-suited for large and/or streaming datasets.
|
|
7
19
|
Home-Page: https://perspective.finos.org
|
|
8
20
|
Author: Andrew Stein <steinlink@gmail.com>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
# ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
|
11
11
|
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
12
12
|
|
|
13
|
-
__version__ = "3.0.
|
|
13
|
+
__version__ = "3.0.1"
|
|
14
14
|
__all__ = [
|
|
15
15
|
"_jupyter_labextension_paths",
|
|
16
16
|
"PerspectiveError",
|
|
@@ -19,13 +19,25 @@ name = "perspective-python"
|
|
|
19
19
|
requires-python = ">=3.9"
|
|
20
20
|
dynamic = ["version"]
|
|
21
21
|
classifiers = [
|
|
22
|
+
"Development Status :: 5 - Production/Stable",
|
|
22
23
|
"Programming Language :: Rust",
|
|
23
24
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
25
|
+
"Programming Language :: Python :: 3",
|
|
26
|
+
"Programming Language :: Python :: 3.9",
|
|
27
|
+
"Programming Language :: Python :: 3.10",
|
|
28
|
+
"Programming Language :: Python :: 3.11",
|
|
29
|
+
"Programming Language :: Python :: 3.12",
|
|
30
|
+
"Framework :: Jupyter :: JupyterLab",
|
|
31
|
+
"Framework :: Jupyter :: JupyterLab :: 3",
|
|
32
|
+
"Framework :: Jupyter :: JupyterLab :: Extensions",
|
|
33
|
+
# "Framework :: Jupyter :: JupyterLab :: Extensions :: Mime Renderers",
|
|
34
|
+
"Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt",
|
|
24
35
|
]
|
|
36
|
+
dependencies = ["Jinja2>=2.0,<4", "ipywidgets>=7.5.1,<9"]
|
|
25
37
|
|
|
26
38
|
[tool.maturin]
|
|
27
39
|
module-name = "perspective"
|
|
28
|
-
data = "perspective_python-3.0.
|
|
40
|
+
data = "perspective_python-3.0.1.data"
|
|
29
41
|
features = ["pyo3/extension-module"]
|
|
30
42
|
include = [
|
|
31
43
|
{ path = "perspective/*libpsp.so", format = "wheel" },
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
[package]
|
|
14
14
|
name = "perspective-client"
|
|
15
|
-
version = "3.0.
|
|
15
|
+
version = "3.0.1"
|
|
16
16
|
authors = ["Andrew Stein <steinlink@gmail.com>"]
|
|
17
17
|
edition = "2021"
|
|
18
18
|
description = "A data visualization and analytics component, especially well-suited for large and/or streaming datasets."
|
{perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/client.md
RENAMED
|
@@ -4,6 +4,10 @@ transport like a WebSocket.
|
|
|
4
4
|
|
|
5
5
|
<div class="javascript">
|
|
6
6
|
|
|
7
|
+
<div class="warning">
|
|
8
|
+
The examples in this module are in JavaScript. See <a href="https://docs.rs/crate/perspective/latest"><code>perspective</code></a> docs for the Rust API.
|
|
9
|
+
</div>
|
|
10
|
+
|
|
7
11
|
The browser and node.js libraries both support the `websocket(url)` constructor,
|
|
8
12
|
which connects to a remote `perspective_server::Server` instance over a
|
|
9
13
|
WebSocket transport.
|
|
@@ -40,6 +44,10 @@ import { default as client } from "@finos/perspective";
|
|
|
40
44
|
</div>
|
|
41
45
|
<div class="python">
|
|
42
46
|
|
|
47
|
+
<div class="warning">
|
|
48
|
+
The examples in this module are in Python. See <a href="https://docs.rs/crate/perspective/latest"><code>perspective</code></a> docs for the Rust API.
|
|
49
|
+
</div>
|
|
50
|
+
|
|
43
51
|
# Python Examples
|
|
44
52
|
|
|
45
53
|
Create a `perspective_server::Server` and a local, synchronous [`Client`]
|
{perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/table.md
RENAMED
|
@@ -12,3 +12,14 @@ The schema of a [`Table`] is _immutable after creation_, which means the column
|
|
|
12
12
|
names and data types cannot be changed after the [`Table`] has been created.
|
|
13
13
|
Columns cannot be added or deleted after creation either, but a [`View`] can be
|
|
14
14
|
used to select an arbitrary set of columns from the [`Table`].
|
|
15
|
+
|
|
16
|
+
<div class="javascript">
|
|
17
|
+
<div class="warning">
|
|
18
|
+
The examples in this module are in JavaScript. See <a href="https://docs.rs/crate/perspective/latest"><code>perspective</code></a> docs for the Rust API.
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="python">
|
|
22
|
+
<div class="warning">
|
|
23
|
+
The examples in this module are in Python. See <a href="https://docs.rs/crate/perspective/latest"><code>perspective</code></a> docs for the Rust API.
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
Register a callback with this [`View`]. Whenever the [`View`] is deleted, this
|
|
2
2
|
callback will be invoked.
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
<div class="javascript">
|
|
5
|
+
|
|
6
|
+
# JavaScript Examples
|
|
5
7
|
|
|
6
8
|
```javascript
|
|
7
9
|
// attach an `on_delete` callback
|
|
8
10
|
view.on_delete(() => console.log("Deleted!"));
|
|
9
11
|
```
|
|
12
|
+
|
|
13
|
+
</div>
|
|
@@ -12,7 +12,9 @@ which is the new data that was updated for each cell or each row.
|
|
|
12
12
|
`OnUpdateOptions { mode: Some(OnUpdateMode::Row) }`, then `delta` is an
|
|
13
13
|
Arrow of the updated rows. Otherwise `delta` will be [`Option::None`].
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
<div class="javascript">
|
|
16
|
+
|
|
17
|
+
# JavaScript Examples
|
|
16
18
|
|
|
17
19
|
```javascript
|
|
18
20
|
// Attach an `on_update` callback
|
|
@@ -23,3 +25,5 @@ view.on_update((updated) => console.log(updated.port_id));
|
|
|
23
25
|
// `on_update` with row deltas
|
|
24
26
|
view.on_update((updated) => console.log(updated.delta), { mode: "row" });
|
|
25
27
|
```
|
|
28
|
+
|
|
29
|
+
</div>
|
{perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-client/docs/view.md
RENAMED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
The [`View`] struct is Perspective's query and serialization interface. It
|
|
2
2
|
represents a query on the `Table`'s dataset and is always created from an
|
|
3
|
-
existing `Table` instance via the [`Table::view`] method.
|
|
3
|
+
existing `Table` instance via the [`Table::view`] method.
|
|
4
|
+
|
|
5
|
+
<div class="javascript">
|
|
6
|
+
<div class="warning">
|
|
7
|
+
The examples in this module are in JavaScript. See <a href="https://docs.rs/crate/perspective/latest"><code>perspective</code></a> docs for the Rust API.
|
|
8
|
+
</div>
|
|
4
9
|
|
|
5
10
|
```javascript
|
|
6
11
|
const table = await perspective.table({
|
|
@@ -13,6 +18,12 @@ const json = await view.to_json();
|
|
|
13
18
|
await view.delete();
|
|
14
19
|
```
|
|
15
20
|
|
|
21
|
+
</div>
|
|
22
|
+
<div class="python">
|
|
23
|
+
<div class="warning">
|
|
24
|
+
The examples in this module are in Python. See <a href="https://docs.rs/crate/perspective/latest"><code>perspective</code></a> docs for the Rust API.
|
|
25
|
+
</div>
|
|
26
|
+
|
|
16
27
|
```python
|
|
17
28
|
table = perspective.Table({
|
|
18
29
|
"id": [1, 2, 3, 4],
|
|
@@ -24,6 +35,9 @@ arrow = view.to_arrow()
|
|
|
24
35
|
view.delete()
|
|
25
36
|
```
|
|
26
37
|
|
|
38
|
+
</div>
|
|
39
|
+
<div class="rust">
|
|
40
|
+
|
|
27
41
|
```rust
|
|
28
42
|
let opts = TableInitOptions::default();
|
|
29
43
|
let data = TableData::Update(UpdateData::Csv("x,y\n1,2\n3,4".into()));
|
|
@@ -34,6 +48,8 @@ let arrow = view.to_arrow().await?;
|
|
|
34
48
|
view.delete().await?;
|
|
35
49
|
```
|
|
36
50
|
|
|
51
|
+
</div>
|
|
52
|
+
|
|
37
53
|
[`View`]s are immutable with respect to the arguments provided to the
|
|
38
54
|
[`Table::view`] method; to change these parameters, you must create a new
|
|
39
55
|
[`View`] on the same [`Table`]. However, each [`View`] is _live_ with respect to
|
|
@@ -51,6 +67,8 @@ optional configuration object. A [`Table`] can have as many [`View`]s associated
|
|
|
51
67
|
with it as you need - Perspective conserves memory by relying on a single
|
|
52
68
|
[`Table`] to power multiple [`View`]s concurrently:
|
|
53
69
|
|
|
70
|
+
<div class="javascript">
|
|
71
|
+
|
|
54
72
|
```javascript
|
|
55
73
|
const view = await table.view({
|
|
56
74
|
columns: ["Sales"],
|
|
@@ -60,6 +78,9 @@ const view = await table.view({
|
|
|
60
78
|
});
|
|
61
79
|
```
|
|
62
80
|
|
|
81
|
+
</div>
|
|
82
|
+
<div class="python">
|
|
83
|
+
|
|
63
84
|
```python
|
|
64
85
|
view = table.view(
|
|
65
86
|
columns=["Sales"],
|
|
@@ -69,6 +90,9 @@ view = table.view(
|
|
|
69
90
|
)
|
|
70
91
|
```
|
|
71
92
|
|
|
93
|
+
</div>
|
|
94
|
+
<div class="rust">
|
|
95
|
+
|
|
72
96
|
```rust
|
|
73
97
|
use crate::config::*;
|
|
74
98
|
let view = table
|
|
@@ -85,6 +109,8 @@ let view = table
|
|
|
85
109
|
.await?;
|
|
86
110
|
```
|
|
87
111
|
|
|
112
|
+
</div>
|
|
113
|
+
|
|
88
114
|
## Group By
|
|
89
115
|
|
|
90
116
|
A group by _groups_ the dataset by the unique values of each column used as a
|
|
@@ -100,14 +126,22 @@ Code, which are grouped by City, which are in turn grouped by State.
|
|
|
100
126
|
|
|
101
127
|
#### Example
|
|
102
128
|
|
|
129
|
+
<div class="javascript">
|
|
130
|
+
|
|
103
131
|
```javascript
|
|
104
132
|
const view = await table.view({ group_by: ["a", "c"] });
|
|
105
133
|
```
|
|
106
134
|
|
|
135
|
+
</div>
|
|
136
|
+
<div class="python">
|
|
137
|
+
|
|
107
138
|
```python
|
|
108
139
|
view = table.view(group_by=["a", "c"])
|
|
109
140
|
```
|
|
110
141
|
|
|
142
|
+
</div>
|
|
143
|
+
<div class="rust">
|
|
144
|
+
|
|
111
145
|
```rust
|
|
112
146
|
let view = table.view(Some(ViewConfigUpdate {
|
|
113
147
|
group_by: Some(vec!["a".into(), "c".into()]),
|
|
@@ -115,8 +149,7 @@ let view = table.view(Some(ViewConfigUpdate {
|
|
|
115
149
|
})).await?;
|
|
116
150
|
```
|
|
117
151
|
|
|
118
|
-
|
|
119
|
-
</perspective-viewer> -->
|
|
152
|
+
</div>
|
|
120
153
|
|
|
121
154
|
## Split By
|
|
122
155
|
|
|
@@ -130,14 +163,22 @@ pivot:
|
|
|
130
163
|
|
|
131
164
|
#### Example
|
|
132
165
|
|
|
166
|
+
<div class="javascript">
|
|
167
|
+
|
|
133
168
|
```javascript
|
|
134
169
|
const view = await table.view({ split_by: ["a", "c"] });
|
|
135
170
|
```
|
|
136
171
|
|
|
172
|
+
</div>
|
|
173
|
+
<div class="python">
|
|
174
|
+
|
|
137
175
|
```python
|
|
138
176
|
view = table.view(split_by=["a", "c"])
|
|
139
177
|
```
|
|
140
178
|
|
|
179
|
+
</div>
|
|
180
|
+
<div class="rust">
|
|
181
|
+
|
|
141
182
|
```rust
|
|
142
183
|
let view = table.view(Some(ViewConfigUpdate {
|
|
143
184
|
split_by: Some(vec!["a".into(), "c".into()]),
|
|
@@ -145,8 +186,7 @@ let view = table.view(Some(ViewConfigUpdate {
|
|
|
145
186
|
})).await?;
|
|
146
187
|
```
|
|
147
188
|
|
|
148
|
-
|
|
149
|
-
</perspective-viewer> -->
|
|
189
|
+
</div>
|
|
150
190
|
|
|
151
191
|
## Aggregates
|
|
152
192
|
|
|
@@ -164,6 +204,8 @@ function name.
|
|
|
164
204
|
|
|
165
205
|
#### Example
|
|
166
206
|
|
|
207
|
+
<div class="javascript">
|
|
208
|
+
|
|
167
209
|
```javascript
|
|
168
210
|
const view = await table.view({
|
|
169
211
|
aggregates: {
|
|
@@ -173,6 +215,9 @@ const view = await table.view({
|
|
|
173
215
|
});
|
|
174
216
|
```
|
|
175
217
|
|
|
218
|
+
</div>
|
|
219
|
+
<div class="python">
|
|
220
|
+
|
|
176
221
|
```python
|
|
177
222
|
view = table.view(
|
|
178
223
|
aggregates={
|
|
@@ -182,8 +227,10 @@ view = table.view(
|
|
|
182
227
|
)
|
|
183
228
|
```
|
|
184
229
|
|
|
185
|
-
|
|
186
|
-
|
|
230
|
+
</div>
|
|
231
|
+
<div class="rust">
|
|
232
|
+
|
|
233
|
+
</div>
|
|
187
234
|
|
|
188
235
|
## Columns
|
|
189
236
|
|
|
@@ -194,19 +241,25 @@ represented in Perspective as an array of string column names:
|
|
|
194
241
|
|
|
195
242
|
#### Example
|
|
196
243
|
|
|
244
|
+
<div class="javascript">
|
|
245
|
+
|
|
197
246
|
```javascript
|
|
198
247
|
const view = await table.view({
|
|
199
248
|
columns: ["a"],
|
|
200
249
|
});
|
|
201
250
|
```
|
|
202
251
|
|
|
252
|
+
</div>
|
|
253
|
+
<div class="python">
|
|
254
|
+
|
|
203
255
|
```python
|
|
204
256
|
view = table.view(columns=["a"])
|
|
205
257
|
```
|
|
206
258
|
|
|
207
|
-
|
|
208
|
-
<
|
|
209
|
-
|
|
259
|
+
</div>
|
|
260
|
+
<div class="rust">
|
|
261
|
+
|
|
262
|
+
</div>
|
|
210
263
|
|
|
211
264
|
## Sort
|
|
212
265
|
|
|
@@ -220,18 +273,22 @@ determine the order of pivot columns groups.
|
|
|
220
273
|
|
|
221
274
|
#### Example
|
|
222
275
|
|
|
276
|
+
<div class="javascript">
|
|
277
|
+
|
|
223
278
|
```javascript
|
|
224
279
|
const view = await table.view({
|
|
225
280
|
sort: [["a", "asc"]],
|
|
226
281
|
});
|
|
227
282
|
```
|
|
228
283
|
|
|
284
|
+
</div>
|
|
285
|
+
<div class="python">
|
|
286
|
+
|
|
229
287
|
```python
|
|
230
288
|
view = table.view(sort=[["a", "asc"]])
|
|
231
289
|
```
|
|
232
290
|
|
|
233
|
-
|
|
234
|
-
<!-- </perspective-viewer> -->
|
|
291
|
+
</div>
|
|
235
292
|
|
|
236
293
|
## Filter
|
|
237
294
|
|
|
@@ -247,18 +304,25 @@ operand in the type of the column:
|
|
|
247
304
|
|
|
248
305
|
#### Example
|
|
249
306
|
|
|
307
|
+
<div class="javascript">
|
|
308
|
+
|
|
250
309
|
```javascript
|
|
251
310
|
const view = await table.view({
|
|
252
311
|
filter: [["a", "<", 100]],
|
|
253
312
|
});
|
|
254
313
|
```
|
|
255
314
|
|
|
315
|
+
</div>
|
|
316
|
+
<div class="python">
|
|
317
|
+
|
|
256
318
|
```python
|
|
257
319
|
view = table.view(filter=[["a", "<", 100]])
|
|
258
320
|
```
|
|
259
321
|
|
|
260
|
-
|
|
261
|
-
|
|
322
|
+
</div>
|
|
323
|
+
<div class="rust">
|
|
324
|
+
|
|
325
|
+
</div>
|
|
262
326
|
|
|
263
327
|
## Expressions
|
|
264
328
|
|
|
@@ -271,19 +335,25 @@ A custom name can be added to an expression by making the first line a comment:
|
|
|
271
335
|
|
|
272
336
|
#### Example
|
|
273
337
|
|
|
338
|
+
<div class="javascript">
|
|
339
|
+
|
|
274
340
|
```javascript
|
|
275
341
|
const view = await table.view({
|
|
276
342
|
expressions: { '"a" + "b"': '"a" + "b"' },
|
|
277
343
|
});
|
|
278
344
|
```
|
|
279
345
|
|
|
346
|
+
</div>
|
|
347
|
+
<div class="python">
|
|
348
|
+
|
|
280
349
|
```python
|
|
281
350
|
view = table.view(expressions=['"a" + "b"'])
|
|
282
351
|
```
|
|
283
352
|
|
|
284
|
-
|
|
285
|
-
<
|
|
286
|
-
|
|
353
|
+
</div>
|
|
354
|
+
<div class="rust">
|
|
355
|
+
|
|
356
|
+
</div>
|
|
287
357
|
|
|
288
358
|
## Flattening a [`Table::view`] into a [`Table`]
|
|
289
359
|
|
|
@@ -296,6 +366,8 @@ serializing the `View` to an arrow and setting up an `on_update` callback.
|
|
|
296
366
|
|
|
297
367
|
# Example
|
|
298
368
|
|
|
369
|
+
<div class="javascript">
|
|
370
|
+
|
|
299
371
|
```javascript
|
|
300
372
|
const worker1 = perspective.worker();
|
|
301
373
|
const table = await worker.table(data);
|
|
@@ -304,6 +376,9 @@ const table2 = await worker.table(view);
|
|
|
304
376
|
table.update([{ State: "Texas", City: "Austin" }]);
|
|
305
377
|
```
|
|
306
378
|
|
|
379
|
+
</div>
|
|
380
|
+
<div class="python">
|
|
381
|
+
|
|
307
382
|
```python
|
|
308
383
|
table = perspective.Table(data);
|
|
309
384
|
view = table.view(filter=[["State", "==", "Texas"]])
|
|
@@ -316,6 +391,9 @@ view.on_update(updater, mode="Row")
|
|
|
316
391
|
table.update([{"State": "Texas", "City": "Austin"}])
|
|
317
392
|
```
|
|
318
393
|
|
|
394
|
+
</div>
|
|
395
|
+
<div class="rust">
|
|
396
|
+
|
|
319
397
|
```rust
|
|
320
398
|
let opts = TableInitOptions::default();
|
|
321
399
|
let data = TableData::Update(UpdateData::Csv("x,y\n1,2\n3,4".into()));
|
|
@@ -324,3 +402,5 @@ let view = table.view(None).await?;
|
|
|
324
402
|
let table2 = client.table(TableData::View(view)).await?;
|
|
325
403
|
table.update(data).await?;
|
|
326
404
|
```
|
|
405
|
+
|
|
406
|
+
</div>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
[package]
|
|
14
14
|
name = "perspective-python"
|
|
15
|
-
version = "3.0.
|
|
15
|
+
version = "3.0.1"
|
|
16
16
|
edition = "2021"
|
|
17
17
|
description = "A data visualization and analytics component, especially well-suited for large and/or streaming datasets."
|
|
18
18
|
repository = "https://github.com/finos/perspective"
|
|
@@ -54,8 +54,8 @@ python-config-rs = "0.1.2"
|
|
|
54
54
|
|
|
55
55
|
[dependencies]
|
|
56
56
|
async-lock = "2.5.0"
|
|
57
|
-
perspective-client = { version = "3.0.
|
|
58
|
-
# perspective-server = { version = "3.0.
|
|
57
|
+
perspective-client = { version = "3.0.1", path = "../perspective-client" }
|
|
58
|
+
# perspective-server = { version = "3.0.1", path = "../perspective-server" }
|
|
59
59
|
pollster = "0.3.0"
|
|
60
60
|
extend = "1.1.2"
|
|
61
61
|
futures = "0.3.28"
|
{perspective_python-3.0.0rc6 → perspective_python-3.0.1}/rust/perspective-python/build/main.rs
RENAMED
|
@@ -36,6 +36,10 @@ fn main() -> Result<(), Box<dyn Error>> {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
if std::option_env!("PSP_DISABLE_CPP").is_some() {
|
|
40
|
+
return Ok(());
|
|
41
|
+
}
|
|
42
|
+
|
|
39
43
|
std::env::set_var("CARGO_FEATURE_PYTHON", "1"); // Not a relevant feature for this crate, but required for consistency
|
|
40
44
|
if let Some(artifact_dir) = psp::cmake_build()? {
|
|
41
45
|
let source_name = match std::env::var("CARGO_CFG_TARGET_OS")?
|