PISTA Core
Performance Inspection, Signal & Telemetry Analysis — the analysis engine.
PISTA Core is the engine behind PISTA Studio, a desktop telemetry analysis application for cycling built on the motorsport analysis paradigm (WinTAX, Pi Toolbox, ATLAS) rather than the sports-science paradigm of existing cycling tools.
Core is usable on its own: it ingests FIT files, computes a channel library, and aligns multiple riders onto a common distance axis.
Status
Pre-release. Phase 0 of the roadmap — no public API yet.
What it does
| Module | Responsibility |
|---|---|
pista.ingest |
FIT parsing across head-unit vendors, normalization, Parquet writing |
pista.schema |
The canonical time-series schema and library manifest |
pista.metrics |
Channel library, power-duration curve, CP/W′, durability, decoupling |
pista.align |
Rider-to-rider alignment by road position rather than clock |
pista.synthetic |
Synthetic ride generator — the only data used in tests and examples |
Design commitments
- Immutable, append-only Parquet. One file per activity, never modified after writing. A library is a folder, so write contention cannot occur and it works over any sync service.
- No Qt dependency, ever. Core is a library; the application lives in PISTA Studio.
- Vectorized or SQL. Python orchestrates and never iterates over samples.
- Nulls are not zeros. A sensor dropout is a different fact from a genuine zero.
Development
Requires uv and Python 3.12+.
uv sync --extra dev # create the environment
uv run pytest # tests
uv run ruff check . # lint
uv run ruff format . # format
uv run pyright # type check
uv run pre-commit install # install the gitleaks + lint hooks (once)
Data
No rider data lives in this repository, not even anonymised. All tests and examples use the synthetic generator. A local FIT corpus belongs outside the repository.
Licence
Not yet licensed. PISTA Core will be published under an open licence (Apache-2.0 or AGPL-3.0) before the repository is made public.
© Alberto Scomparin
Metadata
Release files for pista-core 0.0.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 | |
|---|---|---|---|
| pista_core-0.0.0.tar.gz | 51.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pista_core-0.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.6 kB
Release files / pista_core-0.0.0.tar.gz
| Download URL | pista_core-0.0.0.tar.gz |
|---|---|
| Size | 51.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b82593d1d1ef0fc25db8eba0c3255d08868bb97f7f088740fbd330f333ede0da
|
|
BLAKE2b-256 checksum How to use checksums |
f56e9456247add8d9455883c11a0a4ecb7e6b40afe3577946e5f010b15d64cf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pista_core-0.0.0-py3-none-any.whl
| Download URL | pista_core-0.0.0-py3-none-any.whl |
|---|---|
| Size | 5.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d5769367540ece4e760029bac2fb87cdd3b69312d51e1c2a0cb700226c48e8f0
|
|
BLAKE2b-256 checksum How to use checksums |
6c85568919f3b1e986acab5dca7230eb93fb5f59024534eef108bec87a2f9668
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|