Simple CLI tools to keep a record of daily rainfall records.
  • Python 98.1%
  • Just 1.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Marvin8 f8ebdba916
All checks were successful
/ pr-review (push) Has been skipped
/ pr-review (release) Has been skipped
/ gitleaks (push) Successful in 15s
/ gitleaks (release) Successful in 13s
/ checks (push) Successful in 3m55s
/ publish (push) Has been skipped
/ checks (release) Successful in 4m9s
/ deploy-docs (release) Has been skipped
/ deploy-docs (push) Successful in 1m19s
/ publish (release) Successful in 26s
🔧 bump: version 1.1.0 → 1.1.1
2026-08-07 06:27:01 +10:00
.forgejo/workflows revert untested extraheader change — restore working token-in-URL 2026-08-07 06:11:31 +10:00
docs 🔧 migrate project URLs and CI from Codeberg to forge.marvin8.zone 2026-08-06 18:49:58 +10:00
src/rainlog ⬆️ bump cyclopts to 4.22.3, ruff to 0.16.1 (aged past min-age) 2026-08-07 06:17:44 +10:00
tests 📝 document comparison mode and fix year-cap and color palette bounds 2026-07-13 11:33:22 +10:00
.editorconfig
.gitignore 🔧 relocate .superpowers folder, update gitignore 2026-07-12 20:43:42 +10:00
.pre-commit-config.yaml 🐛 fix ruff PLR0917, pysentry vuln, and pre-commit version pins 2026-08-06 19:23:40 +10:00
.python-version
.secrets.baseline
AI-DECLARATION.md 📝 add AI-DECLARATION.md 2026-07-12 20:46:12 +10:00
CHANGELOG.md docs: update changelog for 1.1.1 2026-08-07 06:27:00 +10:00
CLAUDE.md 📝 reference Release-Notes.md.template instead of embedding a copy 2026-07-13 06:43:37 +10:00
improvements.md 📝 document comparison mode and fix year-cap and color palette bounds 2026-07-13 11:33:22 +10:00
justfile 🔧 migrate project URLs and CI from Codeberg to forge.marvin8.zone 2026-08-06 18:49:58 +10:00
mkdocs.yml 🔧 migrate project URLs and CI from Codeberg to forge.marvin8.zone 2026-08-06 18:49:58 +10:00
noxfile.py ♻️ rename package weather_tools → rainlog and CLI command rain → rainlog 2026-07-01 14:54:22 +10:00
pylock.toml 🐛 fix ruff PLR0917, pysentry vuln, and pre-commit version pins 2026-08-06 19:23:40 +10:00
pyproject.toml 🔧 bump: version 1.1.0 → 1.1.1 2026-08-07 06:27:01 +10:00
README.md 🔧 migrate project URLs and CI from Codeberg to forge.marvin8.zone 2026-08-06 18:49:58 +10:00
Release-Notes.md 🔧 bump: version 1.1.0 → 1.1.1 2026-08-07 06:27:01 +10:00
Release-Notes.md.template add Release-Notes.md and template 2026-07-12 20:48:01 +10:00
ruff.toml
uv.lock 🔧 bump: version 1.1.0 → 1.1.1 2026-08-07 06:27:01 +10:00

rainlog

PyPI version Python versions License: AGPL-3.0 CI Docs

A terminal-based rain logger. Record daily rainfall totals in a local SQLite database and explore history through an interactive TUI.

License: AGPL-3.0-or-later

Python: 3.113.14

Install

From the repository root (with uv recommended):

uv sync

Or install the package into your environment:

uv pip install .

The console entry point is rainlog.

Usage

Run the TUI:

rainlog
Key Action
n Add a rain record
e Edit a record (use s to select a bar first in daily view)
/ Scroll history back / forward
g Cycle grouping (daily / weekly / monthly / yearly)
m Toggle chart mode (rainfall ↔ soil-moisture index)
+ / - More / fewer bars
a Auto bar count
q Quit

Data storage

  • By default, data lives in rainlog.sqlite in ~/.local/share/rainlog/.
  • Use --db-dir to put the database in another directory (the filename stays rainlog.sqlite).
  • Each row stores the rain total in millimetres for a 24-hour block ending at 09:00 local time on the given calendar day.

Development

Tests and automation are driven by Nox; list sessions with nox -l and run the ones you need (e.g. tests).