From: Alexander Vasarab Date: Wed, 24 Jun 2020 03:47:36 +0000 (-0700) Subject: Implement fitness modifier X-Git-Tag: v2.1.0~8^2 X-Git-Url: https://wylark.com/src/munter.git/commitdiff_plain/9f40b77815de6e6ee83847db32d4bf3e9fb7f6b9?ds=inline;hp=-c Implement fitness modifier --- 9f40b77815de6e6ee83847db32d4bf3e9fb7f6b9 diff --git a/munter/munter.py b/munter/munter.py index 234ec9b..98669c5 100644 --- a/munter/munter.py +++ b/munter/munter.py @@ -22,10 +22,18 @@ rates = { 'bushwhacking': { 'rate': 2, 'direction': '↹' }, } +fitnesses = { + 'slow': 1.2, + 'average': 1, + 'fast': .7, +} + unit_choices = ['metric', 'imperial'] travel_mode_choices = rates.keys() +fitness_choices = fitnesses.keys() -def time_calc(distance, elevation, rate='uphill', units='imperial'): +def time_calc(distance, elevation, fitness='average', rate='uphill', + units='imperial'): retval = {} if units not in unit_choices: @@ -41,6 +49,8 @@ def time_calc(distance, elevation, rate='uphill', units='imperial'): unit_count = distance + (elevation / 100.0) retval['time'] = (distance + (elevation / 100.0)) / rates[rate]['rate'] + retval['time'] = retval['time'] * fitnesses[fitness] + retval['unit_count'] = unit_count retval['direction'] = rates[rate]['direction'] retval['pace'] = rates[rate]['rate'] @@ -102,6 +112,13 @@ def get_parser(): choices=travel_mode_choices, required=False, help='Travel mode (uphill, by default)') + parser.add_argument('--fitness', + '-f', + type=str, + default='average', + choices=fitness_choices, required=False, + help='Fitness modifier (average, by default)') + parser.add_argument('--units', '-u', type=str, @@ -125,11 +142,12 @@ def main(): distance = opts.distance elevation = opts.elevation + fitness = opts.fitness units = opts.units travel_mode = opts.travel_mode time_estimate = time_calc(distance=distance, elevation=elevation, - rate=travel_mode, units=units) + fitness=fitness, rate=travel_mode, units=units) if opts.pretty: print_pretty_estimate(time_estimate)