tommyod / streprogen

The Python strength program generator.
https://github.com/tommyod/streprogen/
GNU General Public License v3.0
38 stars 9 forks source link
fitness health program strength training

Streprogen - the Python strength program generator.

.. image:: https://badge.fury.io/py/streprogen.svg :target: https://pypi.org/project/streprogen/ :alt: PyPi

.. image:: https://readthedocs.org/projects/streprogen/badge/?version=latest :target: http://streprogen.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status

.. image:: https://github.com/tommyod/streprogen/workflows/Python%20CI/badge.svg?branch=master
:alt: Test Status

Install locally using pip install streprogen, or run live notebooks online.

Run code in your browser

If you don't have Python installed, you can run the code in your browser.

Learn how to make strength training programs


Example strength training program library


Check out the example PDF output <https://github.com/tommyod/streprogen/blob/master/docs/examples/3DaySplitWithPeriodization.pdf>_.

Multi-day meal planning


Instructions for live code: Click "Runtime", then "Run all". To download a saved file, click on the arrow on the top left, left click the file and "Download". A downloaded .html file can be printed from your local browser.

Project summary

Streprogen (short for stre\ ngth pro\ gram gen\ erator) is a Python_ 3.6+ package which allows the user to easily create dynamic, flexible strength training programs. The main features are:

.. image:: https://raw.githubusercontent.com/tommyod/streprogen/master/docs/examples/streprogen_overview.png

Installation

Here's how to install the software on your local machine.

(1) Download Anaconda distribution of Python 3.x from the Anaconda Website. (2) Install streprogen from PyPI.

(a) **Windows**: Open the Anaconda prompt from the start menu and run
    ``pip install streprogen``.
(b) **Linux**: Open the terminal and run
    ``pip install streprogen``.

(3) Open a Python Editor (such as Spyder, which comes with Anaconda_). (4) Copy the example below and run it to get started.

.. _Python: http://www.python.org/ .. _Anaconda: https://www.continuum.io/downloads .. _PyPI: https://pypi.org/project/streprogen/

Sample code

.. code-block:: python

from streprogen import Program

# Create an 8-week program, rounding every exercise to nearest unit og 5kg
program = Program("My first program!", duration=8, units="kg", round_to=5)

with program.Day("Day A"):
    program.DynamicExercise("Bench press", start_weight=80, min_reps=3, max_reps=8)
    program.DynamicExercise("Squats", start_weight=100, min_reps=3, max_reps=8)

with program.Day("Day B"):
    program.DynamicExercise("Deadlifts", start_weight=100, min_reps=2, max_reps=7)
    program.StaticExercise("Curls", "3 x 10 @ 18kg")

# Render the program, then print it
program.render()
print(program)

.. code-block::

----------------------------------------------------------------
Program: My first program!

Program parameters
  duration: 8
  reps_per_exercise: 25
  intensity: 83
  units: kg
----------------------------------------------------------------
Exercise information
  Day A
   Bench press    80kg -> 89.6kg 
    reps: [3, 8]   weekly inc.: 1.5%
   Squats        100kg -> 112kg  
    reps: [3, 8]   weekly inc.: 1.5%
  Day B
   Deadlifts     100kg -> 112kg  
    reps: [2, 7]   weekly inc.: 1.5%
   Curls         3 x 10 @ 18kg
----------------------------------------------------------------
Program
 Week 1
  Day A
   Bench press   8 x 60kg   7 x 65kg   7 x 65kg   7 x 65kg   
   Squats        8 x 75kg   7 x 80kg   7 x 80kg   7 x 80kg   

  Day B
   Deadlifts     7 x 80kg   7 x 80kg   6 x 80kg   6 x 80kg   5 x 85kg   
   Curls         3 x 10 @ 18kg

 Week 2
  Day A
   Bench press   7 x 65kg   7 x 65kg   6 x 65kg   5 x 70kg   5 x 70kg   
   Squats        7 x 80kg   7 x 80kg   6 x 85kg   5 x 85kg   5 x 85kg   

  Day B
   Deadlifts     7 x 80kg   7 x 80kg   6 x 85kg   5 x 85kg   5 x 85kg   
   Curls         3 x 10 @ 18kg

 Week 3
  ...
   ...