def handleExceptionForRequest(string, function, functionArguments):
    if string == "quit":
        printer.printFarewell()
        sys.exit()
    else:
        printer.printInputError()
        numberOfArguments = len(functionArguments)
        if numberOfArguments == 0:
            function()
        elif numberOfArguments == 1:
            function(functionArguments[0])
    requester.requestActivities(file, False)
    file.close()
    return

def generateMonthlyReport():
    month = requester.requestScopeOfMonthlyReport()
    fileName = month[0] + '-' + month[1]
    file = open('MonthlyProgressReports/' + fileName, 'w+')
    writer.writeMonthlyHeader(file, month)
    writer.writeThisMonthHeader(file)
    printer.printThisMonthMessage()
    requester.requestMonthlyActivities(file, month[0] + '-' + month[1])
    writer.writeNextMonthHeader(file)
    printer.printNextMonthMessage()
    requester.requestActivities(file)
    file.close()
    return

if __name__ == "__main__":
    printer.printWelcome()
    while True:
        scope = requester.requestScope()
        if scope == 'w':
            generateWeeklyReport()
            break
        elif scope == 'm':
            generateMonthlyReport()
            break
    printer.printFarewell()