Merge branch 'fitness'
authorAlexander Vasarab <alexander@wylark.com>
Wed, 24 Jun 2020 03:47:57 +0000 (20:47 -0700)
committerAlexander Vasarab <alexander@wylark.com>
Wed, 24 Jun 2020 03:47:57 +0000 (20:47 -0700)
munter/munter.py

index 234ec9bb5027a6ce2052db5bf60d91bc0df68f8d..98669c56516c60228640881b321efb7d8700e010 100644 (file)
@@ -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)