This commit is contained in:
Aminah
2024-10-29 17:07:12 -04:00
parent 8445b404bb
commit 86a3efa082
3 changed files with 97 additions and 2 deletions

44
weather.py Normal file
View File

@@ -0,0 +1,44 @@
from argparse import ArgumentParser
from weather.weather_apis import (
geocode_location,
estimate_location,
get_weather_office,
get_forecast
)
def print_weather(location=None, metric=False, verbose=False):
"""Prints out a weather report using the provided location, or using
the user's current location if no location was provided.
When metric is True, prints out the weather in metric units.
When verbose is True, prints out a more detailed report.
"""
print("Not finished...")
if location:
coordinates = geocode_location(location)
if not coordinates:
print("Error: Location not found. ")
return
else:
coordinates = estimate_location()
if not coordinates:
print("Error: Unable to estimate location.")
return
office_info = get_weather_office(coordinates['lat'], coordinates['lng'])
if not office_info:
print("Error: Weather office not found for this location.")
return
forecast = get_forecast(office_info['office'], office_info['x'], office_info['y'], metric=metric)
if not forecast:
print("Error: Forecast data is unavailable.")
return
temp_unit = "°C" if metric else "°F"
print(f"Weather Forecast for {location or 'your location'}:")
for period in forecast:
temp = period['temperature']
description = period['description']
wind = period['wind_speed']
wind_dir = period['wind_direction']
print(f"{period['name']}: {temp}{temp_unit}, {description}")
if verbose:
print(f" Wind: {wind} {wind_dir}")