Skip to content

Commit 8b29408

Browse files
authored
Merge pull request #2762 from finos/docs-31
Update `README.md`, examples and build dependencies
2 parents 0aa19d5 + feb3d0e commit 8b29408

47 files changed

Lines changed: 2963 additions & 5026 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/install-wheel/action.yaml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,23 @@
1313
name: "Install wheel"
1414
description: "Installs the wheel depending on build platform, because Python"
1515

16+
inputs:
17+
inplace:
18+
default: "true"
19+
description: "Install in-place?"
20+
1621
runs:
1722
using: "composite"
1823
steps:
1924
- name: Install wheel (Linux)
2025
shell: sh
2126
run: python -m pip install -U --no-dependencies *.whl --target rust/perspective-python
22-
if: ${{ runner.os == 'Linux' }}
27+
if: ${{ inputs.inplace == 'true' && runner.os == 'Linux' }}
28+
29+
- name: Install wheel (Linux)
30+
shell: sh
31+
run: python -m pip install -U --no-dependencies *.whl
32+
if: ${{ inputs.inplace != 'true' && runner.os == 'Linux' }}
2333

2434
- name: Install wheel (OSX)
2535
shell: sh

.github/workflows/build.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,8 @@ jobs:
625625
name: perspective-python-dist-${{ matrix.arch }}-${{ matrix.os }}-${{ matrix.python-version }}
626626

627627
- uses: ./.github/actions/install-wheel
628+
with:
629+
inplace: "false"
628630

629631
- name: Benchmarks
630632
run: pnpm run bench

README.md

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
<a href="https://github.com/finos/perspective/blob/master/docs/static/svg/perspective-logo-dark.svg?raw=true#gh-dark-mode-only"><img src="https://github.com/finos/perspective/raw/master/docs/static/svg/perspective-logo-dark.svg?raw=true#gh-dark-mode-only" alt="Perspective" width="260"></a>
44
<br/><br/>
55

