44
55from .api_utils import (
66 DynamicData ,
7+ FetchError ,
78 LHPError ,
89 StaticData ,
910 calc_stage ,
@@ -51,22 +52,25 @@ def get_basic_station_data(ident: str) -> tuple[str, str, str, str]:
5152def get_stage_levels (internal_url : str ) -> list [float ]:
5253 """Get stage levels."""
5354 stage_levels = [None ] * 4
54- alarmlevels = fetch_json (internal_url + "/W/alarmlevel.json" )
55- for station_data in alarmlevels :
56- if (
57- "ts_name" in station_data
58- and "data" in station_data
59- and isinstance (station_data ["data" ], list )
60- and len (station_data ["data" ]) > 0
61- ):
62- # Check if ts_name is one of the desired values
63- if station_data ["ts_name" ] == "Meldestufe1" :
64- stage_levels [0 ] = convert_to_float (station_data ["data" ][- 1 ][1 ])
65- elif station_data ["ts_name" ] == "Meldestufe2" :
66- stage_levels [1 ] = convert_to_float (station_data ["data" ][- 1 ][1 ])
67- # No equivalent to stage_levels[2] available
68- elif station_data ["ts_name" ] == "Meldestufe3" :
69- stage_levels [3 ] = convert_to_float (station_data ["data" ][- 1 ][1 ])
55+ try :
56+ alarmlevels = fetch_json (internal_url + "/W/alarmlevel.json" )
57+ for station_data in alarmlevels :
58+ if (
59+ "ts_name" in station_data
60+ and "data" in station_data
61+ and isinstance (station_data ["data" ], list )
62+ and len (station_data ["data" ]) > 0
63+ ):
64+ # Check if ts_name is one of the desired values
65+ if station_data ["ts_name" ] == "Meldestufe1" :
66+ stage_levels [0 ] = convert_to_float (station_data ["data" ][- 1 ][1 ])
67+ elif station_data ["ts_name" ] == "Meldestufe2" :
68+ stage_levels [1 ] = convert_to_float (station_data ["data" ][- 1 ][1 ])
69+ # No equivalent to stage_levels[2] available
70+ elif station_data ["ts_name" ] == "Meldestufe3" :
71+ stage_levels [3 ] = convert_to_float (station_data ["data" ][- 1 ][1 ])
72+ except FetchError :
73+ pass
7074 return stage_levels
7175
7276
@@ -107,7 +111,7 @@ def update_HE(static_data: StaticData) -> DynamicData: # pylint: disable=invali
107111 level = convert_to_float (dataset ["data" ][- 1 ][1 ])
108112 stage = calc_stage (level , static_data .stage_levels )
109113 break
110- except (IndexError , KeyError ):
114+ except (IndexError , KeyError , FetchError ):
111115 level = None
112116 stage = None
113117
@@ -122,7 +126,7 @@ def update_HE(static_data: StaticData) -> DynamicData: # pylint: disable=invali
122126 last_update_str_q = dataset ["data" ][- 1 ][0 ]
123127 flow = convert_to_float (dataset ["data" ][- 1 ][1 ])
124128 break
125- except (IndexError , KeyError ):
129+ except (IndexError , KeyError , FetchError ):
126130 flow = None
127131
128132 last_update = None
0 commit comments