Typed utilities for strength training: 1RM estimates, RPE/RIR tables, volume, progression, and simple program planning.
Project description
strength-utils
Please note that this package is undergoing regular changes.
Typed utilities for strength training and programming.
Features
- Multiple 1RM estimation formulas (Epley, Brzycki, Lombardi, Mayhew).
- Predict training weight at target reps or RPE.
- RPE ↔ %1RM tables (with interpolation).
- Volume/tonnage calculations per exercise and per session.
- Basic progression helpers (linear, double progression, RIR-based).
- Simple templated programs (e.g., 5x5, PPL) as typed data models.
- Unit conversion utilities (kg/lb).
- 100% type-hinted code.
Quickstart
from strength_utils import estimate_1rm, predict_weight_for_reps, rpe_to_percent
one_rm = estimate_1rm(weight=140.0, reps=5, method="epley") # ~163.3 kg
target = predict_weight_for_reps(one_rm, reps=3, rpe=9.0) # planned training weight
print(one_rm, target)
License
MIT
Percent tables per lift
from strength_utils import make_percent_table_by_lift
tables = make_percent_table_by_lift({"Back Squat": 180.0, "Bench Press": 120.0})
print(tables["Back Squat"][0.8]) # -> 1RM * 0.8 rounded to nearest 2.5 kg
Program generators (PPL & 5x5)
from strength_utils import program_ppl, program_5x5
ppl = program_ppl() # 3-day template
five = program_5x5(weeks=4) # 12 sessions (3 per week)
for s in ppl:
print(s.day, s.workout.name, len(s.workout.prescriptions))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
strength_utils-0.1.0.tar.gz
(1.7 MB
view details)
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 strength_utils-0.1.0.tar.gz.
File metadata
- Download URL: strength_utils-0.1.0.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
039b517d10f2b3097ee95bd26db1b97252efac98ea076391cec396acf2d0bad2
|
|
| MD5 |
bfde5f93f882f9db0fb6f7fdabe36ffb
|
|
| BLAKE2b-256 |
b300f05f4e7da852a4bccb8b13ea9a022d54bf9cee67c19b752e0d5fc40ef2a0
|
File details
Details for the file strength_utils-0.1.0-py3-none-any.whl.
File metadata
- Download URL: strength_utils-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f42cb71503c0f76ea5626108bd3776fb06108dc9d92cef344f5d003377ab3126
|
|
| MD5 |
78f5ba0950001ae87be5f66b647318d9
|
|
| BLAKE2b-256 |
87b710bfc9e0c971c387c1aa8ef585071499a6bfdc4bddfbcfcb7315bb85d9eb
|