weathergrabber 0.0.8b7__py3-none-any.whl → 0.0.9a0__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.
- weathergrabber/__init__.py +1 -1
- weathergrabber/adapter/repository/forecast_repository.py +135 -0
- weathergrabber/adapter/tty/console_tty.py +4 -4
- weathergrabber/adapter/tty/json_tty.py +3 -3
- weathergrabber/adapter/tty/statistics_tty.py +35 -0
- weathergrabber/adapter/tty/waybar_tty.py +3 -3
- weathergrabber/{service → application/services}/extract_aqi_service.py +1 -1
- weathergrabber/{service → application/services}/extract_current_conditions_service.py +5 -5
- weathergrabber/{service → application/services}/extract_daily_forecast_oldstyle_service.py +4 -4
- weathergrabber/{service → application/services}/extract_daily_forecast_service.py +6 -6
- weathergrabber/{service → application/services}/extract_health_activities_service.py +1 -1
- weathergrabber/{service → application/services}/extract_hourly_forecast_oldstyle_service.py +3 -3
- weathergrabber/{service → application/services}/extract_hourly_forecast_service.py +5 -5
- weathergrabber/{service → application/services}/extract_today_details_service.py +8 -8
- weathergrabber/application/services/retrieve_forecast_from_cache_service.py +27 -0
- weathergrabber/application/services/retrieve_statistics_service.py +20 -0
- weathergrabber/application/services/save_forecast_to_cache_service.py +21 -0
- weathergrabber/application/usecases/statistics_uc.py +19 -0
- weathergrabber/application/usecases/weather_forecast_uc.py +123 -0
- weathergrabber/application/weathergrabber_application.py +92 -0
- weathergrabber/cli.py +6 -2
- weathergrabber/core.py +7 -3
- weathergrabber/domain/adapter/mappers/air_quality_index_mapper.py +25 -0
- weathergrabber/domain/adapter/mappers/city_location_mapper.py +15 -0
- weathergrabber/domain/adapter/mappers/color_mapper.py +17 -0
- weathergrabber/domain/adapter/mappers/current_conditions_mapper.py +32 -0
- weathergrabber/domain/adapter/mappers/daily_predictions_mapper.py +30 -0
- weathergrabber/domain/adapter/mappers/day_night_mapper.py +23 -0
- weathergrabber/domain/adapter/mappers/forecast_mapper.py +38 -0
- weathergrabber/domain/adapter/mappers/health_activities_mapper.py +15 -0
- weathergrabber/domain/adapter/mappers/hourly_predictions_mapper.py +38 -0
- weathergrabber/domain/adapter/mappers/label_value_mapper.py +13 -0
- weathergrabber/domain/adapter/mappers/moon_phase_mapper.py +16 -0
- weathergrabber/domain/adapter/mappers/precipitation_mapper.py +13 -0
- weathergrabber/domain/adapter/mappers/search_mapper.py +13 -0
- weathergrabber/domain/adapter/mappers/statistics_mapper.py +25 -0
- weathergrabber/domain/adapter/mappers/sunrise_sunset_mapper.py +23 -0
- weathergrabber/domain/adapter/mappers/temperature_high_low_mapper.py +15 -0
- weathergrabber/domain/adapter/mappers/timestamp_mapper.py +15 -0
- weathergrabber/domain/adapter/mappers/today_details_mapper.py +42 -0
- weathergrabber/domain/adapter/mappers/uv_index_mapper.py +17 -0
- weathergrabber/domain/adapter/mappers/weather_icon_enum_mapper.py +11 -0
- weathergrabber/domain/adapter/mappers/wind_mapper.py +16 -0
- weathergrabber/domain/adapter/output_enum.py +1 -1
- weathergrabber/domain/adapter/params.py +25 -4
- weathergrabber/domain/{moon_phase.py → entities/moon_phase.py} +1 -1
- weathergrabber/domain/entities/statistics.py +46 -0
- weathergrabber/domain/{sunrise_sunset.py → entities/sunrise_sunset.py} +0 -1
- weathergrabber/domain/{weather_icon_enum.py → entities/weather_icon_enum.py} +1 -0
- {weathergrabber-0.0.8b7.dist-info → weathergrabber-0.0.9a0.dist-info}/METADATA +32 -7
- weathergrabber-0.0.9a0.dist-info/RECORD +80 -0
- {weathergrabber-0.0.8b7.dist-info → weathergrabber-0.0.9a0.dist-info}/WHEEL +1 -1
- weathergrabber/domain/adapter/mapper/air_quality_index_mapper.py +0 -13
- weathergrabber/domain/adapter/mapper/city_location_mapper.py +0 -8
- weathergrabber/domain/adapter/mapper/color_mapper.py +0 -10
- weathergrabber/domain/adapter/mapper/current_conditions_mapper.py +0 -16
- weathergrabber/domain/adapter/mapper/daily_predictions_mapper.py +0 -15
- weathergrabber/domain/adapter/mapper/day_night_mapper.py +0 -12
- weathergrabber/domain/adapter/mapper/forecast_mapper.py +0 -20
- weathergrabber/domain/adapter/mapper/health_activities_mapper.py +0 -8
- weathergrabber/domain/adapter/mapper/hourly_predictions_mapper.py +0 -19
- weathergrabber/domain/adapter/mapper/label_value_mapper.py +0 -7
- weathergrabber/domain/adapter/mapper/moon_phase_mapper.py +0 -9
- weathergrabber/domain/adapter/mapper/precipitation_mapper.py +0 -7
- weathergrabber/domain/adapter/mapper/search_mapper.py +0 -7
- weathergrabber/domain/adapter/mapper/sunrise_sunset_mapper.py +0 -13
- weathergrabber/domain/adapter/mapper/temperature_high_low_mapper.py +0 -8
- weathergrabber/domain/adapter/mapper/timestamp_mapper.py +0 -8
- weathergrabber/domain/adapter/mapper/today_details_mapper.py +0 -21
- weathergrabber/domain/adapter/mapper/uv_index_mapper.py +0 -9
- weathergrabber/domain/adapter/mapper/weather_icon_enum_mapper.py +0 -8
- weathergrabber/domain/adapter/mapper/wind_mapper.py +0 -7
- weathergrabber/usecase/use_case.py +0 -87
- weathergrabber/weathergrabber_application.py +0 -78
- weathergrabber-0.0.8b7.dist-info/RECORD +0 -72
- /weathergrabber/{service → application/services}/extract_temperature_service.py +0 -0
- /weathergrabber/{service → application/services}/read_weather_service.py +0 -0
- /weathergrabber/{service → application/services}/search_location_service.py +0 -0
- /weathergrabber/domain/{air_quality_index.py → entities/air_quality_index.py} +0 -0
- /weathergrabber/domain/{city_location.py → entities/city_location.py} +0 -0
- /weathergrabber/domain/{color.py → entities/color.py} +0 -0
- /weathergrabber/domain/{current_conditions.py → entities/current_conditions.py} +0 -0
- /weathergrabber/domain/{daily_predictions.py → entities/daily_predictions.py} +0 -0
- /weathergrabber/domain/{day_night.py → entities/day_night.py} +0 -0
- /weathergrabber/domain/{forecast.py → entities/forecast.py} +0 -0
- /weathergrabber/domain/{health_activities.py → entities/health_activities.py} +0 -0
- /weathergrabber/domain/{hourly_predictions.py → entities/hourly_predictions.py} +0 -0
- /weathergrabber/domain/{label_value.py → entities/label_value.py} +0 -0
- /weathergrabber/domain/{moon_phase_enum.py → entities/moon_phase_enum.py} +0 -0
- /weathergrabber/domain/{precipitation.py → entities/precipitation.py} +0 -0
- /weathergrabber/domain/{search.py → entities/search.py} +0 -0
- /weathergrabber/domain/{temperature_hight_low.py → entities/temperature_hight_low.py} +0 -0
- /weathergrabber/domain/{timestamp.py → entities/timestamp.py} +0 -0
- /weathergrabber/domain/{today_details.py → entities/today_details.py} +0 -0
- /weathergrabber/domain/{uv_index.py → entities/uv_index.py} +0 -0
- /weathergrabber/domain/{wind.py → entities/wind.py} +0 -0
- {weathergrabber-0.0.8b7.dist-info → weathergrabber-0.0.9a0.dist-info}/entry_points.txt +0 -0
- {weathergrabber-0.0.8b7.dist-info → weathergrabber-0.0.9a0.dist-info}/licenses/LICENSE +0 -0
- {weathergrabber-0.0.8b7.dist-info → weathergrabber-0.0.9a0.dist-info}/top_level.txt +0 -0
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
from weathergrabber.domain.adapter.params import Params
|
|
3
|
-
from weathergrabber.service.search_location_service import SearchLocationService
|
|
4
|
-
from weathergrabber.service.read_weather_service import ReadWeatherService
|
|
5
|
-
from weathergrabber.service.extract_current_conditions_service import ExtractCurrentConditionsService
|
|
6
|
-
from weathergrabber.service.extract_today_details_service import ExtractTodayDetailsService
|
|
7
|
-
from weathergrabber.service.extract_aqi_service import ExtractAQIService
|
|
8
|
-
from weathergrabber.service.extract_health_activities_service import ExtractHealthActivitiesService
|
|
9
|
-
from weathergrabber.service.extract_hourly_forecast_service import ExtractHourlyForecastService
|
|
10
|
-
from weathergrabber.service.extract_hourly_forecast_oldstyle_service import ExtractHourlyForecastOldstyleService
|
|
11
|
-
from weathergrabber.service.extract_daily_forecast_service import ExtractDailyForecastService
|
|
12
|
-
from weathergrabber.service.extract_daily_forecast_oldstyle_service import ExtractDailyForecastOldstyleService
|
|
13
|
-
from weathergrabber.domain.search import Search
|
|
14
|
-
from weathergrabber.domain.forecast import Forecast
|
|
15
|
-
|
|
16
|
-
class UseCase:
|
|
17
|
-
def __init__(
|
|
18
|
-
self,
|
|
19
|
-
search_location_service: SearchLocationService,
|
|
20
|
-
read_weather_service: ReadWeatherService,
|
|
21
|
-
extract_current_conditions_service: ExtractCurrentConditionsService,
|
|
22
|
-
extract_today_details_service: ExtractTodayDetailsService,
|
|
23
|
-
extract_aqi_service: ExtractAQIService,
|
|
24
|
-
extract_health_activities_service: ExtractHealthActivitiesService,
|
|
25
|
-
extract_hourly_forecast_service: ExtractHourlyForecastService,
|
|
26
|
-
extract_hourly_forecast_oldstyle_service: ExtractHourlyForecastOldstyleService,
|
|
27
|
-
extract_daily_forecast_service: ExtractDailyForecastService,
|
|
28
|
-
extract_daily_forecast_oldstyle_service: ExtractDailyForecastOldstyleService,
|
|
29
|
-
|
|
30
|
-
):
|
|
31
|
-
self.logger = logging.getLogger(__name__)
|
|
32
|
-
self.read_weather_service = read_weather_service
|
|
33
|
-
self.extract_current_conditions_service = extract_current_conditions_service
|
|
34
|
-
self.extract_today_details_service = extract_today_details_service
|
|
35
|
-
self.search_location_service = search_location_service
|
|
36
|
-
self.extract_aqi_service = extract_aqi_service
|
|
37
|
-
self.extract_health_activities_service = extract_health_activities_service
|
|
38
|
-
self.extract_hourly_forecast_service = extract_hourly_forecast_service
|
|
39
|
-
self.extract_hourly_forecast_oldstyle_service = extract_hourly_forecast_oldstyle_service
|
|
40
|
-
self.extract_daily_forecast_service = extract_daily_forecast_service
|
|
41
|
-
self.extract_daily_forecast_oldstyle_service = extract_daily_forecast_oldstyle_service
|
|
42
|
-
|
|
43
|
-
def execute(self, params: Params) -> Forecast:
|
|
44
|
-
|
|
45
|
-
self.logger.debug("Starting usecase")
|
|
46
|
-
|
|
47
|
-
location_id = params.location.id
|
|
48
|
-
search_name = params.location.search_name
|
|
49
|
-
if not location_id:
|
|
50
|
-
location_id = self.search_location_service.execute(params.location.search_name, params.language)
|
|
51
|
-
|
|
52
|
-
weather_data = self.read_weather_service.execute(params.language, location_id)
|
|
53
|
-
|
|
54
|
-
current_conditions = self.extract_current_conditions_service.execute(weather_data)
|
|
55
|
-
today_details = self.extract_today_details_service.execute(weather_data)
|
|
56
|
-
air_quality_index = self.extract_aqi_service.execute(weather_data)
|
|
57
|
-
health_activities = self.extract_health_activities_service.execute(weather_data)
|
|
58
|
-
|
|
59
|
-
try:
|
|
60
|
-
hourly_predictions = self.extract_hourly_forecast_oldstyle_service.execute(weather_data)
|
|
61
|
-
except ValueError:
|
|
62
|
-
self.logger.warning("Falling back to new style hourly forecast extraction")
|
|
63
|
-
hourly_predictions = self.extract_hourly_forecast_service.execute(weather_data)
|
|
64
|
-
|
|
65
|
-
try:
|
|
66
|
-
daily_predictions = self.extract_daily_forecast_oldstyle_service.execute(weather_data)
|
|
67
|
-
except ValueError:
|
|
68
|
-
self.logger.warning("Falling back to new style daily forecast extraction")
|
|
69
|
-
daily_predictions = self.extract_daily_forecast_service.execute(weather_data)
|
|
70
|
-
|
|
71
|
-
forecast = Forecast(
|
|
72
|
-
search = Search(
|
|
73
|
-
id = location_id,
|
|
74
|
-
search_name = search_name
|
|
75
|
-
),
|
|
76
|
-
current_conditions = current_conditions,
|
|
77
|
-
today_details = today_details,
|
|
78
|
-
air_quality_index = air_quality_index,
|
|
79
|
-
health_activities = health_activities,
|
|
80
|
-
hourly_predictions = hourly_predictions,
|
|
81
|
-
daily_predictions = daily_predictions
|
|
82
|
-
)
|
|
83
|
-
|
|
84
|
-
self.logger.debug("Forecast data obtained %s", forecast)
|
|
85
|
-
|
|
86
|
-
return forecast
|
|
87
|
-
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
from time import sleep
|
|
3
|
-
from .domain.adapter.params import Params
|
|
4
|
-
from .domain.adapter.output_enum import OutputEnum
|
|
5
|
-
from .adapter.client.weather_api import WeatherApi
|
|
6
|
-
from .adapter.client.weather_search_api import WeatherSearchApi
|
|
7
|
-
from .service.search_location_service import SearchLocationService
|
|
8
|
-
from .service.read_weather_service import ReadWeatherService
|
|
9
|
-
from .service.extract_current_conditions_service import ExtractCurrentConditionsService
|
|
10
|
-
from .service.extract_today_details_service import ExtractTodayDetailsService
|
|
11
|
-
from .service.extract_aqi_service import ExtractAQIService
|
|
12
|
-
from .service.extract_health_activities_service import ExtractHealthActivitiesService
|
|
13
|
-
from .service.extract_hourly_forecast_service import ExtractHourlyForecastService
|
|
14
|
-
from .service.extract_hourly_forecast_oldstyle_service import ExtractHourlyForecastOldstyleService
|
|
15
|
-
from .service.extract_daily_forecast_service import ExtractDailyForecastService
|
|
16
|
-
from .service.extract_daily_forecast_oldstyle_service import ExtractDailyForecastOldstyleService
|
|
17
|
-
from .usecase.use_case import UseCase
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
class WeatherGrabberApplication:
|
|
21
|
-
|
|
22
|
-
def _beans(self):
|
|
23
|
-
self.weather_search_api = WeatherSearchApi()
|
|
24
|
-
self.weather_api = WeatherApi()
|
|
25
|
-
self.search_location_service = SearchLocationService(self.weather_search_api)
|
|
26
|
-
self.read_weather_service = ReadWeatherService(self.weather_api)
|
|
27
|
-
self.extract_current_conditions_service = ExtractCurrentConditionsService()
|
|
28
|
-
self.extract_today_details_service = ExtractTodayDetailsService()
|
|
29
|
-
self.extract_aqi_service = ExtractAQIService()
|
|
30
|
-
self.extract_health_activities_service = ExtractHealthActivitiesService()
|
|
31
|
-
self.extract_hourly_forecast_service = ExtractHourlyForecastService()
|
|
32
|
-
self.extract_hourly_forecast_oldstyle_service = ExtractHourlyForecastOldstyleService()
|
|
33
|
-
self.extract_daily_forecast_service = ExtractDailyForecastService()
|
|
34
|
-
self.extract_daily_forecast_oldstyle_service = ExtractDailyForecastOldstyleService()
|
|
35
|
-
self.use_case = UseCase(
|
|
36
|
-
self.search_location_service,
|
|
37
|
-
self.read_weather_service,
|
|
38
|
-
self.extract_current_conditions_service,
|
|
39
|
-
self.extract_today_details_service,
|
|
40
|
-
self.extract_aqi_service,
|
|
41
|
-
self.extract_health_activities_service,
|
|
42
|
-
self.extract_hourly_forecast_service,
|
|
43
|
-
self.extract_hourly_forecast_oldstyle_service,
|
|
44
|
-
self.extract_daily_forecast_service,
|
|
45
|
-
self.extract_daily_forecast_oldstyle_service
|
|
46
|
-
)
|
|
47
|
-
pass
|
|
48
|
-
|
|
49
|
-
def _define_controller(self, output_format: OutputEnum):
|
|
50
|
-
if output_format == OutputEnum.CONSOLE:
|
|
51
|
-
from weathergrabber.adapter.tty.console_tty import ConsoleTTY
|
|
52
|
-
self.controller = ConsoleTTY(self.use_case)
|
|
53
|
-
|
|
54
|
-
elif output_format == OutputEnum.JSON:
|
|
55
|
-
from weathergrabber.adapter.tty.json_tty import JsonTTY
|
|
56
|
-
self.controller = JsonTTY(self.use_case)
|
|
57
|
-
|
|
58
|
-
elif output_format == OutputEnum.WAYBAR:
|
|
59
|
-
from weathergrabber.adapter.tty.waybar_tty import WaybarTTY
|
|
60
|
-
self.controller = WaybarTTY(self.use_case)
|
|
61
|
-
|
|
62
|
-
else:
|
|
63
|
-
self.logger.error(f"Unsupported output format: {output_format}")
|
|
64
|
-
raise ValueError(f"Unsupported output format: {output_format}")
|
|
65
|
-
|
|
66
|
-
def __init__(self, params: Params):
|
|
67
|
-
self.logger = logging.getLogger(__name__)
|
|
68
|
-
self._beans()
|
|
69
|
-
self._define_controller(params.output_format)
|
|
70
|
-
self.logger.info("Starting WeatherGrabber Application")
|
|
71
|
-
if params.keep_open:
|
|
72
|
-
self.logger.info("Keep open mode enabled, the application will refresh every 5 minutes")
|
|
73
|
-
while True:
|
|
74
|
-
self.controller.execute(params)
|
|
75
|
-
sleep(1) # Sleep for 5 minutes
|
|
76
|
-
else:
|
|
77
|
-
self.controller.execute(params)
|
|
78
|
-
self.logger.info("WeatherGrabber Application finished")
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
weathergrabber/__init__.py,sha256=1gVDOG-y_use7JmhlYEyIrDOaXy_CNueaHVn3kuDYhY,218
|
|
2
|
-
weathergrabber/__main__.py,sha256=yYL-jc4kVHqaYVADzjKZfmCN2mziRofsXgnzrECbGDo,68
|
|
3
|
-
weathergrabber/cli.py,sha256=GA1EVClwfHOImM0TEfkTlYOgZU9bzscKg_0HL-Y9TBc,2090
|
|
4
|
-
weathergrabber/core.py,sha256=TiZ2utmYKf9lkIXWv8YBfSdiHZXJZXuHS8B-dBDvevw,1138
|
|
5
|
-
weathergrabber/weathergrabber_application.py,sha256=2JfZAR94En3rmGrYKWRKxdRXmK_ikhJdgrGotFjtDys,3987
|
|
6
|
-
weathergrabber/adapter/client/weather_api.py,sha256=9S7JmXaAVvvPY60dz6rC3lx7X68BcqyvNzvSVM1-af8,963
|
|
7
|
-
weathergrabber/adapter/client/weather_search_api.py,sha256=1oy7JitHcmwkkhFlD0eIt5A7a4cGbf7LMNi26tR8z5o,1724
|
|
8
|
-
weathergrabber/adapter/tty/console_tty.py,sha256=DTxiI6X3MTtc79E6zrhQLcgqU6gP61BbBslpTdPQNNw,5957
|
|
9
|
-
weathergrabber/adapter/tty/json_tty.py,sha256=GyUc13w_5cjFLJda65Xt4e87gYGJow1dYnkY3ZmcmP8,637
|
|
10
|
-
weathergrabber/adapter/tty/waybar_tty.py,sha256=R5a7DZL6uHEWZ4m9nTQQqwjfGUjzftpR6TecQn740Us,6138
|
|
11
|
-
weathergrabber/domain/air_quality_index.py,sha256=8uBqxVIKCYIvrHuP-XbCHjYZhq7Z0RmqkgAAdCw6Tp4,2680
|
|
12
|
-
weathergrabber/domain/city_location.py,sha256=p-11c7AwA8t-nNdvTjl9-Oc5Kw4D2XP7tI4WrATVYpQ,2382
|
|
13
|
-
weathergrabber/domain/color.py,sha256=HfgB5CwxrSHT05TIXCqVCy0GoRpuEl99aUrUSJhaqcE,1601
|
|
14
|
-
weathergrabber/domain/current_conditions.py,sha256=S14j2lL_gc2pds0wbl5M4_72PbVdubOuX8lnE_tZVTg,1477
|
|
15
|
-
weathergrabber/domain/daily_predictions.py,sha256=8pzmaU-yugS2Hx_6MBWAk24wlSISe1OQIRrCK_lfvbw,1618
|
|
16
|
-
weathergrabber/domain/day_night.py,sha256=7geOuVH9xDb1ecLKnZmj6eqp3H3kp9G0YY497cEyPtg,1442
|
|
17
|
-
weathergrabber/domain/forecast.py,sha256=CO0VTdMI0kjuwbpwwDNRCf_82oNtw5QkN-9GgobPet8,2399
|
|
18
|
-
weathergrabber/domain/health_activities.py,sha256=oaIF_nI-iaN4OIHWTL-L7QZUQxCemdmNvzprDXysK-g,1481
|
|
19
|
-
weathergrabber/domain/hourly_predictions.py,sha256=PFiGuo7mBoQHLR-bDirV--R126YAOzkwIHgaeRGFQSA,2179
|
|
20
|
-
weathergrabber/domain/label_value.py,sha256=LvrvZbSrcEUUpxvKAmYkFnpDFWsa6LFmGA9O8i6HB84,446
|
|
21
|
-
weathergrabber/domain/moon_phase.py,sha256=sEHRi8yPIHTzaEcOkz556uNYsKLq4YmYa5qDncSX44c,587
|
|
22
|
-
weathergrabber/domain/moon_phase_enum.py,sha256=U4h4s5xDQfX37nkmt5ppkk6uJdamngeE-hQx3E44HHk,2185
|
|
23
|
-
weathergrabber/domain/precipitation.py,sha256=eXrpwMOsEJWGqV4bEBhN9niWYXalgdZRLG4-I39JZ2A,466
|
|
24
|
-
weathergrabber/domain/search.py,sha256=j3BzskyPl0hDWV02XTOC4tJonV5RHxr5Rop_rYMKUtA,387
|
|
25
|
-
weathergrabber/domain/sunrise_sunset.py,sha256=wNTk01NIuLbQ7gN_giAFv4f3FaRx9khul-mj19g57vE,1207
|
|
26
|
-
weathergrabber/domain/temperature_hight_low.py,sha256=PQOJ5uDtfMRBR5yMxXA46xuorJC08jva2C0-WAV5yxs,909
|
|
27
|
-
weathergrabber/domain/timestamp.py,sha256=Bk6f8Tx0-yNitYmEKIWHnqh_ALDwxEHrhoCRSrfvYTU,1222
|
|
28
|
-
weathergrabber/domain/today_details.py,sha256=EUlV7xerYw5QhEsBfvO5m6-9Ghm4nPkXJz9zCmSYTbA,2398
|
|
29
|
-
weathergrabber/domain/uv_index.py,sha256=7XalamfjJdVSqo4x7G4JVf_HJtrPJxO1BpbvmAfBhnw,1481
|
|
30
|
-
weathergrabber/domain/weather_icon_enum.py,sha256=U0CsNDJIiX8kd42LeZL7wKNptuNiQOazPolUdXc-x9w,4013
|
|
31
|
-
weathergrabber/domain/wind.py,sha256=wTDz3X1rYsnw_eNoDi1miwaomxwhiJkY_q6xrdZtLak,789
|
|
32
|
-
weathergrabber/domain/adapter/icon_enum.py,sha256=YxGYS5vBRV2AiAfeuPOdqaQOHixAssiMbOzQnTmdSBg,84
|
|
33
|
-
weathergrabber/domain/adapter/output_enum.py,sha256=61iR10ppY8DNALPKV-vLnDQni5HxEzpoRNZbdBdRygk,117
|
|
34
|
-
weathergrabber/domain/adapter/params.py,sha256=4ts2m0cQ0LpgWXS81G36aRDER4e5LEKXad2sIcxbuWY,1668
|
|
35
|
-
weathergrabber/domain/adapter/mapper/air_quality_index_mapper.py,sha256=buAiqYDzHiUVVo18tzRoRG5lFkM26c07qIKPc9RDwGQ,454
|
|
36
|
-
weathergrabber/domain/adapter/mapper/city_location_mapper.py,sha256=NkcsrZ9nEJhqs4y07_VsiagslfsIWnd6AtoYem9o01U,239
|
|
37
|
-
weathergrabber/domain/adapter/mapper/color_mapper.py,sha256=ZU945MVCxL7Z9BS_ztR5iE1O5mR4ZG5PHdfB6fxv8s4,243
|
|
38
|
-
weathergrabber/domain/adapter/mapper/current_conditions_mapper.py,sha256=5UOT8gChe8FmerAXuzch8qN-GNgRxpzCayrtdRKBv_Q,899
|
|
39
|
-
weathergrabber/domain/adapter/mapper/daily_predictions_mapper.py,sha256=mYTilW4N8nrE7CT2VNiAayPuAj0sGXr7Rj36azGQc2E,933
|
|
40
|
-
weathergrabber/domain/adapter/mapper/day_night_mapper.py,sha256=M1dyVTThxJLgRhfASPIVCfAQ9E60c3kqtsyeI-Bt-d4,377
|
|
41
|
-
weathergrabber/domain/adapter/mapper/forecast_mapper.py,sha256=dEow0pR35Tmfo0nmJBOoaK85kB2ZSzWkGWq78eupHGw,1558
|
|
42
|
-
weathergrabber/domain/adapter/mapper/health_activities_mapper.py,sha256=ABhprwPx9LSiwsSmSdvSdf_hXxnNq7MUTDUNCy1__8A,259
|
|
43
|
-
weathergrabber/domain/adapter/mapper/hourly_predictions_mapper.py,sha256=56S_D_7NZDIffMuTZzI_6Lbh1y0MNmRsCVAps_LVzTE,1013
|
|
44
|
-
weathergrabber/domain/adapter/mapper/label_value_mapper.py,sha256=_hmXtVEFkARUhgn-qbQVwF8asi9pQZnOfnZAIJxXQyE,180
|
|
45
|
-
weathergrabber/domain/adapter/mapper/moon_phase_mapper.py,sha256=aYMPKICqKAX50wKnPNZc5krSlafxwJXnAwd5Nz4mo6I,291
|
|
46
|
-
weathergrabber/domain/adapter/mapper/precipitation_mapper.py,sha256=qTtUkOz-TBuhLSVFtSiHpQrOMcZDSwP6wHK0ClQOctM,199
|
|
47
|
-
weathergrabber/domain/adapter/mapper/search_mapper.py,sha256=yadBVjhh6uUgLZwSa0aeIJ239QOr_CGkxMF36dVbTnI,180
|
|
48
|
-
weathergrabber/domain/adapter/mapper/sunrise_sunset_mapper.py,sha256=OaviTRaY9EhNdjVaTBxTksW8WN3KJhP3bbXETt5ytqA,568
|
|
49
|
-
weathergrabber/domain/adapter/mapper/temperature_high_low_mapper.py,sha256=EDJ6WgIzHbQSUY4Yn9-5bS7UcfTQY8yBMQvhlp7I6NU,240
|
|
50
|
-
weathergrabber/domain/adapter/mapper/timestamp_mapper.py,sha256=2g0PqENQJ1FkGapkV2ojhQu0GzRU5ThQ4tmaSbmA3bY,193
|
|
51
|
-
weathergrabber/domain/adapter/mapper/today_details_mapper.py,sha256=y9F5b3IQXIvbt5PEjLW8M2RGy8vW9EPUpICAp3x87D0,1413
|
|
52
|
-
weathergrabber/domain/adapter/mapper/uv_index_mapper.py,sha256=K3AdRnAPv1Yqudc3eKcw_EBQidNPbHbLcG4lYrQvOOw,230
|
|
53
|
-
weathergrabber/domain/adapter/mapper/weather_icon_enum_mapper.py,sha256=YC7juvt38Ehtb3Y-iQFM77s1EQAv4qNHd6vGOqws6HI,249
|
|
54
|
-
weathergrabber/domain/adapter/mapper/wind_mapper.py,sha256=nXyYwqTvLLMyKtSey27GaGvBV8xVhB_Y3HU0sbmIe_E,149
|
|
55
|
-
weathergrabber/service/extract_aqi_service.py,sha256=WKxNvZoLRE-_vmTMR4efWNrowkc8cfo28fVRJ1XmQ1c,1090
|
|
56
|
-
weathergrabber/service/extract_current_conditions_service.py,sha256=R4rd-_53HOQ7YqhHdfI_gKrIy27scYkNEmLgqS23f40,1838
|
|
57
|
-
weathergrabber/service/extract_daily_forecast_oldstyle_service.py,sha256=DiKfaGbMnIIBnxI-IYG8HmfLHNAW5AGew5NjFSMqBk4,2190
|
|
58
|
-
weathergrabber/service/extract_daily_forecast_service.py,sha256=frxQH5mcutW_aqb7Si6nhIdadeYZfL2CVt_Hd6CiLpQ,2708
|
|
59
|
-
weathergrabber/service/extract_health_activities_service.py,sha256=2qJ4tEEz5uV6EwHUIFhWM8zol_BbDW3omEohf8kDg3M,1014
|
|
60
|
-
weathergrabber/service/extract_hourly_forecast_oldstyle_service.py,sha256=U5O2tG9YF8wrUUoTimDr7oqMIb670j9oeVjoIpCKKLs,2100
|
|
61
|
-
weathergrabber/service/extract_hourly_forecast_service.py,sha256=KFsl6G6FAmGtkski3lj31VIhs6guP0BxVZTGQSHk8Do,2757
|
|
62
|
-
weathergrabber/service/extract_temperature_service.py,sha256=46nRO3Izj1QmG4BNTh8flsODsovHyWPzZzOnkl1Gbj4,634
|
|
63
|
-
weathergrabber/service/extract_today_details_service.py,sha256=Mjlhsz38J9fIzM-EYVPvHsSlw9R4HzXXzl-503cEGFA,3752
|
|
64
|
-
weathergrabber/service/read_weather_service.py,sha256=7_B8E9IN1KCwOhpuS5PfWazI1sCrDyYrZhkV2R38bhc,649
|
|
65
|
-
weathergrabber/service/search_location_service.py,sha256=tZmVgO45hjwoa4cl5bKPjMBmYlGxJiH_I9Ymb5pwEwU,1422
|
|
66
|
-
weathergrabber/usecase/use_case.py,sha256=OM36GtGlzotgRJqSu_3kaM3F3WaSQsUs90DMHQdWPsk,4627
|
|
67
|
-
weathergrabber-0.0.8b7.dist-info/licenses/LICENSE,sha256=X5JFljoqN43yFwpMLudQ9rtty4K_FeZfnz3v8Yhw23Q,1067
|
|
68
|
-
weathergrabber-0.0.8b7.dist-info/METADATA,sha256=Pl4BDmR3TT6-NxG_JPSfs1GyHGoaJ7E96Pnrk9AM6DM,5801
|
|
69
|
-
weathergrabber-0.0.8b7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
70
|
-
weathergrabber-0.0.8b7.dist-info/entry_points.txt,sha256=m2P9a4mrJDTzuNaiTU438NA60GxCfaw7VKvruWw43N8,63
|
|
71
|
-
weathergrabber-0.0.8b7.dist-info/top_level.txt,sha256=P3NMDJJYRIvQujf994Vb4gZrobkKWkL2gh3NF_ajQWM,15
|
|
72
|
-
weathergrabber-0.0.8b7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|