Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.5.0 instead.
Reason given by maintainers: resetting versioning

Training Video Organizer

A CLI tool for organizing training videos and logging lift data with SQLite storage.

Features

  • Add individual lifts or bulk import sessions from JSON
  • List, update, and delete logged entries
  • Filter by date, program, exercise, weight, RIR, etc.
  • Open video files directly from the database
  • Rich terminal output with tables and colors

Tech Stack

  • Python 3.10+
  • Typer (CLI framework)
  • SQLite (via dynamic schema generation)
  • Rich (terminal UI)

Quick Start

# Install dependencies
uv sync

# Initialize the database
tvo init -d db/training.db

# Add a single lift
tvo add lift --date 2026-09-30 --program "Push/Pull/Legs" \
             --iteration 1 --lift squat --weight 225 --reps 8 \
             --top-set -f /videos/squat_20260930.mp4

# List all lifts
tvo list lifts

# Filter by program and iteration
tvo list lifts --program "Push/Pull/Legs" --iteration 1

# Open videos for top sets
tvo open --top-set -l 50

# Update a lift entry (by ID)
tvo update 42 --weight 230

# Delete an entry
tvo delete 42 --force

Project Structure

  • src/training_vid_organizer/ — core package
    • cli.py — Typer app with all commands
    • db_handling/db.py — dynamic SQLite schema from dataclass
    • logging_config.py — structured logging setup
    • utils.py — video path helpers

Environment Variables

  • TVO_DB_PATH — override default database location
  • TVO_VIDEO_DIR — base directory for video files
  • TVO_LOG_LEVEL — set to DEBUG or INFO for verbose output

CI/CD Workflows

Automated pipelines run on GitHub:

  • CI (ci.yml): Runs on every commit/PR against main. Executes lint checks and fast tests for developer feedback.
  • Build & Release (build-and-release.yml): Triggers on push to main. Uses Hatch to auto-detect semantic version bumps from conventional commits, builds distributions, creates annotated tags, and generates release notes.
  • Publish (publish.yml): Manual trigger via workflow_dispatch. Publishes to TestPyPI or PyPI using GitHub Actions trusted publishing (id-token).

Local Development Hooks

A pre-commit hook validates commit messages against Conventional Commits format before allowing commits to be staged. Run git commit and it will automatically check your message.

Commit messages follow Conventional Commits to enable automated versioning and release notes generation.

Format:

<type>[optional scope]!: <description>
[optional body explaining the change]
[optional BREAKING CHANGE footer]

Version Bump Rules (auto-detected by Hatch in CI):

  • feat! → MINOR bump (new feature)
  • fix! → PATCH bump (bug fix)
  • BREAKING CHANGE: or type!: → MAJOR bump
  • All other types → no version change

Supported Types:

Type Example Effect
feat feat: add export command MINOR (new functionality)
fix fix: correct query filter NULL PATCH (bug fixes)
docs docs: update README examples No bump
style style: format code with ruff No bump
refactor refactor: simplify db init No bump
perf perf: optimize query execution No bump
test test: add edge case coverage No bump
chore chore: update dependencies No bump

Examples:

feat!: add export command          # MINOR (breaking feature)
fix: correct query filter NULL     # PATCH
refactor: simplify db init         # No bump
BREAKING CHANGE: schema change     # MAJOR (when used with type!)

Local commits are validated by pre-commit hooks before being pushed. CI uses Hatch to auto-detect and apply version bumps based on commit types.

Metadata

Release files for training-vid-organizer 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for training-vid-organizer 1.1.1
File Size Uploaded Provenance
training_vid_organizer-1.1.1.tar.gz 25.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for training-vid-organizer 1.1.1
File Interpreter ABI Platform
training_vid_organizer-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 41.3 kB

Release files / training_vid_organizer-1.1.1.tar.gz

Download URL training_vid_organizer-1.1.1.tar.gz
Size 25.5 kB
Tags Source
SHA-256 checksum
How to use checksums
169493b6a3113c5019f59343c3fa88a4f3fb9fedb5f9a3859d6a7697c7fdeb90
BLAKE2b-256 checksum
How to use checksums
b96f3f7615d9f1ce031d26bef6b58701e1d940753bdd9350b22f14a8c8b13ed7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / training_vid_organizer-1.1.1-py3-none-any.whl

Download URL training_vid_organizer-1.1.1-py3-none-any.whl
Size 15.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
30971f04136069cbc824098892e5e03e5e962a4aa8702536d6558e0194ebf15e
BLAKE2b-256 checksum
How to use checksums
1681c1ccdec4195d5cc65f09cdae07d9bccbcff6be68ee4c6b3f5de1ba0ecd72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for training-vid-organizer 1.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page