perspective-python 3.0.2__tar.gz → 3.0.3__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.2 → perspective_python-3.0.3}/Cargo.lock +11 -12
- {perspective_python-3.0.2 → perspective_python-3.0.3}/PKG-INFO +1 -1
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/__init__.py +4 -3
- {perspective_python-3.0.2 → perspective_python-3.0.3}/pyproject.toml +1 -1
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/Cargo.toml +1 -1
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/plugin.rs +6 -4
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/session.rs +6 -6
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/table.rs +1 -3
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/Cargo.toml +9 -10
- perspective_python-3.0.3/rust/perspective-python/build.rs +31 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/__init__.py +4 -3
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/client/client_sync.rs +0 -1
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/lib.rs +3 -3
- perspective_python-3.0.3/rust/perspective-server/Cargo.toml +57 -0
- perspective_python-3.0.3/rust/perspective-server/build/main.rs +41 -0
- {perspective_python-3.0.2/rust/perspective-python → perspective_python-3.0.3/rust/perspective-server}/build/psp.rs +3 -30
- perspective_python-3.0.3/rust/perspective-server/docs/architecture.dot +197 -0
- perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub1.dot +66 -0
- perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub1.svg +60 -0
- perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub2.dot +66 -0
- perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub2.svg +67 -0
- perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub3.dot +97 -0
- perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub3.svg +97 -0
- perspective_python-3.0.3/rust/perspective-server/docs/architecture.svg +250 -0
- perspective_python-3.0.3/rust/perspective-server/docs/lib.md +167 -0
- perspective_python-3.0.3/rust/perspective-server/src/ffi.rs +147 -0
- perspective_python-3.0.3/rust/perspective-server/src/lib.rs +199 -0
- {perspective_python-3.0.2.data → perspective_python-3.0.3.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/package.json +2 -2
- perspective_python-3.0.3.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/253.672dd140fd7665c40d72.js +18 -0
- perspective_python-3.0.2.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/remoteEntry.e6f57cf13491ae730f31.js → perspective_python-3.0.3.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/remoteEntry.306cf9fefef20080ad54.js +1 -1
- perspective_python-3.0.2/perspective/psp_cffi.py +0 -127
- perspective_python-3.0.2/rust/perspective-python/build/main.rs +0 -85
- perspective_python-3.0.2/rust/perspective-python/perspective/psp_cffi.py +0 -127
- perspective_python-3.0.2.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/253.e467d3250ff509e7e58b.js +0 -18
- {perspective_python-3.0.2 → perspective_python-3.0.3}/Cargo.toml +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/extension/finos-perspective-nbextension.json +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/handlers/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/handlers/aiohttp.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/handlers/starlette.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/handlers/tornado.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/templates/exported_widget.html.jinja +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/conftest.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/core/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/core/test_async.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/core/test_threadpool.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/server/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/server/test_server.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/server/test_session.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/single_threaded/test_single_threaded.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/date32.arrow +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/date64.arrow +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/dict.arrow +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/dict_update.arrow +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/int_float_str.arrow +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/int_float_str_file.arrow +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/int_float_str_update.arrow +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/object_sequence.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_delete.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_exception.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_leaks.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_ports.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_remove.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_arrow.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_datetime.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_infer.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_limit.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_numpy.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_pandas.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_to_arrow.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_to_arrow_lz4.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_to_format.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_update.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_update_arrow.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_update_pandas.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_view.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_view_expression.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/viewer/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/viewer/test_validate.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/viewer/test_viewer.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/widget/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/widget/test_widget.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/widget/test_widget_pandas.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/viewer/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/viewer/validate.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/viewer/viewer.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/viewer/viewer_traitlets.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/widget/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/widget/widget.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/build.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/get_hosted_table_names.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/open_table.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/set_loop_callback.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/system_info.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/table.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/terminate.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/index.html +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/clear.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/columns.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/delete.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/get_client.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/get_features.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/get_index.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/get_limit.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/get_num_views.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/make_port.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/on_delete.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/remove.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/remove_delete.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/replace.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/schema.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/size.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/update.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/validate_expressions.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/view.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/collapse.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/column_paths.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/delete.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/dimensions.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/expand.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/expression_schema.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/get_config.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/get_min_max.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/num_columns.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/num_rows.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/on_delete.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/on_update.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/remove_delete.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/remove_update.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/schema.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/set_depth.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_arrow.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_columns.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_columns_string.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_csv.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_json.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_json_string.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/client.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/aggregates.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/column_type.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/expressions.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/filters.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/mod.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/sort.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/view_config.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/lib.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/table_data.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/utils/clone.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/utils/logging.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/utils/mod.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/utils/tests/clone.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/utils/tests/mod.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/view.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/README.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/runtime/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/runtime/bench.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/runtime/perspective_benchmark.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/runtime/run_perspective_benchmark.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/async_server.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/bench.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/distributed_mode.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/server/new_api.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/server/old_api.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/server_mode.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/docs/index.html +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/docs/lib.md +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/handlers/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/handlers/aiohttp.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/handlers/starlette.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/handlers/tornado.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/conftest.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/core/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/core/test_async.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/core/test_threadpool.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/server/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/server/test_server.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/server/test_session.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/single_threaded/test_single_threaded.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/object_sequence.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_delete.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_exception.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_leaks.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_ports.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_remove.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_arrow.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_datetime.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_infer.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_limit.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_numpy.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_pandas.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_to_arrow.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_to_arrow_lz4.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_to_format.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_update.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_update_arrow.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_update_pandas.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_view.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_view_expression.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/viewer/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/viewer/test_validate.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/viewer/test_viewer.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/widget/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/widget/test_widget.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/widget/test_widget_pandas.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/viewer/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/viewer/validate.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/viewer/viewer.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/viewer/viewer_traitlets.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/widget/__init__.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/widget/widget.py +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/client/mod.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/client/python.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/server/mod.rs +0 -0
- {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/server/server_sync.rs +0 -0
- {perspective_python-3.0.2.data → perspective_python-3.0.3.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/install.json +0 -0
- /perspective_python-3.0.2.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/253.e467d3250ff509e7e58b.js.LICENSE.txt → /perspective_python-3.0.3.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/253.672dd140fd7665c40d72.js.LICENSE.txt +0 -0
- {perspective_python-3.0.2.data → perspective_python-3.0.3.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/905.bda9d13f81bc1d4190ff.js +0 -0
- {perspective_python-3.0.2.data → perspective_python-3.0.3.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/style.js +0 -0
- {perspective_python-3.0.2.data → perspective_python-3.0.3.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/third-party-licenses.json +0 -0
|
@@ -278,9 +278,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
|
|
278
278
|
|
|
279
279
|
[[package]]
|
|
280
280
|
name = "bytes"
|
|
281
|
-
version = "1.
|
|
281
|
+
version = "1.7.1"
|
|
282
282
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
283
|
-
checksum = "
|
|
283
|
+
checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
|
|
284
284
|
|
|
285
285
|
[[package]]
|
|
286
286
|
name = "cc"
|
|
@@ -1783,7 +1783,7 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
|
|
1783
1783
|
|
|
1784
1784
|
[[package]]
|
|
1785
1785
|
name = "perspective"
|
|
1786
|
-
version = "3.0.
|
|
1786
|
+
version = "3.0.3"
|
|
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.3"
|
|
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.3"
|
|
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.3"
|
|
1878
1878
|
dependencies = [
|
|
1879
1879
|
"glob",
|
|
1880
1880
|
"yew-fmt",
|
|
@@ -1882,15 +1882,15 @@ dependencies = [
|
|
|
1882
1882
|
|
|
1883
1883
|
[[package]]
|
|
1884
1884
|
name = "perspective-python"
|
|
1885
|
-
version = "3.0.
|
|
1885
|
+
version = "3.0.3"
|
|
1886
1886
|
dependencies = [
|
|
1887
1887
|
"async-lock",
|
|
1888
1888
|
"cmake",
|
|
1889
|
-
"cxx-build",
|
|
1890
1889
|
"extend",
|
|
1891
1890
|
"futures",
|
|
1892
1891
|
"num_cpus",
|
|
1893
1892
|
"perspective-client",
|
|
1893
|
+
"perspective-server",
|
|
1894
1894
|
"pollster",
|
|
1895
1895
|
"pyo3",
|
|
1896
1896
|
"pyo3-build-config 0.20.3",
|
|
@@ -1902,14 +1902,13 @@ dependencies = [
|
|
|
1902
1902
|
|
|
1903
1903
|
[[package]]
|
|
1904
1904
|
name = "perspective-server"
|
|
1905
|
-
version = "3.0.
|
|
1905
|
+
version = "3.0.3"
|
|
1906
1906
|
dependencies = [
|
|
1907
1907
|
"async-lock",
|
|
1908
1908
|
"base64 0.22.1",
|
|
1909
1909
|
"cmake",
|
|
1910
|
-
"cxx",
|
|
1911
|
-
"cxx-build",
|
|
1912
1910
|
"futures",
|
|
1911
|
+
"link-cplusplus",
|
|
1913
1912
|
"num_cpus",
|
|
1914
1913
|
"perspective-client",
|
|
1915
1914
|
"regex",
|
|
@@ -1918,7 +1917,7 @@ dependencies = [
|
|
|
1918
1917
|
|
|
1919
1918
|
[[package]]
|
|
1920
1919
|
name = "perspective-viewer"
|
|
1921
|
-
version = "3.0.
|
|
1920
|
+
version = "3.0.3"
|
|
1922
1921
|
dependencies = [
|
|
1923
1922
|
"anyhow",
|
|
1924
1923
|
"async-lock",
|
|
@@ -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.3"
|
|
14
14
|
__all__ = [
|
|
15
15
|
"_jupyter_labextension_paths",
|
|
16
16
|
"PerspectiveError",
|
|
@@ -30,12 +30,13 @@ from .perspective import (
|
|
|
30
30
|
Table,
|
|
31
31
|
View,
|
|
32
32
|
ProxySession,
|
|
33
|
+
PySyncServer,
|
|
33
34
|
)
|
|
34
35
|
|
|
35
36
|
from .widget import PerspectiveWidget
|
|
36
37
|
from .viewer import PerspectiveViewer
|
|
37
38
|
|
|
38
|
-
from .psp_cffi import ServerBase
|
|
39
|
+
# from .psp_cffi import ServerBase
|
|
39
40
|
|
|
40
41
|
try:
|
|
41
42
|
from .handlers import PerspectiveTornadoHandler
|
|
@@ -47,7 +48,7 @@ def default_loop_cb(fn, *args, **kwargs):
|
|
|
47
48
|
return fn(*args, **kwargs)
|
|
48
49
|
|
|
49
50
|
|
|
50
|
-
class Server(
|
|
51
|
+
class Server(PySyncServer):
|
|
51
52
|
def set_threadpool_size(self, n_cpus):
|
|
52
53
|
pass
|
|
53
54
|
|
|
@@ -37,7 +37,7 @@ dependencies = ["Jinja2>=2.0,<4", "ipywidgets>=7.5.1,<9"]
|
|
|
37
37
|
|
|
38
38
|
[tool.maturin]
|
|
39
39
|
module-name = "perspective"
|
|
40
|
-
data = "perspective_python-3.0.
|
|
40
|
+
data = "perspective_python-3.0.3.data"
|
|
41
41
|
features = ["pyo3/extension-module"]
|
|
42
42
|
include = [
|
|
43
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.3"
|
|
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."
|
|
@@ -46,9 +46,11 @@ pub struct DefaultStyleAttributes {
|
|
|
46
46
|
pub bool: serde_json::Value,
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
/// The data needed to populate a column's settings.
|
|
50
|
-
///
|
|
51
|
-
///
|
|
49
|
+
/// The data needed to populate a column's settings.
|
|
50
|
+
///
|
|
51
|
+
/// These are typically default values, a listing of possible values, or other
|
|
52
|
+
/// basic configuration settings for the plugin. This is the result of calling
|
|
53
|
+
/// plugin.plugin_attributes
|
|
52
54
|
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
|
|
53
55
|
pub struct PluginAttributes {
|
|
54
56
|
pub symbol: Option<SymbolAttributes>,
|
|
@@ -64,4 +66,4 @@ pub struct PluginConfig {
|
|
|
64
66
|
/// Refers to the currently active columns. Maps name to configuration.
|
|
65
67
|
#[serde(default)]
|
|
66
68
|
pub columns: HashMap<String, serde_json::Value>,
|
|
67
|
-
}
|
|
69
|
+
}
|
{perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/session.rs
RENAMED
|
@@ -22,12 +22,12 @@ use crate::{Client, ClientError};
|
|
|
22
22
|
#[cfg(doc)]
|
|
23
23
|
use crate::{Table, View};
|
|
24
24
|
|
|
25
|
-
/// The server-side representation of a connection to a
|
|
26
|
-
///
|
|
27
|
-
/// wants to connect to a `perspective_server::Server`,
|
|
28
|
-
/// must be created. The [`Session`] handles routing
|
|
29
|
-
/// `perspective_server::Server`ve_server::Server`, as
|
|
30
|
-
/// resources the [`Client`] may request.
|
|
25
|
+
/// The server-side representation of a connection to a [`Client`].
|
|
26
|
+
///
|
|
27
|
+
/// For each [`Client`] that wants to connect to a `perspective_server::Server`,
|
|
28
|
+
/// a dedicated [`Session`] must be created. The [`Session`] handles routing
|
|
29
|
+
/// messages emitted by the `perspective_server::Server`ve_server::Server`, as
|
|
30
|
+
/// well as owning any resources the [`Client`] may request.
|
|
31
31
|
pub trait Session<E> {
|
|
32
32
|
/// Handle an incoming request from the [`Client`]. Calling
|
|
33
33
|
/// [`Session::handle_request`] will result in the `send_response` parameter
|
{perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/table.rs
RENAMED
|
@@ -32,9 +32,7 @@ use crate::view::View;
|
|
|
32
32
|
pub type Schema = HashMap<String, ColumnType>;
|
|
33
33
|
|
|
34
34
|
/// Options which impact the behavior of [`Client::table`], as well as
|
|
35
|
-
/// subsequent calls to [`Table::update`]
|
|
36
|
-
/// itself does not take [`TableInitOptions`] as an argument, since this
|
|
37
|
-
/// parameter is fixed at creation.
|
|
35
|
+
/// subsequent calls to [`Table::update`].
|
|
38
36
|
#[derive(Clone, Debug, Default, Serialize, Deserialize, TS)]
|
|
39
37
|
pub struct TableInitOptions {
|
|
40
38
|
#[serde(default)]
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
[package]
|
|
14
14
|
name = "perspective-python"
|
|
15
|
-
version = "3.0.
|
|
15
|
+
version = "3.0.3"
|
|
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"
|
|
@@ -20,18 +20,16 @@ license = "Apache-2.0"
|
|
|
20
20
|
homepage = "https://perspective.finos.org"
|
|
21
21
|
authors = ["Andrew Stein <steinlink@gmail.com>"]
|
|
22
22
|
keywords = []
|
|
23
|
-
build = "build
|
|
23
|
+
build = "build.rs"
|
|
24
24
|
include = [
|
|
25
25
|
"bench/**/*.py",
|
|
26
|
-
"build
|
|
26
|
+
"build.rs",
|
|
27
27
|
"./Cargo.toml",
|
|
28
28
|
"./package.json",
|
|
29
29
|
"perspective/**/*.py",
|
|
30
30
|
"./pyproject.toml",
|
|
31
31
|
"src/**/*.rs",
|
|
32
32
|
"docs/**/*",
|
|
33
|
-
"cpp/**/*",
|
|
34
|
-
"cmake/**/*",
|
|
35
33
|
]
|
|
36
34
|
|
|
37
35
|
[package.metadata.docs.rs]
|
|
@@ -39,14 +37,15 @@ rustdoc-args = ["--html-in-header", "docs/index.html"]
|
|
|
39
37
|
|
|
40
38
|
[features]
|
|
41
39
|
default = []
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
external-cpp = [
|
|
41
|
+
"perspective-client/external-proto",
|
|
42
|
+
"perspective-server/external-cpp",
|
|
43
|
+
]
|
|
44
44
|
|
|
45
45
|
[lib]
|
|
46
46
|
crate-type = ["cdylib"]
|
|
47
47
|
|
|
48
48
|
[build-dependencies]
|
|
49
|
-
cxx-build = "1.0.115"
|
|
50
49
|
cmake = "0.1.50"
|
|
51
50
|
num_cpus = "^1.16.0"
|
|
52
51
|
pyo3-build-config = "0.20.2"
|
|
@@ -54,8 +53,8 @@ python-config-rs = "0.1.2"
|
|
|
54
53
|
|
|
55
54
|
[dependencies]
|
|
56
55
|
async-lock = "2.5.0"
|
|
57
|
-
perspective-client = { version = "3.0.
|
|
58
|
-
|
|
56
|
+
perspective-client = { version = "3.0.3", path = "../perspective-client" }
|
|
57
|
+
perspective-server = { version = "3.0.3", path = "../perspective-server" }
|
|
59
58
|
pollster = "0.3.0"
|
|
60
59
|
extend = "1.1.2"
|
|
61
60
|
futures = "0.3.28"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
2
|
+
// ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
|
|
3
|
+
// ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
|
|
4
|
+
// ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
|
|
5
|
+
// ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
|
|
6
|
+
// ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
|
7
|
+
// ┃ Copyright (c) 2017, the Perspective Authors. ┃
|
|
8
|
+
// ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
|
|
9
|
+
// ┃ This file is part of the Perspective library, distributed under the terms ┃
|
|
10
|
+
// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
|
11
|
+
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
12
|
+
|
|
13
|
+
use std::error::Error;
|
|
14
|
+
|
|
15
|
+
fn main() -> Result<(), Box<dyn Error>> {
|
|
16
|
+
pyo3_build_config::add_extension_module_link_args();
|
|
17
|
+
|
|
18
|
+
// Pass the `perspective_client` links metadata flag so that the `inherit_docs`
|
|
19
|
+
// macro can find the path to the docs.
|
|
20
|
+
println!(
|
|
21
|
+
"cargo:rustc-env=PERSPECTIVE_CLIENT_DOCS_PATH={}",
|
|
22
|
+
std::env::var("DEP_PERSPECTIVE_CLIENT_DOCS_PATH").unwrap()
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
if std::option_env!("PSP_DISABLE_CPP").is_some() {
|
|
26
|
+
return Ok(());
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
std::env::set_var("CARGO_FEATURE_PYTHON", "1");
|
|
30
|
+
Ok(())
|
|
31
|
+
}
|
|
@@ -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.3"
|
|
14
14
|
__all__ = [
|
|
15
15
|
"_jupyter_labextension_paths",
|
|
16
16
|
"PerspectiveError",
|
|
@@ -30,12 +30,13 @@ from .perspective import (
|
|
|
30
30
|
Table,
|
|
31
31
|
View,
|
|
32
32
|
ProxySession,
|
|
33
|
+
PySyncServer,
|
|
33
34
|
)
|
|
34
35
|
|
|
35
36
|
from .widget import PerspectiveWidget
|
|
36
37
|
from .viewer import PerspectiveViewer
|
|
37
38
|
|
|
38
|
-
from .psp_cffi import ServerBase
|
|
39
|
+
# from .psp_cffi import ServerBase
|
|
39
40
|
|
|
40
41
|
try:
|
|
41
42
|
from .handlers import PerspectiveTornadoHandler
|
|
@@ -47,7 +48,7 @@ def default_loop_cb(fn, *args, **kwargs):
|
|
|
47
48
|
return fn(*args, **kwargs)
|
|
48
49
|
|
|
49
50
|
|
|
50
|
-
class Server(
|
|
51
|
+
class Server(PySyncServer):
|
|
51
52
|
def set_threadpool_size(self, n_cpus):
|
|
52
53
|
pass
|
|
53
54
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#![warn(unstable_features)]
|
|
15
15
|
|
|
16
16
|
mod client;
|
|
17
|
-
|
|
17
|
+
mod server;
|
|
18
18
|
|
|
19
19
|
pub use client::client_sync::{Client, ProxySession, Table, View};
|
|
20
20
|
use pyo3::prelude::*;
|
|
@@ -50,8 +50,8 @@ fn init_tracing() {
|
|
|
50
50
|
fn perspective(py: Python, m: &Bound<PyModule>) -> PyResult<()> {
|
|
51
51
|
init_tracing();
|
|
52
52
|
m.add_class::<client::client_sync::Client>()?;
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
m.add_class::<server::PySyncServer>()?;
|
|
54
|
+
m.add_class::<server::PySyncSession>()?;
|
|
55
55
|
m.add_class::<client::client_sync::Table>()?;
|
|
56
56
|
m.add_class::<client::client_sync::View>()?;
|
|
57
57
|
m.add_class::<client::client_sync::ProxySession>()?;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
2
|
+
# ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
|
|
3
|
+
# ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
|
|
4
|
+
# ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
|
|
5
|
+
# ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
|
|
6
|
+
# ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
|
7
|
+
# ┃ Copyright (c) 2017, the Perspective Authors. ┃
|
|
8
|
+
# ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
|
|
9
|
+
# ┃ This file is part of the Perspective library, distributed under the terms ┃
|
|
10
|
+
# ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
|
11
|
+
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
12
|
+
|
|
13
|
+
[package]
|
|
14
|
+
name = "perspective-server"
|
|
15
|
+
version = "3.0.3"
|
|
16
|
+
authors = ["Andrew Stein <steinlink@gmail.com>"]
|
|
17
|
+
edition = "2021"
|
|
18
|
+
description = "A data visualization and analytics component, especially well-suited for large and/or streaming datasets."
|
|
19
|
+
repository = "https://github.com/finos/perspective"
|
|
20
|
+
license = "Apache-2.0"
|
|
21
|
+
homepage = "https://perspective.finos.org"
|
|
22
|
+
keywords = []
|
|
23
|
+
build = "build/main.rs"
|
|
24
|
+
include = [
|
|
25
|
+
"src/**/*",
|
|
26
|
+
"build/**/*",
|
|
27
|
+
"include/**/*",
|
|
28
|
+
"cpp/**/*",
|
|
29
|
+
"docs/**/*",
|
|
30
|
+
"cmake/**/*",
|
|
31
|
+
"Cargo.toml",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
[features]
|
|
35
|
+
default = ["python"]
|
|
36
|
+
external-cpp = []
|
|
37
|
+
wasm-exceptions = []
|
|
38
|
+
python = []
|
|
39
|
+
export-cpp-only = []
|
|
40
|
+
no-build-cpp = []
|
|
41
|
+
|
|
42
|
+
[build-dependencies]
|
|
43
|
+
cmake = "0.1.50"
|
|
44
|
+
num_cpus = "^1.15.0"
|
|
45
|
+
regex = "~1"
|
|
46
|
+
base64 = ">=0.22.1"
|
|
47
|
+
|
|
48
|
+
[dependencies]
|
|
49
|
+
link-cplusplus = "1.0.9"
|
|
50
|
+
perspective-client = { version = "3.0.3", path = "../perspective-client" }
|
|
51
|
+
async-lock = "2.5.0"
|
|
52
|
+
tracing = { version = ">=0.1.36" }
|
|
53
|
+
futures = "0.3"
|
|
54
|
+
|
|
55
|
+
[lib]
|
|
56
|
+
crate-type = ["rlib"]
|
|
57
|
+
path = "src/lib.rs"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
2
|
+
// ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
|
|
3
|
+
// ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
|
|
4
|
+
// ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
|
|
5
|
+
// ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
|
|
6
|
+
// ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
|
7
|
+
// ┃ Copyright (c) 2017, the Perspective Authors. ┃
|
|
8
|
+
// ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
|
|
9
|
+
// ┃ This file is part of the Perspective library, distributed under the terms ┃
|
|
10
|
+
// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
|
11
|
+
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
12
|
+
|
|
13
|
+
mod psp;
|
|
14
|
+
|
|
15
|
+
use std::fs;
|
|
16
|
+
|
|
17
|
+
use base64::prelude::*;
|
|
18
|
+
use regex::{Captures, Regex};
|
|
19
|
+
|
|
20
|
+
fn main() -> Result<(), std::io::Error> {
|
|
21
|
+
let markdown = fs::read_to_string("./docs/lib.md")?;
|
|
22
|
+
let markdown = Regex::new("<img src=\"(.+?)\"")
|
|
23
|
+
.expect("regex")
|
|
24
|
+
.replace_all(markdown.as_str(), |caps: &Captures| {
|
|
25
|
+
let x = &caps[1];
|
|
26
|
+
let svg = fs::read_to_string(format!("./docs/{}", x)).expect("svg");
|
|
27
|
+
format!(
|
|
28
|
+
"<img src=\"data:image/svg+xml;base64,{}\"",
|
|
29
|
+
base64::prelude::BASE64_STANDARD.encode(svg)
|
|
30
|
+
)
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
std::fs::write("docs/lib_gen.md", markdown.as_ref())?;
|
|
34
|
+
if std::option_env!("PSP_DISABLE_CPP").is_none() {
|
|
35
|
+
if let Some(artifact_dir) = psp::cmake_build()? {
|
|
36
|
+
psp::cmake_link_deps(&artifact_dir)?;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
Ok(())
|
|
41
|
+
}
|
|
@@ -10,8 +10,6 @@
|
|
|
10
10
|
// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
|
11
11
|
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
12
12
|
|
|
13
|
-
// DO NOT EDIT THIS WITHOUT UPDATING rust/perspective-server/build/psp.rs
|
|
14
|
-
|
|
15
13
|
use std::collections::HashSet;
|
|
16
14
|
use std::path::{Path, PathBuf};
|
|
17
15
|
use std::{fs, io};
|
|
@@ -46,7 +44,6 @@ pub fn cmake_build() -> Result<Option<PathBuf>, std::io::Error> {
|
|
|
46
44
|
let root_dir = Path::new(root_dir_env.as_str());
|
|
47
45
|
copy_dir_all(Path::join(root_dir, "cpp"), "cpp", &HashSet::from(["dist"]))?;
|
|
48
46
|
copy_dir_all(Path::join(root_dir, "cmake"), "cmake", &HashSet::new())?;
|
|
49
|
-
|
|
50
47
|
println!(
|
|
51
48
|
"cargo:rerun-if-changed={}/cpp/perspective",
|
|
52
49
|
root_dir.display()
|
|
@@ -118,46 +115,22 @@ pub fn cmake_build() -> Result<Option<PathBuf>, std::io::Error> {
|
|
|
118
115
|
Ok(Some(artifact_dir))
|
|
119
116
|
}
|
|
120
117
|
|
|
121
|
-
#[allow(dead_code)]
|
|
122
118
|
pub fn cmake_link_deps(cmake_build_dir: &Path) -> Result<(), std::io::Error> {
|
|
123
119
|
println!(
|
|
124
120
|
"cargo:rustc-link-search=native={}/build",
|
|
125
121
|
cmake_build_dir.display()
|
|
126
122
|
);
|
|
127
123
|
|
|
124
|
+
// println!("cargo:warning=MESSAGE {}/build", cmake_build_dir.display());
|
|
128
125
|
println!("cargo:rustc-link-lib=static=psp");
|
|
129
126
|
link_cmake_static_archives(cmake_build_dir)?;
|
|
130
127
|
println!("cargo:rerun-if-changed=cpp/perspective");
|
|
131
128
|
Ok(())
|
|
132
129
|
}
|
|
133
130
|
|
|
134
|
-
#[allow(dead_code)]
|
|
135
|
-
pub fn cxx_bridge_build() {
|
|
136
|
-
println!("cargo:warning=MESSAGE Building cxx");
|
|
137
|
-
let mut compiler = cxx_build::bridge("src/ffi.rs");
|
|
138
|
-
compiler
|
|
139
|
-
.file("src/server.cpp")
|
|
140
|
-
.include("include")
|
|
141
|
-
.include("cpp/perspective/src/include")
|
|
142
|
-
.std("c++17");
|
|
143
|
-
// .flag("-fexceptions") // TODO not needed?
|
|
144
|
-
|
|
145
|
-
if cfg!(windows) {
|
|
146
|
-
compiler.flag_if_supported("/c");
|
|
147
|
-
} else {
|
|
148
|
-
compiler.static_flag(true);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
compiler.compile("perspective");
|
|
152
|
-
|
|
153
|
-
println!("cargo:rerun-if-changed=include/server.h");
|
|
154
|
-
println!("cargo:rerun-if-changed=src/server.cpp");
|
|
155
|
-
println!("cargo:rerun-if-changed=src/lib.rs");
|
|
156
|
-
}
|
|
157
|
-
|
|
158
131
|
/// Walk the cmake output path and emit link instructions for all archives.
|
|
159
132
|
/// TODO Can this be faster pls?
|
|
160
|
-
|
|
133
|
+
/// TODO update apparently not https://github.com/rust-lang/cmake-rs/issues/149
|
|
161
134
|
pub fn link_cmake_static_archives(dir: &Path) -> Result<(), std::io::Error> {
|
|
162
135
|
if dir.is_dir() {
|
|
163
136
|
for entry in fs::read_dir(dir)? {
|
|
@@ -178,7 +151,7 @@ pub fn link_cmake_static_archives(dir: &Path) -> Result<(), std::io::Error> {
|
|
|
178
151
|
stem.expect("bad")[3..].to_string()
|
|
179
152
|
};
|
|
180
153
|
|
|
181
|
-
// println!("cargo:warning=MESSAGE static link {}", a);
|
|
154
|
+
// println!("cargo:warning=MESSAGE static link {} {}", a, dir.display());
|
|
182
155
|
println!("cargo:rustc-link-search=native={}", dir.display());
|
|
183
156
|
println!("cargo:rustc-link-lib=static={}", a);
|
|
184
157
|
}
|