#!/usr/bin/env python3 """ Read weather predictions for the next days, and if it's high enough, recommend that Dennis buys witbier. """ import datetime import json import os import sys from collections import defaultdict from urllib.request import urlopen def load_weather(): url = 'https://api.openweathermap.org/data/2.5/forecast?q=Leiden' \ + '&units=metric' \ + '&appid=' + os.environ['API_KEY'] result = urlopen(url) return json.load(result) def get_maxima(weather): days = defaultdict(float) for day in weather['list']: instant = datetime.datetime.fromtimestamp(day['dt']) date = instant.date() days[date] = max(days[date], day['main']['temp_max']) return days def main(): if len(sys.argv) > 1: with open(sys.argv[1]) as f: weather = json.load(f) else: weather = load_weather() print(get_maxima(weather)) if __name__ == '__main__': main()