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.
Files changed (229) hide show
  1. {perspective_python-3.0.2 → perspective_python-3.0.3}/Cargo.lock +11 -12
  2. {perspective_python-3.0.2 → perspective_python-3.0.3}/PKG-INFO +1 -1
  3. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/__init__.py +4 -3
  4. {perspective_python-3.0.2 → perspective_python-3.0.3}/pyproject.toml +1 -1
  5. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/Cargo.toml +1 -1
  6. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/plugin.rs +6 -4
  7. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/session.rs +6 -6
  8. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/table.rs +1 -3
  9. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/Cargo.toml +9 -10
  10. perspective_python-3.0.3/rust/perspective-python/build.rs +31 -0
  11. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/__init__.py +4 -3
  12. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/client/client_sync.rs +0 -1
  13. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/lib.rs +3 -3
  14. perspective_python-3.0.3/rust/perspective-server/Cargo.toml +57 -0
  15. perspective_python-3.0.3/rust/perspective-server/build/main.rs +41 -0
  16. {perspective_python-3.0.2/rust/perspective-python → perspective_python-3.0.3/rust/perspective-server}/build/psp.rs +3 -30
  17. perspective_python-3.0.3/rust/perspective-server/docs/architecture.dot +197 -0
  18. perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub1.dot +66 -0
  19. perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub1.svg +60 -0
  20. perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub2.dot +66 -0
  21. perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub2.svg +67 -0
  22. perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub3.dot +97 -0
  23. perspective_python-3.0.3/rust/perspective-server/docs/architecture.sub3.svg +97 -0
  24. perspective_python-3.0.3/rust/perspective-server/docs/architecture.svg +250 -0
  25. perspective_python-3.0.3/rust/perspective-server/docs/lib.md +167 -0
  26. perspective_python-3.0.3/rust/perspective-server/src/ffi.rs +147 -0
  27. perspective_python-3.0.3/rust/perspective-server/src/lib.rs +199 -0
  28. {perspective_python-3.0.2.data → perspective_python-3.0.3.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/package.json +2 -2
  29. perspective_python-3.0.3.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/253.672dd140fd7665c40d72.js +18 -0
  30. 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
  31. perspective_python-3.0.2/perspective/psp_cffi.py +0 -127
  32. perspective_python-3.0.2/rust/perspective-python/build/main.rs +0 -85
  33. perspective_python-3.0.2/rust/perspective-python/perspective/psp_cffi.py +0 -127
  34. perspective_python-3.0.2.data/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/253.e467d3250ff509e7e58b.js +0 -18
  35. {perspective_python-3.0.2 → perspective_python-3.0.3}/Cargo.toml +0 -0
  36. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/extension/finos-perspective-nbextension.json +0 -0
  37. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/handlers/__init__.py +0 -0
  38. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/handlers/aiohttp.py +0 -0
  39. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/handlers/starlette.py +0 -0
  40. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/handlers/tornado.py +0 -0
  41. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/templates/exported_widget.html.jinja +0 -0
  42. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/__init__.py +0 -0
  43. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/conftest.py +0 -0
  44. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/core/__init__.py +0 -0
  45. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/core/test_async.py +0 -0
  46. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/core/test_threadpool.py +0 -0
  47. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/server/__init__.py +0 -0
  48. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/server/test_server.py +0 -0
  49. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/server/test_session.py +0 -0
  50. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/single_threaded/test_single_threaded.py +0 -0
  51. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/__init__.py +0 -0
  52. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/date32.arrow +0 -0
  53. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/date64.arrow +0 -0
  54. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/dict.arrow +0 -0
  55. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/dict_update.arrow +0 -0
  56. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/int_float_str.arrow +0 -0
  57. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/int_float_str_file.arrow +0 -0
  58. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/arrow/int_float_str_update.arrow +0 -0
  59. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/object_sequence.py +0 -0
  60. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_delete.py +0 -0
  61. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_exception.py +0 -0
  62. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_leaks.py +0 -0
  63. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_ports.py +0 -0
  64. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_remove.py +0 -0
  65. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table.py +0 -0
  66. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_arrow.py +0 -0
  67. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_datetime.py +0 -0
  68. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_infer.py +0 -0
  69. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_limit.py +0 -0
  70. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_numpy.py +0 -0
  71. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_table_pandas.py +0 -0
  72. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_to_arrow.py +0 -0
  73. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_to_arrow_lz4.py +0 -0
  74. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_to_format.py +0 -0
  75. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_update.py +0 -0
  76. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_update_arrow.py +0 -0
  77. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_update_pandas.py +0 -0
  78. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_view.py +0 -0
  79. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/table/test_view_expression.py +0 -0
  80. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/viewer/__init__.py +0 -0
  81. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/viewer/test_validate.py +0 -0
  82. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/viewer/test_viewer.py +0 -0
  83. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/widget/__init__.py +0 -0
  84. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/widget/test_widget.py +0 -0
  85. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/tests/widget/test_widget_pandas.py +0 -0
  86. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/viewer/__init__.py +0 -0
  87. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/viewer/validate.py +0 -0
  88. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/viewer/viewer.py +0 -0
  89. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/viewer/viewer_traitlets.py +0 -0
  90. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/widget/__init__.py +0 -0
  91. {perspective_python-3.0.2 → perspective_python-3.0.3}/perspective/widget/widget.py +0 -0
  92. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/build.rs +0 -0
  93. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/get_hosted_table_names.md +0 -0
  94. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/open_table.md +0 -0
  95. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/set_loop_callback.md +0 -0
  96. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/system_info.md +0 -0
  97. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/table.md +0 -0
  98. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client/terminate.md +0 -0
  99. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/client.md +0 -0
  100. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/index.html +0 -0
  101. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/clear.md +0 -0
  102. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/columns.md +0 -0
  103. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/delete.md +0 -0
  104. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/get_client.md +0 -0
  105. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/get_features.md +0 -0
  106. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/get_index.md +0 -0
  107. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/get_limit.md +0 -0
  108. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/get_num_views.md +0 -0
  109. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/make_port.md +0 -0
  110. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/on_delete.md +0 -0
  111. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/remove.md +0 -0
  112. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/remove_delete.md +0 -0
  113. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/replace.md +0 -0
  114. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/schema.md +0 -0
  115. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/size.md +0 -0
  116. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/update.md +0 -0
  117. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/validate_expressions.md +0 -0
  118. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table/view.md +0 -0
  119. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/table.md +0 -0
  120. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/collapse.md +0 -0
  121. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/column_paths.md +0 -0
  122. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/delete.md +0 -0
  123. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/dimensions.md +0 -0
  124. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/expand.md +0 -0
  125. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/expression_schema.md +0 -0
  126. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/get_config.md +0 -0
  127. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/get_min_max.md +0 -0
  128. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/num_columns.md +0 -0
  129. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/num_rows.md +0 -0
  130. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/on_delete.md +0 -0
  131. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/on_update.md +0 -0
  132. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/remove_delete.md +0 -0
  133. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/remove_update.md +0 -0
  134. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/schema.md +0 -0
  135. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/set_depth.md +0 -0
  136. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_arrow.md +0 -0
  137. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_columns.md +0 -0
  138. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_columns_string.md +0 -0
  139. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_csv.md +0 -0
  140. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_json.md +0 -0
  141. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view/to_json_string.md +0 -0
  142. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/docs/view.md +0 -0
  143. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/client.rs +0 -0
  144. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/aggregates.rs +0 -0
  145. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/column_type.rs +0 -0
  146. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/expressions.rs +0 -0
  147. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/filters.rs +0 -0
  148. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/mod.rs +0 -0
  149. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/sort.rs +0 -0
  150. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/config/view_config.rs +0 -0
  151. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/lib.rs +0 -0
  152. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/table_data.rs +0 -0
  153. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/utils/clone.rs +0 -0
  154. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/utils/logging.rs +0 -0
  155. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/utils/mod.rs +0 -0
  156. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/utils/tests/clone.rs +0 -0
  157. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/utils/tests/mod.rs +0 -0
  158. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-client/src/rust/view.rs +0 -0
  159. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/README.md +0 -0
  160. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/__init__.py +0 -0
  161. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/runtime/__init__.py +0 -0
  162. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/runtime/bench.py +0 -0
  163. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/runtime/perspective_benchmark.py +0 -0
  164. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/runtime/run_perspective_benchmark.py +0 -0
  165. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/__init__.py +0 -0
  166. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/async_server.py +0 -0
  167. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/bench.py +0 -0
  168. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/distributed_mode.py +0 -0
  169. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/server/new_api.py +0 -0
  170. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/server/old_api.py +0 -0
  171. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/bench/tornado/server_mode.py +0 -0
  172. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/docs/index.html +0 -0
  173. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/docs/lib.md +0 -0
  174. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/handlers/__init__.py +0 -0
  175. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/handlers/aiohttp.py +0 -0
  176. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/handlers/starlette.py +0 -0
  177. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/handlers/tornado.py +0 -0
  178. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/__init__.py +0 -0
  179. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/conftest.py +0 -0
  180. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/core/__init__.py +0 -0
  181. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/core/test_async.py +0 -0
  182. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/core/test_threadpool.py +0 -0
  183. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/server/__init__.py +0 -0
  184. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/server/test_server.py +0 -0
  185. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/server/test_session.py +0 -0
  186. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/single_threaded/test_single_threaded.py +0 -0
  187. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/__init__.py +0 -0
  188. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/object_sequence.py +0 -0
  189. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_delete.py +0 -0
  190. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_exception.py +0 -0
  191. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_leaks.py +0 -0
  192. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_ports.py +0 -0
  193. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_remove.py +0 -0
  194. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table.py +0 -0
  195. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_arrow.py +0 -0
  196. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_datetime.py +0 -0
  197. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_infer.py +0 -0
  198. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_limit.py +0 -0
  199. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_numpy.py +0 -0
  200. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_table_pandas.py +0 -0
  201. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_to_arrow.py +0 -0
  202. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_to_arrow_lz4.py +0 -0
  203. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_to_format.py +0 -0
  204. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_update.py +0 -0
  205. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_update_arrow.py +0 -0
  206. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_update_pandas.py +0 -0
  207. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_view.py +0 -0
  208. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/table/test_view_expression.py +0 -0
  209. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/viewer/__init__.py +0 -0
  210. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/viewer/test_validate.py +0 -0
  211. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/viewer/test_viewer.py +0 -0
  212. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/widget/__init__.py +0 -0
  213. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/widget/test_widget.py +0 -0
  214. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/tests/widget/test_widget_pandas.py +0 -0
  215. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/viewer/__init__.py +0 -0
  216. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/viewer/validate.py +0 -0
  217. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/viewer/viewer.py +0 -0
  218. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/viewer/viewer_traitlets.py +0 -0
  219. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/widget/__init__.py +0 -0
  220. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/perspective/widget/widget.py +0 -0
  221. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/client/mod.rs +0 -0
  222. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/client/python.rs +0 -0
  223. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/server/mod.rs +0 -0
  224. {perspective_python-3.0.2 → perspective_python-3.0.3}/rust/perspective-python/src/server/server_sync.rs +0 -0
  225. {perspective_python-3.0.2.data → perspective_python-3.0.3.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/install.json +0 -0
  226. /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
  227. {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
  228. {perspective_python-3.0.2.data → perspective_python-3.0.3.data}/data/share/jupyter/labextensions/@finos/perspective-jupyterlab/static/style.js +0 -0
  229. {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.6.0"
281
+ version = "1.7.1"
282
282
  source = "registry+https://github.com/rust-lang/crates.io-index"
283
- checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
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.2"
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.2"
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.2"
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.2"
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.2"
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.2"
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.2"
1920
+ version = "3.0.3"
1922
1921
  dependencies = [
1923
1922
  "anyhow",
1924
1923
  "async-lock",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: perspective-python
3
- Version: 3.0.2
3
+ Version: 3.0.3
4
4
  Classifier: Development Status :: 5 - Production/Stable
5
5
  Classifier: Programming Language :: Rust
6
6
  Classifier: Programming Language :: Python :: Implementation :: CPython
@@ -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.2"
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(ServerBase):
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.2.data"
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.2"
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. These are typically default
50
- /// values, a listing of possible values, or other basic configuration settings
51
- /// for the plugin. This is the result of calling plugin.plugin_attributes
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
+ }
@@ -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
- /// [`Client`]. For each [`Client`] that
27
- /// wants to connect to a `perspective_server::Server`, a dedicated [`Session`]
28
- /// must be created. The [`Session`] handles routing messages emitted by the
29
- /// `perspective_server::Server`ve_server::Server`, as well as owning any
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
@@ -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`], even though this latter method
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.2"
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/main.rs"
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
- sdist = []
43
- external-cpp = ["perspective-client/external-proto"]
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.2", path = "../perspective-client" }
58
- # perspective-server = { version = "3.0.2", path = "../perspective-server" }
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.2"
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(ServerBase):
51
+ class Server(PySyncServer):
51
52
  def set_threadpool_size(self, n_cpus):
52
53
  pass
53
54
 
@@ -217,7 +217,6 @@ impl Table {
217
217
 
218
218
  #[doc = crate::inherit_docs!("table/size.md")]
219
219
  pub fn size(&self, py: Python<'_>) -> PyResult<usize> {
220
- tracing::error!("WIP");
221
220
  self.0.size().py_block_on(py)
222
221
  }
223
222
 
@@ -14,7 +14,7 @@
14
14
  #![warn(unstable_features)]
15
15
 
16
16
  mod client;
17
- // mod server;
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
- // m.add_class::<server::PySyncServer>()?;
54
- // m.add_class::<server::PySyncSession>()?;
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
- #[allow(dead_code)]
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
  }