|
| 1 | +# pylint: disable=W0621 |
| 2 | +"""Asynchronous Python client for GeoSphere Austria weather data.""" |
| 3 | + |
| 4 | +import asyncio |
| 5 | + |
| 6 | +import src.zamg.zamg |
| 7 | +from src.zamg.exceptions import ZamgError |
| 8 | + |
| 9 | + |
| 10 | +async def main(): |
| 11 | + """Sample of getting data""" |
| 12 | + try: |
| 13 | + async with src.zamg.zamg.ZamgData() as zamg: |
| 14 | + # option to disable verify of ssl check |
| 15 | + zamg.verify_ssl = False |
| 16 | + |
| 17 | + # data = await zamg.zamg_stations() |
| 18 | + |
| 19 | + # print(f"forecast_metadata: {zamg.forecast_metadata}") |
| 20 | + # print(f"get_forecast_all_parameters: {zamg.get_forecast_all_parameters()}") |
| 21 | + |
| 22 | + data = await zamg.get_forecast("46.99,15.499", current_only=True) |
| 23 | + print(f"get_forecast(current_only=True): {data}") |
| 24 | + data = await zamg.get_forecast("46.99,15.499", current_only=False) |
| 25 | + print(f"get_forecast(current_only=False): {data}") |
| 26 | + |
| 27 | + return |
| 28 | + |
| 29 | + # trying to read GeoSphere Austria station id of the closest station |
| 30 | + data = await zamg.closest_station(46.99, 15.499) |
| 31 | + # set closest station as default one to read |
| 32 | + zamg.set_default_station(data) |
| 33 | + print("closest_station = " + str(zamg.get_station_name) + " / " + str(data)) |
| 34 | + # print list with all possible parameters |
| 35 | + print(f"Possible station parameters: {zamg.get_all_parameters()}") |
| 36 | + # set parameters directly |
| 37 | + zamg.station_parameters = "TL,SO" |
| 38 | + # or set parameters as list |
| 39 | + zamg.set_parameters(("TL", "SO")) |
| 40 | + # if none of the above parameters are set, all possible parameters are read |
| 41 | + # do an update |
| 42 | + await zamg.update() |
| 43 | + |
| 44 | + print(f"---------- Weather for station {zamg.get_station_name} ({data})") |
| 45 | + for param in zamg.get_parameters(): |
| 46 | + print( |
| 47 | + str(param) |
| 48 | + + " -> " |
| 49 | + + str(zamg.get_data(parameter=param, data_type="name")) |
| 50 | + + " -> " |
| 51 | + + str(zamg.get_data(parameter=param)) |
| 52 | + + " " |
| 53 | + + str(zamg.get_data(parameter=param, data_type="unit")) |
| 54 | + ) |
| 55 | + print("last update: %s", zamg.last_update) |
| 56 | + except ZamgError as exc: |
| 57 | + print(exc) |
| 58 | + |
| 59 | + |
| 60 | +if __name__ == "__main__": |
| 61 | + asyncio.run(main()) |
0 commit comments