Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 1.72 KB

File metadata and controls

44 lines (33 loc) · 1.72 KB

License: GPL v3+ Ruff Package Manager: uv

Cube

Cube is a Python toolkit for collecting, storing, and visualising Rubik's Cube solve history. It reads raw cstimer JSON exports, writes a parquet backing store for fast analytics, computes summary statistics, and renders exploratory matplotlib plots. Entries from the json files are deduplicated.

Quick start

uv sync --dev          # create the virtualenv and install runtime + pytest
uv run cube add ~/cube/*.txt
uv run cube analyze  # summary + latest 15 solves
uv run cube plot
uv run cube plot --axis=solve
uv run cube info

The CLI accepts any number of export files and consolidates them into a single parquet file stored under your user data directory (per platformdirs). Analysis prints a readable summary plus the latest 15 solves with Ao5/Ao12 values, and plots are rendered interactively (choose --axis=solve for stepped x-axis by solve order) with Ao5/Ao12 overlays. Run cube info at any time to print the resolved dataset path.

Development

  • uv add <package> manages dependencies in pyproject.toml
  • uv run pytest executes the automated test suite
  • install prek for pre-commit hooks

Other packages

The cstimer import is based on scramble-history, which does most of what I wanted (and more), but did not seem to have a parquet file backend for a single storage.