perspective-python
Perspective is an open-source data grid, pivot table and charting component for large, real-time and streaming datasets.
perspective-python is the Python distribution of Perspective:
- A streaming query engine —
TableandView— with incremental pivots, aggregates, filters, expressions and joins, reading and writing Apache Arrow, CSV, JSON,pandas,polarsandpyarrow. Tables can be memory-mapped from disk withpage_to_disk=Trueto exceed available memory. PerspectiveWidget, an interactive data grid, pivot table and charting widget for JupyterLab, Jupyter Notebook, VS Code notebooks, Google Colab and marimo, built on anywidget.- WebSocket handlers for Tornado, Starlette (FastAPI) and aiohttp, which serve
real-time dashboards to
<perspective-viewer>in the browser. - Virtual servers which run the same UI directly against DuckDB, ClickHouse, PostgreSQL and Polars, with no data copy.
Installation
pip install perspective-python
For notebooks, install the jupyter extra:
pip install "perspective-python[jupyter]"
An interactive pivot table in Jupyter
import pandas as pd
from perspective.widget import PerspectiveWidget
df = pd.read_csv("superstore.csv")
PerspectiveWidget(df, plugin="Y Bar", group_by=["Region"], columns=["Sales"])
A streaming Table
import perspective
server = perspective.Server()
client = server.new_local_client()
table = client.table({"symbol": "string", "price": "float"}, name="prices")
table.update([{"symbol": "AAPL", "price": 189.5}])
A real-time dashboard server
import tornado.ioloop
import tornado.web
from perspective.handlers.tornado import PerspectiveTornadoHandler
app = tornado.web.Application([
(r"/websocket", PerspectiveTornadoHandler, {"perspective_server": server}),
])
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
Any number of browser clients can then open the prices table over WebSocket
and receive every update() as it happens.
Documentation
Metadata
Release files for perspective-python 5.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| perspective_python-5.6.0.tar.gz | 9.2 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| perspective_python-5.6.0-cp311-abi3-win_amd64.whl | CPython 3.11 | abi3 | Windows x86-64 | Details |
| perspective_python-5.6.0-cp311-abi3-pyemscripten_2026_0_wasm32.whl | CPython 3.11 | abi3 | PyEmscripten 2026.0+ WebAssembly | Details |
| perspective_python-5.6.0-cp311-abi3-manylinux_2_28_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| perspective_python-5.6.0-cp311-abi3-manylinux_2_28_aarch64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| perspective_python-5.6.0-cp311-abi3-macosx_14_0_arm64.whl | CPython 3.11 | abi3 | macOS 14.0+ ARM64 | Details |
Total release size: 77.3 MB
Release files / perspective_python-5.6.0.tar.gz
| Download URL | perspective_python-5.6.0.tar.gz |
|---|---|
| Size | 9.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
efaa63fa38bd1c672556402e278eaffd347663981f7cd8fdd22007d0008f78f7
|
|
BLAKE2b-256 checksum How to use checksums |
9cac2efc8ae61f35dcc0fc0f224bbf879a2cb4101b397b2df61afda565cf4151
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Release files / perspective_python-5.6.0-cp311-abi3-win_amd64.whl
| Download URL | perspective_python-5.6.0-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 14.5 MB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
6e883f6abbac0f172cbfe550d42f9823e809a466c0ff57804f0dcfe3819eca57
|
|
BLAKE2b-256 checksum How to use checksums |
00f565ea25653ecef7322d0dc2d1148c671e75c29612a95b7f2ba29db2bcea9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Release files / perspective_python-5.6.0-cp311-abi3-pyemscripten_2026_0_wasm32.whl
| Download URL | perspective_python-5.6.0-cp311-abi3-pyemscripten_2026_0_wasm32.whl |
|---|---|
| Size | 8.2 MB |
| Tags | CPython 3.11 PyEmscripten 2026.0+ WebAssembly abi3 |
|
SHA-256 checksum How to use checksums |
64a3f5498a92ca3e47e24f08e18d3d8a93a47d718cba6bb1f80ff2df659d8305
|
|
BLAKE2b-256 checksum How to use checksums |
61b5d6ffcfdaf25d8893304c59ba8558aa8122c560e66ead4a314c4d63756142
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Release files / perspective_python-5.6.0-cp311-abi3-manylinux_2_28_x86_64.whl
| Download URL | perspective_python-5.6.0-cp311-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 15.8 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
1ce0ee83d914dfe81827f42a5ff5130fe6c9209e796eb5d574178d4fa085342f
|
|
BLAKE2b-256 checksum How to use checksums |
26ca0ccf2ad8d0e63cbb232d36ea8be888cfd883445e0a24e1aa87e5cd2db064
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Release files / perspective_python-5.6.0-cp311-abi3-manylinux_2_28_aarch64.whl
| Download URL | perspective_python-5.6.0-cp311-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 15.4 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
46d721952bd9761d3a1fb0d48238d441c10990ab87417f8c2f6be79210e66199
|
|
BLAKE2b-256 checksum How to use checksums |
4d3c6f4418ab874555ac046fa6186326149a67b24e35d489cf2f95be176f95a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Release files / perspective_python-5.6.0-cp311-abi3-macosx_14_0_arm64.whl
| Download URL | perspective_python-5.6.0-cp311-abi3-macosx_14_0_arm64.whl |
|---|---|
| Size | 14.3 MB |
| Tags | CPython 3.11 abi3 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
63bdebe56623a2e9f8b1503a4ccdee9dece745364dea375736545c3aefc307da
|
|
BLAKE2b-256 checksum How to use checksums |
342aea8c790d92c99f8a4da072612b7fc55d74a593edde6344ebcad5a4318e62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|