From dc36c343f493375560350cec3d1beab469f30302 Mon Sep 17 00:00:00 2001 From: Aki Date: Thu, 22 Sep 2022 22:56:29 +0200 Subject: Created stub request to point forecast endpoint --- .gitignore | 6 ++++++ windy.py | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 .gitignore create mode 100644 windy.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bdc591b --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +__pycache__/ +.venv/ +*.egg-info/ +build*/ +.eggs/ +.env diff --git a/windy.py b/windy.py new file mode 100644 index 0000000..3938ed6 --- /dev/null +++ b/windy.py @@ -0,0 +1,37 @@ +from enum import Enum + +import requests + +API = "https://api.windy.com/api" + + +class Model(Enum): + ICONEU = "iconEu" + + def __str__(self): + return self.value + + +class PointForecast: + ENDPOINT = "/point-forecast/v2" + + def __init__(self, lat: float, lon: float, model: Model, parameters=None, levels=None, key=None): + self.lat = lat + self.lon = lon + self.model = model + self.parameters = parameters or [] + self.levels = levels or ["surface"] + self.key = key + + def request(self, /, key=None): + return requests.post(API + self.ENDPOINT, json=self.body(key=key)) + + def body(self, /, lat=None, lon=None, model=None, parameters=None, levels=None, key=None): + return { + 'lat': lat or self.lat, + 'lon': lon or self.lon, + 'model': str(model or self.model), + 'parameters': parameters or self.parameters, + 'levels': levels or self.levels, + 'key': key or self.key, + } -- cgit v1.1