Ejemplo n.º 1
0
def construct_directions(commands: list, directions: dict,
                         lat_long_list: list) -> None:
    '''Takes in a list of output commands desired by the user, the directions
    dictionary, and list of latitude and longitude tuples and prints out
    the corresponding results according to the output commmands'''

    for com in commands:

        if com == 'STEPS':
            direction_info = mapquest_output.Steps(directions)
            direction_info.get_directions(directions)

        elif com == 'TOTALDISTANCE':
            distance_info = mapquest_output.Total_Distance(directions)
            distance_info.get_distance(directions)

        elif com == 'TOTALTIME':
            time_info = mapquest_output.Total_Time(directions)
            time_info.get_time(directions)

        elif com == 'LATLONG':
            latlong_info = mapquest_output.Lat_Long(directions)
            latlong_info.get_latitude_longitude(directions)

        elif com == 'ELEVATION':
            elevation_information(lat_long_list)

        #command is ignored if it is not equal to any of the commands above
        else:
            pass
Ejemplo n.º 2
0
def create_object(output: str, data: dict) -> object:
    'Create an object depending on the input given'
    if output == 'STEPS':
        return mapquest_output.Steps(mapquest.return_directions(data))
    elif output == 'TOTALDISTANCE':
        return mapquest_output.TotalDistance(mapquest.return_distance(data))
    elif output == 'TOTALTIME':
        return mapquest_output.TotalTime(mapquest.return_time(data))
    elif output == 'LATLONG':
        return mapquest_output.LatLongs(mapquest.return_latlongs(data))
    elif output == 'ELEVATION':
        return mapquest_output.Elevation(mapquest.return_elevations(data))
Ejemplo n.º 3
0
def translate_commands(tasks: list) -> list:
    '''Translates user input into one that is able to call the command function.'''
    command_classes = []
    for task in tasks:
        if task.upper() == 'STEPS':
            command_classes.append(mapquest_output.Steps())
        elif task.upper() == 'TOTALDISTANCE':
            command_classes.append(mapquest_output.TotalDistance())
        elif task.upper() == 'TOTALTIME':
            command_classes.append(mapquest_output.TotalTime())
        elif task.upper() == 'LATLONG':
            command_classes.append(mapquest_output.LatLong())
        elif task.upper() == 'ELEVATION':
            command_classes.append(mapquest_output.Elevation())

    return command_classes
Ejemplo n.º 4
0
def _commands(userinput: list) -> list:
    '''
    takes the user input and returns the requested classes info as a list
    '''
    infolist = []
    for info in userinput:
        if info == 'LATLONG':
            infolist.append(mapquest_output.Latlong())
        if info == 'STEPS':
            infolist.append(mapquest_output.Steps())
        if info == 'TOTALTIME':
            infolist.append(mapquest_output.TotalTime())
        if info == 'TOTALDISTANCE':
            infolist.append(mapquest_output.TotalDistance())
        if info == 'ELEVATION':
            infolist.append(mapquest_output.Elevations())
    return infolist
Ejemplo n.º 5
0
def get_input() -> dict:
    '''Receives input and returns a dictionary containing a list of locations
        and a list of wanted outputs'''
    d = {
        'LATLONG': mapquest_output.LatLong(),
        'STEPS': mapquest_output.Steps(),
        'TOTALTIME': mapquest_output.TotalTime(),
        'TOTALDISTANCE': mapquest_output.TotalDistance(),
        'ELEVATION': mapquest_output.Elevation()
    }

    ##    number = int(input())
    ##    location = []
    ##
    ##    for i in range(0, number):
    ##        location.append(input())
    ##
    ##    next_num = int(input())
    ##    outputs = []
    ##
    ##    for i in range(0, next_num):
    ##        outputs.append(d[input()])
    ##
    ##    d = dict()
    ##    d['locations'] = location
    ##    d['outputs'] = outputs
    ##
    ##    return d '''
    start = input('Enter starting address: ')
    end = input('Enter destination address: ')

    return {
        'locations': [start, end],
        'outputs': [
            d['LATLONG'], d['STEPS'], d['TOTALTIME'], d['TOTALDISTANCE'],
            d['ELEVATION']
        ]
    }
Ejemplo n.º 6
0
        output = input()
        output_list.append(output.upper())

    return output_list


def run_output(mapquest_outputs: ['mapquest_output'], outputs: ['output'],
               json_result: 'json'):
    if 'STEPS' in outputs:
        mapquest_outputs[0].print(json_result)
    if 'TOTALDISTANCE' in outputs:
        mapquest_outputs[1].print(json_result)
    if 'TOTALTIME' in outputs:
        mapquest_outputs[2].print(json_result)
    if 'LATLONG' in outputs:
        mapquest_outputs[3].print(json_result)
    print(
        '\n' +
        'Directions Courtesy of MapQuest; Map Data Copyright OpenStreetMap Contributors'
    )


if __name__ == '__main__':
    outputs = get_outputs()
    run_output([
        mapquest_output.Steps(),
        mapquest_output.Distance(),
        mapquest_output.Time(),
        mapquest_output.LatLong()
    ], outputs, mapquest_api_connect.result)