A pipeline-oriented data transformation DSL for Python and Jupyter
Project description
Pivotal
Pivotal is a data analysis language for Python. It offers a concise syntax for common data operations that compiles to Pandas, Polars or DuckDB code. With comprehensive JupyterLab and VS Code support (syntax highlighting, autocomplete, interactive viewer and GUI controls) Pivotal provides a friendly entry point to the Python data ecosystem.
A live-demo of Pivotal in Jupyter Lab is available via Binder:
Features
Readable, Writable syntax — write data transformations in a simple declarative syntax
Multiple backends — compile to Pandas (default), Polars or in-process DuckDB (SQL)
JupyterLab and VS Code integration — syntax highlighting, autocomplete, %%pivotal cell magic, interactive object viewer and explorer, GUI controls
Plotting and tables — simple syntax for charts and publication-ready tables via matplotlib and Great Tables
Data packages — export all output (DataFrames, charts, tables) to a single Frictionless data package
Installation
pip install pivotal-lang
This installs the full feature set — Pandas, Polars, DuckDB, Great Tables.
For a minimal Pandas-only install:
pip install --no-deps pivotal-lang
pip install lark pandas matplotlib
JupyterLab extension
pip install pivotal-lab
VS Code extension
Install from the VS Code Marketplace, or build locally from editors/vscode.
Documentation
Full documentation including the complete syntax reference, backend guide, and API reference:
Contributing
Contributions are welcome! Please open an issue or pull request on GitHub.
License
MIT
Authors
Neal Hughes
Version History
-
v0.1.0 — Initial release
-
v0.2.0 — Breaking grammar changes and major new features
- Breaking:
df <name>renamed towith <name>; copy syntax changed fromdf <name> from <source>towith <source> as <name> - Breaking:
loadsyntax flipped fromload <name> "path"toload "path" as <name> - New
fromstatement for database connections (SQLite, DuckDB, SQLAlchemy URIs) - Full VS Code extension: data viewer, Python↔VS Code bridge, snippets with tab-stops, hover documentation
- Improved error messages: friendly syntax errors, semantic validator (unknown table/column detection), runtime error filter with expandable tracebacks
- AG Grid viewer: polished UI, column auto-fit, cell text selection, column pin menu
- VS Code viewer opens in a horizontal split; quick-open command (
Ctrl+Shift+O) to search all loaded data, charts and tables - Full install by default — dropped
pivotal[all]extras syntax
- Breaking:
-
v0.3.0 — New language features and fixes
elseclause in conditional assignments:col = expr where condition else defaultelsedefault branch in multi-case (where/where/else) assignments- Scalar
min()andmax()in column expressions, supported across all backends - Fixed syntax highlighting gaps in VS Code and JupyterLab extensions
- Fixed Pygments lexer missing keywords (
else,end, and others)
Contact & Support
For questions, issues, or feature requests please open an issue on GitHub or contact hughes.neal@gmail.com.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pivotal_lang-0.3.0.tar.gz.
File metadata
- Download URL: pivotal_lang-0.3.0.tar.gz
- Upload date:
- Size: 130.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b70db1b709a4c16495eb408ae22e33757456640917817f4b40c121fc2e132fb9
|
|
| MD5 |
2b0ec3a0f4bf8798ba468a3b6e1f1ff9
|
|
| BLAKE2b-256 |
6a6c60caed4a53ba195ae90ba191af9c490596b4a73b36b0f2825a37aeff0279
|
File details
Details for the file pivotal_lang-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pivotal_lang-0.3.0-py3-none-any.whl
- Upload date:
- Size: 94.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b43cc000ef3bb006ab31968c52924c4d0941f6f5a2417cc8615172aff78849ac
|
|
| MD5 |
a545b16bd7a700a6d346e8328124bdf3
|
|
| BLAKE2b-256 |
b9d6e32c44738ad27283cb2b388845a12a1ed804c4cbf1ff93ee71eb5c6358a3
|