Python package for health and fitness calculations using ACSM-sourced equations
Project description
Fitness Tools
Healthy Lifestyles With Python
Fitness Tools is a Python package that facilitates healthy lifestyles using ACSM-sourced equations. Whether you're a wellness professional, veteran gym rat, or just starting your fitness journey, this package will benefit you.
Features
- Body Composition — Estimate body fat percentage from skinfold measurements using Durnin-Womersley and Jackson-Pollock (3/4/7-site) equations
- Rep Max Estimation — Convert between weight and rep ranges using the ACSM percentage-of-1RM table
- Macronutrient Planning — Calculate daily calorie ranges and macro distributions by body type, activity level, and goal
Quick Start
No third-party dependencies. Python 3.11+ only.
pip install fitness-tools
Body Composition
from fitness_tools import DurninWomersley, Sex
calc = DurninWomersley(age=30, sex=Sex.MALE, skinfolds=(12, 8, 15, 10))
density = calc.body_density()
body_fat = calc.siri(density)
Rep Max Estimation
from fitness_tools import RM_Estimator
est = RM_Estimator(current_weight=185.0, current_reps=8, desired_reps=1)
result = est.estimate_weight(base=2.5)
Macronutrient Planning
from fitness_tools import MakeMeal, BodyType, ActivityLevel, Goal
meal = MakeMeal(
weight=150,
body_type=BodyType.MESOMORPH,
activity_level=ActivityLevel.VERY,
goal=Goal.MAINTENANCE,
)
daily = meal.daily_requirements()
per_meal = meal.make_meal(number_meals=5)
API
All public types are importable from fitness_tools:
| Category | Classes |
|---|---|
| Body Composition | DurninWomersley, JacksonPollock3Site, JacksonPollock4Site, JacksonPollock7Site |
| Exercise | RM_Estimator |
| Meal Planning | MakeMeal |
| Enums | Sex, BodyType, ActivityLevel, Goal |
| Data Models | BodyCompositionResult, MacroTargets, RepEstimate |
Agent Skills
This package includes 3 skills for AI-assisted fitness calculations:
| Skill | Description |
|---|---|
body-composition |
Skinfold-based body fat assessment |
rep-max |
One-rep max estimation via ACSM table |
meal-planner |
Macronutrient planning by body type |
Install
Claude Code plugin — run inside a Claude Code session:
/plugin marketplace add Jeffallan/Fitness-Tools
/plugin install fitness-tools@fitness-tools
skills.sh — from any terminal:
npx skills add Jeffallan/Fitness-Tools
How To Contribute
- Read the contributing guidelines
- Check the changelog to see where this project has been
All skill levels are welcome and our maintainers will help you in whatever way we can.
License
This project is licensed under the Apache 2.0 License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 fitness_tools-1.0.0.tar.gz.
File metadata
- Download URL: fitness_tools-1.0.0.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51fce57c52ef10b0e4aaea019151403b9300933d4c6805699f72fa7f325b0bc4
|
|
| MD5 |
d97d56f7a5f8697bba2322ad2a95e995
|
|
| BLAKE2b-256 |
828d66634770e6ee717c5a5c5ba29016e99842863b369903244c2a7712bc7657
|
Provenance
The following attestation bundles were made for fitness_tools-1.0.0.tar.gz:
Publisher:
release.yml on Jeffallan/Fitness-Tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fitness_tools-1.0.0.tar.gz -
Subject digest:
51fce57c52ef10b0e4aaea019151403b9300933d4c6805699f72fa7f325b0bc4 - Sigstore transparency entry: 1312889273
- Sigstore integration time:
-
Permalink:
Jeffallan/Fitness-Tools@8af3ccec28c34efa0f11ae44913d55ba17df4737 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/Jeffallan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8af3ccec28c34efa0f11ae44913d55ba17df4737 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fitness_tools-1.0.0-py3-none-any.whl.
File metadata
- Download URL: fitness_tools-1.0.0-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
417212cdaa644a6e013457e79c6d2282a5f8c22f3a09abea1ed02e5a0a5bb116
|
|
| MD5 |
5c66c6e9b79384077b292e2184106d8f
|
|
| BLAKE2b-256 |
ceb891a430cebe6f651641b449af0b9bbaf676f13ba0ce2421ce9e759315e995
|
Provenance
The following attestation bundles were made for fitness_tools-1.0.0-py3-none-any.whl:
Publisher:
release.yml on Jeffallan/Fitness-Tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fitness_tools-1.0.0-py3-none-any.whl -
Subject digest:
417212cdaa644a6e013457e79c6d2282a5f8c22f3a09abea1ed02e5a0a5bb116 - Sigstore transparency entry: 1312889482
- Sigstore integration time:
-
Permalink:
Jeffallan/Fitness-Tools@8af3ccec28c34efa0f11ae44913d55ba17df4737 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/Jeffallan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8af3ccec28c34efa0f11ae44913d55ba17df4737 -
Trigger Event:
push
-
Statement type: