summaryrefslogtreecommitdiff
path: root/windy.py
blob: 3938ed6a6e272c8bd2aeae477cfb9eefd7e4927b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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,
		}