simple-dwd-weatherforecast 2.1.3__tar.gz → 2.1.4__tar.gz

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.
Files changed (47) hide show
  1. {simple_dwd_weatherforecast-2.1.3/simple_dwd_weatherforecast.egg-info → simple_dwd_weatherforecast-2.1.4}/PKG-INFO +1 -1
  2. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/setup.py +1 -1
  3. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/simple_dwd_weatherforecast/dwdforecast.py +16 -6
  4. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4/simple_dwd_weatherforecast.egg-info}/PKG-INFO +1 -1
  5. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/LICENCE +0 -0
  6. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/README.md +0 -0
  7. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/setup.cfg +0 -0
  8. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/simple_dwd_weatherforecast/__init__.py +0 -0
  9. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/simple_dwd_weatherforecast/dwdmap.py +0 -0
  10. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/simple_dwd_weatherforecast/stations.json +0 -0
  11. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/simple_dwd_weatherforecast/uv_stations.json +0 -0
  12. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/simple_dwd_weatherforecast.egg-info/SOURCES.txt +0 -0
  13. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/simple_dwd_weatherforecast.egg-info/dependency_links.txt +0 -0
  14. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/simple_dwd_weatherforecast.egg-info/requires.txt +0 -0
  15. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/simple_dwd_weatherforecast.egg-info/top_level.txt +0 -0
  16. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/__init__.py +0 -0
  17. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/dummy_data.py +0 -0
  18. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/dummy_data_full.py +0 -0
  19. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/dummy_uv.py +0 -0
  20. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_daily_avg.py +0 -0
  21. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_daily_condition.py +0 -0
  22. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_daily_max.py +0 -0
  23. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_daily_min.py +0 -0
  24. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_daily_sum.py +0 -0
  25. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_day_values.py +0 -0
  26. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_forecast_condition.py +0 -0
  27. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_forecast_data.py +0 -0
  28. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_station_name.py +0 -0
  29. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_timeframe_avg.py +0 -0
  30. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_timeframe_condition.py +0 -0
  31. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_timeframe_max.py +0 -0
  32. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_timeframe_min.py +0 -0
  33. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_timeframe_sum.py +0 -0
  34. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_get_timeframe_values.py +0 -0
  35. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_is_in_timerange.py +0 -0
  36. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_is_valid_timeframe.py +0 -0
  37. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_location_tools.py +0 -0
  38. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_map.py +0 -0
  39. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_parsekml.py +0 -0
  40. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_region.py +0 -0
  41. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_reported_weather.py +0 -0
  42. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_station.py +0 -0
  43. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_stationsfile.py +0 -0
  44. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_update.py +0 -0
  45. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_update_hourly.py +0 -0
  46. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_uv_index.py +0 -0
  47. {simple_dwd_weatherforecast-2.1.3 → simple_dwd_weatherforecast-2.1.4}/tests/test_weather.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: simple_dwd_weatherforecast
3
- Version: 2.1.3
3
+ Version: 2.1.4
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
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="simple_dwd_weatherforecast",
8
- version="2.1.3",
8
+ version="2.1.4",
9
9
  author="Max Fermor",
10
10
  description="A simple tool to retrieve a weather forecast from DWD OpenData",
11
11
  long_description=long_description,
@@ -951,21 +951,31 @@ class Weather:
951
951
  except Exception as error:
952
952
  print(f"Error in download_latest_kml: {type(error)} args: {error.args}")
953
953
 
954
- def get_chunks(self):
955
- def zipped_chunks():
954
+ def get_chunks(self, url):
955
+ def zipped_chunks(url):
956
956
  # Iterable that yields the bytes of a zip file
957
957
  with httpx.stream(
958
958
  "GET",
959
- "https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_S/all_stations/kml/MOSMIX_S_LATEST_240.kmz",
959
+ url,
960
960
  ) as r:
961
- yield from r.iter_bytes(chunk_size=131072)
961
+ self.etags[url] = r.headers["etag"] # type: ignore
962
+ yield from r.iter_bytes(chunk_size=171072)
962
963
 
963
- return stream_unzip(zipped_chunks())
964
+ return stream_unzip(zipped_chunks(url))
964
965
 
965
966
  def download_large_kml(self, stationid):
966
967
  placemark = b""
968
+ url = "https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_S/all_stations/kml/MOSMIX_S_LATEST_240.kmz"
969
+ # Check if content has updated
970
+ headers = {"If-None-Match": self.etags[url] if url in self.etags else ""} # type: ignore
971
+ r = httpx.head(
972
+ url,
973
+ headers=headers,
974
+ )
975
+ if r.status_code == 304:
976
+ return
967
977
 
968
- for file_name, file_size, unzipped_chunks in self.get_chunks():
978
+ for file_name, file_size, unzipped_chunks in self.get_chunks(url):
969
979
  chunk1 = b""
970
980
  chunk2 = b""
971
981
  first_chunk = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: simple_dwd_weatherforecast
3
- Version: 2.1.3
3
+ Version: 2.1.4
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