abax
A keyboard-first statistics and data-science workstation — an integrated environment for data work, built on a fast, scriptable spreadsheet. Load a dataset, explore it with 642 formula functions (statistics and distributions, financial, engineering, database, and RF/amateur-radio), run built-in analyses (regression, t-tests, ANOVA, correlation), reshape it with pivot/group-by and recode, visualize it, hand a selection off to pandas, and script the whole thing with Python macros — across CSV, Excel, Parquet, SQLite, JSON, R, and more.
It runs as a Qt desktop GUI (the default), a vim-style terminal UI, or a headless CLI. The core is pure-stdlib Python; every heavier capability is an optional dependency with a graceful fallback. When a behaviour is ambiguous, abax follows gnumeric.
Quick start
One isolated install with every optional feature:
pipx install "abax[all]" # or: pip install "abax[all]" in a venv
abax # the desktop GUI
abax tui # the vim-style terminal UI (SSH-friendly)
abax view data.csv # headless: print any spreadsheet as a table
Prefer to start small? Plain pip install abax gives the stdlib-only core,
and on first launch the GUI shows a chooser where you pick optional
features à la carte — nothing installs without your say-so. No Python?
Every GitHub Release ships
ready-to-run downloads: a Linux AppImage, a self-contained Windows build, a
macOS app, and a tiny cross-platform abax.pyz zipapp. Full install details
(extras, sizes, the Qt binding) live in
Getting started.
Your first minute in the GUI:
- Arrow keys move (vim
h j k lworks too); just type into a cell and pressEnter. - Type
=SUM(A1:A5)— anything starting with=computes, with autocomplete and argument hints as you go. Ctrl+Shift+P(or:) opens the command palette — every action lives there.F1lists the shortcuts.Ctrl+Ssaves —.abax,.csv,.xlsx,.md, whatever the extension says.
Where next: tested, copy-paste examples for most of abax · the full online documentation.
A taste of the formula engine
=SUM(A1:A10) =VLOOKUP("banana", A1:B9, 2, FALSE)
=PERCENTILE(A1:A99, 0.9) =IFS(s>=90,"A", s>=80,"B", TRUE,"F")
=SORT(UNIQUE(B:B)) =FILTER(A1:A9, B1:B9>0)
Array results spill across neighbouring cells Excel-style; errors are
values (#DIV/0!, #REF!, #CIRC!, …), never crashes; LET and LAMBDA
work. The complete function list is in the
formula reference.
What's inside
Each guide below links to a tested, runnable example.
- Data & analysis — pivot/group-by, recode, column profiling, SQL over sheets, goal seek, conditional formatting, charts, and the pandas hand-off; the deep numeric stack adds hypothesis tests, regression, ML models, linear algebra, FFT/DSP, and ODE solvers — all with pure-stdlib fallbacks.
- File formats —
open and save by extension: CSV, Excel, Parquet, SQLite, JSON/JSONL,
Markdown, R, ODS, Jupyter
.ipynb(lossless round-trip), and more;abax convert a.csv b.xlsxconverts between any pair. - RF & antenna engineering — 60+ RF functions, link budgets, a Smith chart, a thin-wire Method-of-Moments solver with NEC deck import/export, a satellite pass predictor, and POTA/SOTA activation logging.
- Macros & scripting — Python command macros and formula UDFs, macro recording, a live Python console, and a headless automation API; your code runs at a selectable isolation level, up to a strict OS sandbox.
- Jupyter — abax as a Jupyter kernel, rich sheet display, and an editable notebook widget.
- Built-in tools — HP-style RPN and TI graphing calculators, a dual-pane file manager, a budget wizard, and a LaTeX equation editor.
- Approachable UI — a command palette, twelve themes, screen-reader labels with optional spoken cell readout, and an OpenDyslexic font fetched on demand.
Develop
just install # dev setup
just test # tests (pass with zero optional deps)
just check # lint + test + pyz + smoke
See docs/architecture.md for the layered design and its invariants. abax is free software, licensed GPL-3.0-or-later.
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 abax-0.1.18.tar.gz.
File metadata
- Download URL: abax-0.1.18.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6741ba33ee68e49fc99ceff19caba86e3f4fe9937cba65495fe3d9e08248c9a9
|
|
| MD5 |
ca48c0d201c02b24cf9bf3bdc1fa043a
|
|
| BLAKE2b-256 |
196a44a08606e6d7dde3fc24295ae9674ee0e6c331b95fd8d19d6bd3c9704ba1
|
Provenance
The following attestation bundles were made for abax-0.1.18.tar.gz:
Publisher:
release.yml on leavesofgrass/abax
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abax-0.1.18.tar.gz -
Subject digest:
6741ba33ee68e49fc99ceff19caba86e3f4fe9937cba65495fe3d9e08248c9a9 - Sigstore transparency entry: 2192386121
- Sigstore integration time:
-
Permalink:
leavesofgrass/abax@2f78af8eea0deff9a51a31fc74c20f35d8425336 -
Branch / Tag:
refs/tags/v0.1.18 - Owner: https://github.com/leavesofgrass
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2f78af8eea0deff9a51a31fc74c20f35d8425336 -
Trigger Event:
push
-
Statement type:
File details
Details for the file abax-0.1.18-py3-none-any.whl.
File metadata
- Download URL: abax-0.1.18-py3-none-any.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3705108e1f7812cc87de5b99357639f989ba77cb34f7af129e7fa17be245467
|
|
| MD5 |
4def5639b5c258c0359a12105f0235d2
|
|
| BLAKE2b-256 |
709f1c37b232c131a10ded481de3bd1893c88e4204f836868d8f9c60b80d297b
|
Provenance
The following attestation bundles were made for abax-0.1.18-py3-none-any.whl:
Publisher:
release.yml on leavesofgrass/abax
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
abax-0.1.18-py3-none-any.whl -
Subject digest:
c3705108e1f7812cc87de5b99357639f989ba77cb34f7af129e7fa17be245467 - Sigstore transparency entry: 2192386142
- Sigstore integration time:
-
Permalink:
leavesofgrass/abax@2f78af8eea0deff9a51a31fc74c20f35d8425336 -
Branch / Tag:
refs/tags/v0.1.18 - Owner: https://github.com/leavesofgrass
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2f78af8eea0deff9a51a31fc74c20f35d8425336 -
Trigger Event:
push
-
Statement type: