Skip to main content

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:

JupyterLab demo

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:

nealbob.github.io/pivotal-py


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 to with <name>; copy syntax changed from df <name> from <source> to with <source> as <name>
    • Breaking: load syntax flipped from load <name> "path" to load "path" as <name>
    • New from statement 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
  • v0.3.0 — New language features and fixes

    • else clause in conditional assignments: col = expr where condition else default
    • else default branch in multi-case (where / where / else) assignments
    • Scalar min() and max() 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

pivotal_lang-0.3.0.tar.gz (130.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pivotal_lang-0.3.0-py3-none-any.whl (94.1 kB view details)

Uploaded Python 3

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

Hashes for pivotal_lang-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b70db1b709a4c16495eb408ae22e33757456640917817f4b40c121fc2e132fb9
MD5 2b0ec3a0f4bf8798ba468a3b6e1f1ff9
BLAKE2b-256 6a6c60caed4a53ba195ae90ba191af9c490596b4a73b36b0f2825a37aeff0279

See more details on using hashes here.

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

Hashes for pivotal_lang-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b43cc000ef3bb006ab31968c52924c4d0941f6f5a2417cc8615172aff78849ac
MD5 a545b16bd7a700a6d346e8328124bdf3
BLAKE2b-256 b9d6e32c44738ad27283cb2b388845a12a1ed804c4cbf1ff93ee71eb5c6358a3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page