From 9fe4f3d2a906be93c39a0d5d275dd5a677deed93 Mon Sep 17 00:00:00 2001 From: Philipp Spitzer Date: Wed, 4 Jul 2018 20:33:09 +0200 Subject: [PATCH] Create dedicated package seeparklib and add openweathermap module. --- seeparklib/__init__.py | 0 seeparklib/openweathermap.py | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 seeparklib/__init__.py create mode 100644 seeparklib/openweathermap.py diff --git a/seeparklib/__init__.py b/seeparklib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/seeparklib/openweathermap.py b/seeparklib/openweathermap.py new file mode 100644 index 0000000..d350eb6 --- /dev/null +++ b/seeparklib/openweathermap.py @@ -0,0 +1,20 @@ +import requests + + +class OpenWeatherMapError(RuntimeError): + pass + + +def openweathermap_json(apikey, cityid): + """Returns parsed JSON as returned by openweathermap for the given cityid. + In case of errors, an OpenWeatherMapError is raised.""" + baseurl = 'http://api.openweathermap.org/data/2.5/weather' + query = baseurl + '?units=metric&APPID={}&id={}&lang=de'.format(apikey, cityid) + try: + response = requests.get(query) + if response.status_code != 200: + raise OpenWeatherMapError('Got status code {} ({}).'.format(response.status_code, response.reason)) + else: + return response.json() + except requests.exceptions.RequestException as error: + raise OpenWeatherMapError('Request not successful: {}'.format(error)) -- 2.47.3