First batch of pylint(1) fixes
[munter.git] / munter.py
index 5626897ebe391e23d53fc53b7d8b2fc238be8bf7..485db199db167ba88417ff8a733c56a3330aee7f 100755 (executable)
--- a/munter.py
+++ b/munter.py
@@ -1,99 +1,9 @@
 #! /usr/bin/env python
 # -*- coding: utf-8 -*-
 
-
-# Munter Time Calculation
-#
-# Rudimentary program written by ALV to implement the Munter time calculation
-
+"""Wrapper for running directly from the source code directory"""
 import sys
-import argparse
-
-class InvalidUnitsException(Exception):
-    pass
-
-rates = {
-    'uphill': { 'rate': 4, 'direction': '↑' },
-    'flat': { 'rate': 6, 'direction': '→' }, # or downhill on foot
-    'downhill': { 'rate': 10, 'direction': '↓' },
-    'bushwhacking': { 'rate': 2, 'direction': '↹' },
-}
-
-unit_choices = ['metric', 'imperial']
-travel_mode_choices = rates.keys()
-
-def munter(distance, elevation, rate, units):
-    retval = {}
-
-    if units not in unit_choices:
-        raise InvalidUnitsException
-
-    unit_count = 0
-
-    if 'imperial' == units:
-        # convert to metric
-        distance = (distance * 1.609) # mi to km
-        elevation = (elevation * .305) # ft to m
-
-    unit_count = distance + (elevation / 100.0)
-
-    retval['time'] = (distance + (elevation / 100.0)) / rates[rate]['rate']
-    retval['unit_count'] = unit_count
-    retval['direction'] = rates[rate]['direction']
-    retval['pace'] = rates[rate]['rate']
-
-    return retval
-
-def main():
-    parser = argparse.ArgumentParser(description='Munter Time Calculation')
-
-    parser.add_argument('--distance', '-d', type=float,
-        required=True,
-        help='Distance (in km, by default)')
-
-    parser.add_argument('--elevation', '-e', type=float,
-        required=True,
-        help='Elevation change (in m, by default)')
-
-    parser.add_argument('--travel-mode', '-t', type=str,
-        default='uphill',
-        choices=travel_mode_choices, required=False,
-        help='Travel mode (flat, by default)')
-
-    parser.add_argument('--units', '-u', type=str,
-        default='imperial',
-        required=False,
-        choices=unit_choices,
-        help='Units of input values')
-
-    opts = parser.parse_args()
-
-    distance = opts.distance
-    elevation = opts.elevation
-    units = opts.units
-    travel_mode = opts.travel_mode
-
-    time_calc = munter(distance, elevation, travel_mode, units=units)
-
-    hours = int(time_calc['time'])
-    minutes = int((time_calc['time'] - hours) * 60)
-
-    print("\n\t╒═══════════════════════════════╕")
-    print("\t╎▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒╎╮")
-    print("\t╎▒{:^29}▒╎│".format(''))
-    print("\t╎▒{pace_readable:^31}▒╎│".format(
-            pace_readable="{units} {direction} @ {pace}".format(
-                units=round(time_calc['unit_count']),
-                direction=time_calc['direction'],
-                pace=time_calc['pace'])))
-    print("\t╎▒{human_time:^29}▒╎│".format(
-            human_time="{hours} hours {minutes} minutes".format(
-                hours=hours,
-                minutes=minutes)))
-    print("\t╎▒{:^29}▒╎│".format(''))
-    print("\t╎▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒╎│")
-    print("\t╘═══════════════════════════════╛│")
-    print("\t └───────────────────────────────┘\n")
+from munter.munter import main
 
 if __name__ == "__main__":
-    main()
+    sys.exit(main())