6-
[![npm](https://img.shields.io/npm/v/@finos/perspective.svg?style=flat)](https://www.npmjs.com/package/@finos/perspective)
7-
[![PyPI](https://img.shields.io/pypi/v/perspective-python.svg?style=flat)](https://pypi.python.org/pypi/perspective-python)
8-
[![crates.io](https://img.shields.io/crates/v/perspective.svg?style=flat)](https://crates.io/crates/perspective)
9-
[![Build Status](https://github.com/finos/perspective/actions/workflows/build.yaml/badge.svg?branch=master&event=push)](https://github.com/finos/perspective/actions/workflows/build.yaml)
6+
[![Build Status](https://img.shields.io/github/actions/workflow/status/finos/perspective/build.yaml?event=push&style=for-the-badge)](https://github.com/finos/perspective/actions/workflows/build.yaml)
7+
[![npm](https://img.shields.io/npm/v/@finos/perspective.svg?style=for-the-badge)](https://www.npmjs.com/package/@finos/perspective)
8+
[![PyPI](https://img.shields.io/pypi/v/perspective-python.svg?style=for-the-badge)](https://pypi.python.org/pypi/perspective-python)
9+
[![crates.io](https://img.shields.io/crates/v/perspective?style=for-the-badge)](https://crates.io/crates/perspective)
1010

1111
<br/>
1212

@@ -19,10 +19,10 @@ and/or [Jupyterlab](https://jupyterlab.readthedocs.io/en/stable/).
1919
### Features
2020

2121
- A fast, memory efficient streaming query engine, written in C++ and compiled
22-
for both [WebAssembly](https://webassembly.org/) and
23-
[Python](https://www.python.org/), with read/write/streaming for
24-
[Apache Arrow](https://arrow.apache.org/), and a high-performance columnar
25-
expression language based on
22+
for [WebAssembly](https://webassembly.org/),
23+
[Python](https://www.python.org/) and [Rust](https://www.rust-lang.org/),
24+
with read/write/streaming for [Apache Arrow](https://arrow.apache.org/), and
25+
a high-performance columnar expression language based on
2626
[ExprTK](https://github.com/ArashPartow/exprtk).
2727

2828
- A framework-agnostic User Interface packaged as a
@@ -34,12 +34,6 @@ and/or [Jupyterlab](https://jupyterlab.readthedocs.io/en/stable/).
3434
interactive data analysis in a notebook, as well as _scalable_ production
3535
[Voila](https://github.com/voila-dashboards/voila) applications.
3636

37-
### Examples
38-
39-
<!-- Examples -->
40-
<table><tbody><tr><td>editable</td><td>file</td><td>fractal</td></tr><tr><td><a href="https://perspective.finos.org/block?example=editable"><img height="125" src="https://perspective.finos.org/blocks/editable/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=file"><img height="125" src="https://perspective.finos.org/blocks/file/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=fractal"><img height="125" src="https://perspective.finos.org/blocks/fractal/preview.png?"></img></a></td></tr><tr><td>market</td><td>raycasting</td><td>evictions</td></tr><tr><td><a href="https://perspective.finos.org/block?example=market"><img height="125" src="https://perspective.finos.org/blocks/market/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=raycasting"><img height="125" src="https://perspective.finos.org/blocks/raycasting/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=evictions"><img height="125" src="https://perspective.finos.org/blocks/evictions/preview.png?"></img></a></td></tr><tr><td>nypd</td><td>magic</td><td>streaming</td></tr><tr><td><a href="https://perspective.finos.org/block?example=nypd"><img height="125" src="https://perspective.finos.org/blocks/nypd/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=magic"><img height="125" src="https://perspective.finos.org/blocks/magic/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=streaming"><img height="125" src="https://perspective.finos.org/blocks/streaming/preview.png?"></img></a></td></tr><tr><td>covid</td><td>webcam</td><td>movies</td></tr><tr><td><a href="https://perspective.finos.org/block?example=covid"><img height="125" src="https://perspective.finos.org/blocks/covid/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=webcam"><img height="125" src="https://perspective.finos.org/blocks/webcam/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=movies"><img height="125" src="https://perspective.finos.org/blocks/movies/preview.png?"></img></a></td></tr><tr><td>superstore</td><td>citibike</td><td>olympics</td></tr><tr><td><a href="https://perspective.finos.org/block?example=superstore"><img height="125" src="https://perspective.finos.org/blocks/superstore/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=citibike"><img height="125" src="https://perspective.finos.org/blocks/citibike/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=olympics"><img height="125" src="https://perspective.finos.org/blocks/olympics/preview.png?"></img></a></td></tr><tr><td>jupyterlab</td></tr><tr><td><a href="http://beta.mybinder.org/v2/gh/finos/perspective/master?urlpath=lab/tree/examples/jupyter-notebooks"><img height="125" src="https://perspective.finos.org/img/jupyterlab.png?"></img></a></td></tr></tbody></table>
41-
<!-- Examples -->
42-
4337
### Documentation
4438

4539
- [Project Site](https://perspective.finos.org/)
@@ -57,10 +51,36 @@ and/or [Jupyterlab](https://jupyterlab.readthedocs.io/en/stable/).
5751
- [Perspective Viewer API](https://perspective.finos.org/docs/obj/perspective-viewer/)
5852
- [Perspective Python API](https://perspective.finos.org/docs/obj/perspective-python.html)
5953

60-
### Community / Media
54+
### Examples
55+
56+
<!-- Examples -->
57+
<table><tbody><tr><td>editable</td><td>file</td><td>fractal</td></tr><tr><td><a href="https://perspective.finos.org/block?example=editable"><img height="125" src="https://perspective.finos.org/blocks/editable/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=file"><img height="125" src="https://perspective.finos.org/blocks/file/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=fractal"><img height="125" src="https://perspective.finos.org/blocks/fractal/preview.png?"></img></a></td></tr><tr><td>market</td><td>raycasting</td><td>evictions</td></tr><tr><td><a href="https://perspective.finos.org/block?example=market"><img height="125" src="https://perspective.finos.org/blocks/market/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=raycasting"><img height="125" src="https://perspective.finos.org/blocks/raycasting/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=evictions"><img height="125" src="https://perspective.finos.org/blocks/evictions/preview.png?"></img></a></td></tr><tr><td>nypd</td><td>streaming</td><td>covid</td></tr><tr><td><a href="https://perspective.finos.org/block?example=nypd"><img height="125" src="https://perspective.finos.org/blocks/nypd/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=streaming"><img height="125" src="https://perspective.finos.org/blocks/streaming/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=covid"><img height="125" src="https://perspective.finos.org/blocks/covid/preview.png?"></img></a></td></tr><tr><td>webcam</td><td>movies</td><td>superstore</td></tr><tr><td><a href="https://perspective.finos.org/block?example=webcam"><img height="125" src="https://perspective.finos.org/blocks/webcam/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=movies"><img height="125" src="https://perspective.finos.org/blocks/movies/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=superstore"><img height="125" src="https://perspective.finos.org/blocks/superstore/preview.png?"></img></a></td></tr><tr><td>citibike</td><td>olympics</td><td>jupyterlab</td></tr><tr><td><a href="https://perspective.finos.org/block?example=citibike"><img height="125" src="https://perspective.finos.org/blocks/citibike/preview.png?"></img></a></td><td><a href="https://perspective.finos.org/block?example=olympics"><img height="125" src="https://perspective.finos.org/blocks/olympics/preview.png?"></img></a></td><td><a href="http://beta.mybinder.org/v2/gh/finos/perspective/master?urlpath=lab/tree/examples/jupyter-notebooks"><img height="125" src="https://perspective.finos.org/img/jupyterlab.png?"></img></a></td></tr></tbody></table>
58+
<!-- Examples -->
59+
60+
### Media
6161

62-
- [Streaming Cross-Sectional Data Visualization with Perspective + Spark | Tim Bess/Tim Paine, Data + AI Summit 2024](https://www.youtube.com/watch?v=lDpIu4dnp78)
63-
- [Streaming, cross-sectional data visualization in JupyterLab | Junyuan Tan, JupyterCon 2020](http://www.youtube.com/watch?v=IO-HJsGdleE)
64-
- [Perspective in 3D | Andrew Stein, Open Source in Finance Forum NYC 2022](https://www.youtube.com/watch?v=0ut-ynvBpGI)
65-
- [Build an order book simulation with Perspective | Andrew Stein, FINOS Open Source in Fintech Meetup 2021](https://www.youtube.com/watch?v=no0qChjvdgQ)
66-
- [Perspective project case study | FINOS](https://www.finos.org/hubfs/FINOS/assets/FINOS%20Perspective%20Case%20Study.pdf)
62+
<table><tbody>
63+
<tr>
64+
<td><a href="https://github.com/timkpaine"><code>@timkpaine</code></a></td>
65+
<td><a href="https://github.com/timbess"><code>@timbess</code></a></td>
66+
<td><a href="https://github.com/sc1f"><code>@sc1f</code></a></td>
67+
</tr>
68+
<tr><td>
69+
<a href="https://www.youtube.com/watch?v=s6n9vEyM1gY"><img width="240" src="https://img.youtube.com/vi/s6n9vEyM1gY/0.jpg" /></a>
70+
</td><td>
71+
<a href="https://www.youtube.com/watch?v=lDpIu4dnp78"><img width="240" src="https://img.youtube.com/vi/lDpIu4dnp78/0.jpg" /></a>
72+
</td><td>
73+
<a href="https://www.youtube.com/watch?v=IO-HJsGdleE"><img width="240" src="https://img.youtube.com/vi/IO-HJsGdleE/0.jpg" /></a>
74+
</td></tr>
75+
<tr>
76+
<td><a href="https://github.com/texodus"><code>@texodus</code></a></td>
77+
<td><a href="https://github.com/texodus"><code>@texodus</code></a></td>
78+
<td></td>
79+
</tr>
80+
<tr><td>
81+
<a href="https://www.youtube.com/watch?v=0ut-ynvBpGI"><img width="240" src="https://img.youtube.com/vi/0ut-ynvBpGI/0.jpg" /></a>
82+
</td><td>
83+
<a href="https://www.youtube.com/watch?v=no0qChjvdgQ"><img width="240" src="https://img.youtube.com/vi/no0qChjvdgQ/0.jpg" /></a>
84+
</td><td>
85+
</td></tr>
86+
</tbody></table>

cpp/perspective/src/cpp/arrow_csv.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -609,11 +609,11 @@ csvToTable(
609609
auto read_options = arrow::csv::ReadOptions::Defaults();
610610
auto parse_options = arrow::csv::ParseOptions::Defaults();
611611
auto convert_options = arrow::csv::ConvertOptions::Defaults();
612-
#ifdef PSP_PARALLEL_FOR
613-
read_options.use_threads = true;
614-
#else
615-
read_options.use_threads = false;
616-
#endif
612+
#ifdef PSP_PARALLEL_FOR
613+
read_options.use_threads = true;
614+
#else
615+
read_options.use_threads = false;
616+
#endif
617617
parse_options.newlines_in_values = true;
618618

619619
if (is_update) {

cpp/perspective/src/cpp/view.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,11 +1211,11 @@ View<CTX_T>::data_slice_to_arrow(
12111211
options.codec = std::move(codec).ValueUnsafe();
12121212
}
12131213

1214-
#ifdef PSP_PARALLEL_FOR
1215-
options.use_threads = true;
1216-
#else
1217-
options.use_threads = false;
1218-
#endif
1214+
#ifdef PSP_PARALLEL_FOR
1215+
options.use_threads = true;
1216+
#else
1217+
options.use_threads = false;
1218+
#endif
12191219

12201220
auto res = arrow::ipc::MakeStreamWriter(&sink, arrow_schema, options);
12211221
std::shared_ptr<arrow::ipc::RecordBatchWriter> writer = *res;

docs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"clsx": "^2.0.0",
2727
"mkdirp": "3",
2828
"prism-react-renderer": "^1.3.3",
29-
"puppeteer": "22.10.0",
29+
"puppeteer": "^23",
3030
"react": "^18.0.0",
3131
"react-dom": "^18.0.0",
3232
"superstore-arrow": "3.0.0"

examples/blocks/examples.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ const LOCAL_EXAMPLES = [
1818
"raycasting",
1919
"evictions",
2020
"nypd",
21-
"magic",
2221
"streaming",
2322
"covid",
2423
"webcam",

examples/blocks/src/editable/index.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
<script type="module" src="/node_modules/@finos/perspective-viewer-datagrid/dist/cdn/perspective-viewer-datagrid.js"></script>
88
<script type="module" src="/node_modules/@finos/perspective-viewer-d3fc/dist/cdn/perspective-viewer-d3fc.js"></script>
99

10-
<link rel="preload" href="/node_modules/@finos/perspective/dist/cdn/perspective-server.js" as="fetch" type="application/javascript" crossorigin="anonymous" />
1110
<link rel="preload" href="/node_modules/@finos/perspective/dist/cdn/perspective-server.wasm" as="fetch" type="application/wasm" crossorigin="anonymous" />
1211
<link rel="preload" href="/node_modules/@finos/perspective-viewer/dist/cdn/perspective-viewer.wasm" as="fetch" type="application/wasm" crossorigin="anonymous" />
1312
<link rel="preload" href="/node_modules/superstore-arrow/superstore.lz4.arrow" as="fetch" type="arraybuffer" crossorigin="anonymous" />

examples/blocks/src/magic/.block

Lines changed: 0 additions & 2 deletions
This file was deleted.

examples/blocks/src/magic/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)