simple-dwd-weatherforecast 2.1.17__py3-none-any.whl → 3.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- simple_dwd_weatherforecast/dwdmap.py +96 -43
- {simple_dwd_weatherforecast-2.1.17.dist-info → simple_dwd_weatherforecast-3.0.1.dist-info}/METADATA +7 -7
- {simple_dwd_weatherforecast-2.1.17.dist-info → simple_dwd_weatherforecast-3.0.1.dist-info}/RECORD +7 -7
- {simple_dwd_weatherforecast-2.1.17.dist-info → simple_dwd_weatherforecast-3.0.1.dist-info}/WHEEL +1 -1
- tests/test_map.py +16 -16
- {simple_dwd_weatherforecast-2.1.17.dist-info → simple_dwd_weatherforecast-3.0.1.dist-info}/licenses/LICENCE +0 -0
- {simple_dwd_weatherforecast-2.1.17.dist-info → simple_dwd_weatherforecast-3.0.1.dist-info}/top_level.txt +0 -0
@@ -9,7 +9,7 @@ from datetime import datetime, timedelta, timezone
|
|
9
9
|
|
10
10
|
|
11
11
|
class WeatherMapType(Enum):
|
12
|
-
NIEDERSCHLAGSRADAR = "dwd:
|
12
|
+
NIEDERSCHLAGSRADAR = "dwd:Radar_rv_product_1x1km_ger"
|
13
13
|
BLITZSCHLAG = "dwd:NCEW_EU"
|
14
14
|
MAXTEMP = "dwd:GefuehlteTempMax"
|
15
15
|
UVINDEX = "dwd:UVI_CS"
|
@@ -85,8 +85,10 @@ def get_from_location(
|
|
85
85
|
longitude,
|
86
86
|
latitude,
|
87
87
|
radius_km,
|
88
|
-
|
89
|
-
|
88
|
+
map_types: list[WeatherMapType],
|
89
|
+
background_types: list[WeatherBackgroundMapType] = [
|
90
|
+
WeatherBackgroundMapType.BUNDESLAENDER
|
91
|
+
],
|
90
92
|
image_width=520,
|
91
93
|
image_height=580,
|
92
94
|
markers: list[Marker] = [],
|
@@ -104,8 +106,8 @@ def get_from_location(
|
|
104
106
|
latitude - radius,
|
105
107
|
longitude + radius,
|
106
108
|
latitude + radius,
|
107
|
-
|
108
|
-
|
109
|
+
map_types,
|
110
|
+
background_types,
|
109
111
|
image_width,
|
110
112
|
image_height,
|
111
113
|
markers,
|
@@ -114,8 +116,10 @@ def get_from_location(
|
|
114
116
|
|
115
117
|
|
116
118
|
def get_germany(
|
117
|
-
|
118
|
-
|
119
|
+
map_types: list[WeatherMapType],
|
120
|
+
background_types: list[WeatherBackgroundMapType] = [
|
121
|
+
WeatherBackgroundMapType.BUNDESLAENDER
|
122
|
+
],
|
119
123
|
image_width=520,
|
120
124
|
image_height=580,
|
121
125
|
markers: list[Marker] = [],
|
@@ -126,8 +130,8 @@ def get_germany(
|
|
126
130
|
germany_boundaries.miny,
|
127
131
|
germany_boundaries.maxx,
|
128
132
|
germany_boundaries.maxy,
|
129
|
-
|
130
|
-
|
133
|
+
map_types,
|
134
|
+
background_types,
|
131
135
|
image_width,
|
132
136
|
image_height,
|
133
137
|
markers,
|
@@ -140,8 +144,8 @@ def get_map(
|
|
140
144
|
miny,
|
141
145
|
maxx,
|
142
146
|
maxy,
|
143
|
-
|
144
|
-
|
147
|
+
map_types: list[WeatherMapType],
|
148
|
+
background_types: list[WeatherBackgroundMapType],
|
145
149
|
image_width=520,
|
146
150
|
image_height=580,
|
147
151
|
markers: list[Marker] = [],
|
@@ -151,18 +155,44 @@ def get_map(
|
|
151
155
|
raise ValueError(
|
152
156
|
"Width and height must not exceed 1200 and 1400 respectively. Please be kind to the DWD servers."
|
153
157
|
)
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
158
|
+
# Separate special layers and others for background types
|
159
|
+
special_layers = [
|
160
|
+
layer.value
|
161
|
+
for layer in background_types
|
162
|
+
if layer
|
163
|
+
in [
|
164
|
+
WeatherBackgroundMapType.SATELLIT,
|
165
|
+
WeatherBackgroundMapType.KREISE,
|
166
|
+
WeatherBackgroundMapType.GEMEINDEN,
|
167
|
+
]
|
168
|
+
]
|
169
|
+
other_layers = [
|
170
|
+
layer.value
|
171
|
+
for layer in background_types
|
172
|
+
if layer
|
173
|
+
not in [
|
174
|
+
WeatherBackgroundMapType.SATELLIT,
|
175
|
+
WeatherBackgroundMapType.KREISE,
|
176
|
+
WeatherBackgroundMapType.GEMEINDEN,
|
177
|
+
]
|
178
|
+
]
|
179
|
+
# Combine map types into a single string
|
180
|
+
map_layers = ",".join(map_type.value for map_type in map_types)
|
181
|
+
# Combine layers with special layers first, then map types, then other layers
|
182
|
+
layers = f"{','.join(special_layers)},{map_layers},{','.join(other_layers)}".lstrip(
|
183
|
+
","
|
184
|
+
).rstrip(",")
|
185
|
+
|
186
|
+
url = f"https://maps.dwd.de/geoserver/dwd/wms?service=WMS&version=1.3.0&request=GetMap&layers={layers}&bbox={miny},{minx},{maxy},{maxx}&width={image_width}&height={image_height}&srs=EPSG:4326&styles=&format=image/png"
|
187
|
+
|
163
188
|
request = requests.get(url, stream=True)
|
164
189
|
if request.status_code == 200:
|
165
|
-
|
190
|
+
try:
|
191
|
+
image = Image.open(BytesIO(request.content))
|
192
|
+
except Exception as e:
|
193
|
+
raise RuntimeError(
|
194
|
+
f"Error during image request from DWD servers: {url}"
|
195
|
+
) from e
|
166
196
|
if dark_mode:
|
167
197
|
new_image_data = []
|
168
198
|
for item in image.getdata(): # type: ignore
|
@@ -187,8 +217,8 @@ class ImageLoop:
|
|
187
217
|
_miny: float
|
188
218
|
_maxx: float
|
189
219
|
_maxy: float
|
190
|
-
|
191
|
-
|
220
|
+
_map_types: list[WeatherMapType]
|
221
|
+
_background_types: list[WeatherBackgroundMapType]
|
192
222
|
_image_width: int
|
193
223
|
_image_height: int
|
194
224
|
|
@@ -198,14 +228,16 @@ class ImageLoop:
|
|
198
228
|
miny: float,
|
199
229
|
maxx: float,
|
200
230
|
maxy: float,
|
201
|
-
|
202
|
-
|
231
|
+
map_types: list[WeatherMapType],
|
232
|
+
background_types: list[WeatherBackgroundMapType],
|
203
233
|
steps: int = 6,
|
204
234
|
image_width: int = 520,
|
205
235
|
image_height: int = 580,
|
206
236
|
markers: list[Marker] = [],
|
207
237
|
dark_mode: bool = False,
|
208
238
|
):
|
239
|
+
if WeatherMapType.NIEDERSCHLAGSRADAR not in map_types:
|
240
|
+
raise ValueError("Only NIEDERSCHLAGSRADAR is supported in a loop")
|
209
241
|
if image_width > 1200 or image_height > 1400:
|
210
242
|
raise ValueError(
|
211
243
|
"Width and height must not exceed 1200 and 1400 respectively. Please be kind to the DWD servers."
|
@@ -214,10 +246,8 @@ class ImageLoop:
|
|
214
246
|
self._miny = miny
|
215
247
|
self._maxx = maxx
|
216
248
|
self._maxy = maxy
|
217
|
-
|
218
|
-
|
219
|
-
self._map_type = map_type
|
220
|
-
self._background_type = background_type
|
249
|
+
self._map_types = map_types
|
250
|
+
self._background_types = background_types
|
221
251
|
self._steps = steps
|
222
252
|
self._image_width = image_width
|
223
253
|
self._image_height = image_height
|
@@ -267,24 +297,47 @@ class ImageLoop:
|
|
267
297
|
date: datetime,
|
268
298
|
with_lightning: bool = False,
|
269
299
|
) -> ImageFile.ImageFile:
|
270
|
-
#
|
271
|
-
|
300
|
+
# Combine map types into a single string
|
301
|
+
map_layers = ",".join(map_type.value for map_type in self._map_types)
|
272
302
|
if with_lightning:
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
303
|
+
map_layers += ",dwd:NCEW_EU"
|
304
|
+
# Separate special layers and others for background types
|
305
|
+
special_layers = [
|
306
|
+
layer.value
|
307
|
+
for layer in self._background_types
|
308
|
+
if layer
|
309
|
+
in [
|
310
|
+
WeatherBackgroundMapType.SATELLIT,
|
311
|
+
WeatherBackgroundMapType.KREISE,
|
312
|
+
WeatherBackgroundMapType.GEMEINDEN,
|
313
|
+
]
|
314
|
+
]
|
315
|
+
other_layers = [
|
316
|
+
layer.value
|
317
|
+
for layer in self._background_types
|
318
|
+
if layer
|
319
|
+
not in [
|
320
|
+
WeatherBackgroundMapType.SATELLIT,
|
321
|
+
WeatherBackgroundMapType.KREISE,
|
322
|
+
WeatherBackgroundMapType.GEMEINDEN,
|
323
|
+
]
|
324
|
+
]
|
325
|
+
# Combine layers with special layers first, then map types, then other layers
|
326
|
+
layers = (
|
327
|
+
f"{','.join(special_layers)},{map_layers},{','.join(other_layers)}".lstrip(
|
328
|
+
","
|
329
|
+
).rstrip(",")
|
330
|
+
)
|
331
|
+
url = f"https://maps.dwd.de/geoserver/dwd/wms?service=WMS&version=1.3.0&request=GetMap&layers={layers}&bbox={self._miny},{self._minx},{self._maxy},{self._maxx}&width={self._image_width}&height={self._image_height}&srs=EPSG:4326&styles=&format=image/png&TIME={date.strftime('%Y-%m-%dT%H:%M:00.0Z')}"
|
284
332
|
request = requests.get(url, stream=True)
|
285
333
|
if request.status_code != 200 or request.headers["content-type"] != "image/png":
|
286
334
|
raise ConnectionError("Error during image request from DWD servers")
|
287
|
-
|
335
|
+
try:
|
336
|
+
image = Image.open(BytesIO(request.content))
|
337
|
+
except Exception as e:
|
338
|
+
raise RuntimeError(
|
339
|
+
f"Error during image request from DWD servers: {url}"
|
340
|
+
) from e
|
288
341
|
if self.dark_mode:
|
289
342
|
new_image_data = []
|
290
343
|
for item in image.getdata(): # type: ignore
|
{simple_dwd_weatherforecast-2.1.17.dist-info → simple_dwd_weatherforecast-3.0.1.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: simple_dwd_weatherforecast
|
3
|
-
Version:
|
3
|
+
Version: 3.0.1
|
4
4
|
Summary: A simple tool to retrieve a weather forecast from DWD OpenData
|
5
5
|
Home-page: https://github.com/FL550/simple_dwd_weatherforecast.git
|
6
6
|
Author: Max Fermor
|
@@ -227,11 +227,11 @@ class Marker(
|
|
227
227
|
width: int = 0,
|
228
228
|
)
|
229
229
|
|
230
|
-
get_from_location(longitude, latitude, radius_km, map_type: WeatherMapType, background_type: WeatherBackgroundMapType, optional integer image_width, optional integer image_height, optional markers: list[Marker], optional bool dark_mode) #Returns map as pillow image with given radius from coordinates
|
230
|
+
get_from_location(longitude, latitude, radius_km, map_type: [WeatherMapType], background_type: [WeatherBackgroundMapType], optional integer image_width, optional integer image_height, optional markers: list[Marker], optional bool dark_mode) #Returns map as pillow image with given radius from coordinates
|
231
231
|
|
232
|
-
get_germany(map_type: WeatherMapType, optional WeatherBackgroundMapType background_type, optional integer image_width, optional integer image_height, optional markers: list[Marker], optional bool dark_mode) #Returns map as pillow image of whole germany
|
232
|
+
get_germany(map_type: [WeatherMapType], optional [WeatherBackgroundMapType] background_type, optional integer image_width, optional integer image_height, optional markers: list[Marker], optional bool dark_mode) #Returns map as pillow image of whole germany
|
233
233
|
|
234
|
-
get_map(minx,miny,maxx,maxy, map_type: WeatherMapType, background_type: WeatherBackgroundMapType, optional integer image_width, optional integer image_height, optional markers: list[Marker], optional bool dark_mode) #Returns map as pillow image
|
234
|
+
get_map(minx,miny,maxx,maxy, map_type: [WeatherMapType], background_type: [WeatherBackgroundMapType], optional integer image_width, optional integer image_height, optional markers: list[Marker], optional bool dark_mode) #Returns map as pillow image
|
235
235
|
```
|
236
236
|
|
237
237
|
|
@@ -249,8 +249,8 @@ maploop = dwdmap.ImageLoop(
|
|
249
249
|
dwdmap.germany_boundaries.miny,
|
250
250
|
dwdmap.germany_boundaries.maxx,
|
251
251
|
dwdmap.germany_boundaries.maxy,
|
252
|
-
dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR,
|
253
|
-
dwdmap.WeatherBackgroundMapType.BUNDESLAENDER,
|
252
|
+
[dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR],
|
253
|
+
[dwdmap.WeatherBackgroundMapType.BUNDESLAENDER],
|
254
254
|
steps=5,
|
255
255
|
)
|
256
256
|
|
@@ -262,7 +262,7 @@ for image in enumerate(maploop._images):
|
|
262
262
|
#### Available methods
|
263
263
|
|
264
264
|
```python
|
265
|
-
ImageLoop(minx: float, miny: float, maxx: float, maxy: float, map_type: WeatherMapType, background_type: WeatherBackgroundMapType,
|
265
|
+
ImageLoop(minx: float, miny: float, maxx: float, maxy: float, map_type: [WeatherMapType], background_type: [WeatherBackgroundMapType],
|
266
266
|
steps: int = 6, image_width: int = 520,image_height: int = 580, markers: list[Marker] = [], optional bool dark_mode) -> ImageLoop
|
267
267
|
|
268
268
|
get_images() -> Iterable[ImageFile.ImageFile] # Returns the image loop
|
{simple_dwd_weatherforecast-2.1.17.dist-info → simple_dwd_weatherforecast-3.0.1.dist-info}/RECORD
RENAMED
@@ -1,9 +1,9 @@
|
|
1
1
|
simple_dwd_weatherforecast/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
2
|
simple_dwd_weatherforecast/dwdforecast.py,sha256=uZRWMN9RIPvC9r47JAdw_AiP9V9M2rQxh_pOsVF15Sw,39094
|
3
|
-
simple_dwd_weatherforecast/dwdmap.py,sha256=
|
3
|
+
simple_dwd_weatherforecast/dwdmap.py,sha256=wy-WC5JOWeNoqex-A80pvKWo_DyO61_y8E4zvmQ0iLg,14429
|
4
4
|
simple_dwd_weatherforecast/stations.json,sha256=1u8qc2CT_rVy49SAlOicGixzHln6Y0FXevuFAz2maBw,838948
|
5
5
|
simple_dwd_weatherforecast/uv_stations.json,sha256=ADenYo-aR6qbf0UFkfYr72kkFzL9HyUKe4VQ23POGF8,2292
|
6
|
-
simple_dwd_weatherforecast-
|
6
|
+
simple_dwd_weatherforecast-3.0.1.dist-info/licenses/LICENCE,sha256=27UG7gteqvSWuZlsbIq2_OAbh7VyifGGl-1zpuUoBcw,1072
|
7
7
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
8
|
tests/dummy_data.py,sha256=qapeQxjh8kURf5b-9h4gUdJaqQJQDVdqfMtS2g5JReY,103406
|
9
9
|
tests/dummy_data_full.py,sha256=3HRGAQBq4xPYs4jLzoLV_UAe1CXFzOsVBOouDL_5RHw,104062
|
@@ -26,7 +26,7 @@ tests/test_get_timeframe_values.py,sha256=D9NJ98sZykLKAW1eZgLFuy0FMb4f_jUCtr4clz
|
|
26
26
|
tests/test_is_in_timerange.py,sha256=3y88L3N73NxSTJ-_edx6OCnxHWKJWWFma98gjZvJDGg,1338
|
27
27
|
tests/test_is_valid_timeframe.py,sha256=mXjeu3lUyixiBUEljirTf6qDM_FZFQGWa-Rk0NBMUDU,891
|
28
28
|
tests/test_location_tools.py,sha256=wto_XzVnARJQ-Qc83YAn0ahfMBSaOHpfzqAeKRDsNm8,1208
|
29
|
-
tests/test_map.py,sha256=
|
29
|
+
tests/test_map.py,sha256=X4zFmnoE7YzT6UudE0TtFmsBwhlrRP5C1p8K70_0yTg,5701
|
30
30
|
tests/test_parsekml.py,sha256=aG98x3B409CqxKBIq50yf3_LxPROnI4CAhdKfp350uQ,1495
|
31
31
|
tests/test_region.py,sha256=ReUB9Cy9roBemkpEkTjZZav-Mu3Ha7ADOAfa9J-gi80,877
|
32
32
|
tests/test_reported_weather.py,sha256=ULg4ogZRxus01p2rdxiSFL75AisqtcvnLDOc7uJMBH0,767
|
@@ -36,7 +36,7 @@ tests/test_update.py,sha256=AIzzHMxcjwQjeTB0l3YFgB7HkGDbuqiHofwy41mS0m4,7440
|
|
36
36
|
tests/test_update_hourly.py,sha256=7Zl8ml3FTdqw3_Qwr_Tz-sWTzypvrBWmxeig2Vwp_ZQ,1781
|
37
37
|
tests/test_uv_index.py,sha256=tr6wnOyHlXT1S3yp1oeHc4-Brmc-EMEdM4mtyrdpcHg,579
|
38
38
|
tests/test_weather.py,sha256=ZyX4ldUoJpJp7YpiNQwU6Od-nYRay-3qcaDJdNq8fhY,780
|
39
|
-
simple_dwd_weatherforecast-
|
40
|
-
simple_dwd_weatherforecast-
|
41
|
-
simple_dwd_weatherforecast-
|
42
|
-
simple_dwd_weatherforecast-
|
39
|
+
simple_dwd_weatherforecast-3.0.1.dist-info/METADATA,sha256=4pReGRzr-gEcDD3F78H144vI3aq6vVmmm3BZOFV9gCw,12869
|
40
|
+
simple_dwd_weatherforecast-3.0.1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
41
|
+
simple_dwd_weatherforecast-3.0.1.dist-info/top_level.txt,sha256=iyEobUh14Tzitx39Oi8qm0NhBrnZovl_dNKtvLUkLEM,33
|
42
|
+
simple_dwd_weatherforecast-3.0.1.dist-info/RECORD,,
|
tests/test_map.py
CHANGED
@@ -38,8 +38,8 @@ class MapTestCase(unittest.TestCase):
|
|
38
38
|
46.4,
|
39
39
|
16.1,
|
40
40
|
55.6,
|
41
|
-
dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR,
|
42
|
-
dwdmap.WeatherBackgroundMapType.BUNDESLAENDER,
|
41
|
+
[dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR],
|
42
|
+
[dwdmap.WeatherBackgroundMapType.BUNDESLAENDER],
|
43
43
|
1300,
|
44
44
|
1700,
|
45
45
|
)
|
@@ -53,8 +53,8 @@ class ImageLoopTestCase(unittest.TestCase):
|
|
53
53
|
0.2,
|
54
54
|
0.3,
|
55
55
|
0.4,
|
56
|
-
dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR,
|
57
|
-
dwdmap.WeatherBackgroundMapType.BUNDESLAENDER,
|
56
|
+
[dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR],
|
57
|
+
[dwdmap.WeatherBackgroundMapType.BUNDESLAENDER],
|
58
58
|
1,
|
59
59
|
)
|
60
60
|
self.assertEqual(
|
@@ -74,12 +74,12 @@ class ImageLoopTestCase(unittest.TestCase):
|
|
74
74
|
0.4,
|
75
75
|
)
|
76
76
|
self.assertEqual(
|
77
|
-
maploop.
|
78
|
-
dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR,
|
77
|
+
maploop._map_types,
|
78
|
+
[dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR],
|
79
79
|
)
|
80
80
|
self.assertEqual(
|
81
|
-
maploop.
|
82
|
-
dwdmap.WeatherBackgroundMapType.BUNDESLAENDER,
|
81
|
+
maploop._background_types,
|
82
|
+
[dwdmap.WeatherBackgroundMapType.BUNDESLAENDER],
|
83
83
|
)
|
84
84
|
mock_function.assert_called_once()
|
85
85
|
|
@@ -90,8 +90,8 @@ class ImageLoopTestCase(unittest.TestCase):
|
|
90
90
|
0.2,
|
91
91
|
0.3,
|
92
92
|
0.4,
|
93
|
-
dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR,
|
94
|
-
dwdmap.WeatherBackgroundMapType.BUNDESLAENDER,
|
93
|
+
[dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR],
|
94
|
+
[dwdmap.WeatherBackgroundMapType.BUNDESLAENDER],
|
95
95
|
5,
|
96
96
|
)
|
97
97
|
self.assertEqual(mock_function.call_count, 5)
|
@@ -103,8 +103,8 @@ class ImageLoopTestCase(unittest.TestCase):
|
|
103
103
|
0.2,
|
104
104
|
0.3,
|
105
105
|
0.4,
|
106
|
-
dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR,
|
107
|
-
dwdmap.WeatherBackgroundMapType.BUNDESLAENDER,
|
106
|
+
[dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR],
|
107
|
+
[dwdmap.WeatherBackgroundMapType.BUNDESLAENDER],
|
108
108
|
10,
|
109
109
|
)
|
110
110
|
self.assertEqual(mock_function.call_count, 10)
|
@@ -116,8 +116,8 @@ class ImageLoopTestCase(unittest.TestCase):
|
|
116
116
|
0.2,
|
117
117
|
0.3,
|
118
118
|
0.4,
|
119
|
-
dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR,
|
120
|
-
dwdmap.WeatherBackgroundMapType.BUNDESLAENDER,
|
119
|
+
[dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR],
|
120
|
+
[dwdmap.WeatherBackgroundMapType.BUNDESLAENDER],
|
121
121
|
5,
|
122
122
|
)
|
123
123
|
maploop._last_update = datetime(year=2024, month=9, day=4, hour=5, minute=50)
|
@@ -130,8 +130,8 @@ class ImageLoopTestCase(unittest.TestCase):
|
|
130
130
|
0.2,
|
131
131
|
0.3,
|
132
132
|
0.4,
|
133
|
-
dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR,
|
134
|
-
dwdmap.WeatherBackgroundMapType.BUNDESLAENDER,
|
133
|
+
[dwdmap.WeatherMapType.NIEDERSCHLAGSRADAR],
|
134
|
+
[dwdmap.WeatherBackgroundMapType.BUNDESLAENDER],
|
135
135
|
5,
|
136
136
|
)
|
137
137
|
now = dwdmap.get_time_last_5_min(datetime.now(timezone.utc))
|
File without changes
|
File without changes
|