def calculateNeededGallons(): result = [] recentWateringGallons = DataManager.getPreviousWateringAmounts(pymysql.connect(host='localhost', user='******', password='', db='Garden', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)) sectorTargets = DataManager.getTargetCapacity(pymysql.connect(host='localhost', user='******', password='', db='Garden', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)) previousRain = DataManager.getLatestRainfall(pymysql.connect(host='localhost', user='******', password='', db='Garden', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)) predictedRain = DataManager.getPredictedRainfall(pymysql.connect(host='localhost', user='******', password='', db='Garden', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)) currentMoistures = DataManager.getLatestMoisture(pymysql.connect(host='localhost', user='******', password='', db='Garden', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)) for x in range(0, 4): currentGallons = (previousRain * 280) + recentWateringGallons[x + 1] if currentMoistures[x] > sectorTargets[x]: result.insert(x, 0) elif currentGallons > 280: result.insert(x, 0) else: if (predictedRain[1] * 280) * (predictedRain[0]/Decimal(100)) + currentGallons > 280: result.insert(x, 0) else: result.insert(x, 280 - ((predictedRain[1] * 280) * (predictedRain[0]/Decimal(100)) + currentGallons)) print((predictedRain[1] * 280) * (predictedRain[0]/Decimal(100)) + currentGallons) return result