From c5683dd24cfded161558bf68e41690d6d915761f Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Mon, 10 Jun 2024 21:05:06 -0700 Subject: [PATCH] refac --- .../workspace/Tools/CodeEditor.svelte | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/lib/components/workspace/Tools/CodeEditor.svelte b/src/lib/components/workspace/Tools/CodeEditor.svelte index f02230822..a89293dcf 100644 --- a/src/lib/components/workspace/Tools/CodeEditor.svelte +++ b/src/lib/components/workspace/Tools/CodeEditor.svelte @@ -56,6 +56,44 @@ class Tools: print(e) return "Invalid equation" + def get_current_weather(self, city: str) -> str: + """ + Get the current weather for a given city. + :param city: The name of the city to get the weather for. + :return: The current weather information or an error message. + """ + api_key = os.getenv('OPENWEATHER_API_KEY') + if not api_key: + return "API key is not set in the environment variable 'OPENWEATHER_API_KEY'." + + base_url = "http://api.openweathermap.org/data/2.5/weather" + params = { + 'q': city, + 'appid': api_key, + 'units': 'metric' # Optional: Use 'imperial' for Fahrenheit + } + + try: + response = requests.get(base_url, params=params) + response.raise_for_status() # Raise HTTPError for bad responses (4xx and 5xx) + data = response.json() + + if data.get('cod') != 200: + return f"Error fetching weather data: {data.get('message')}" + + weather_description = data['weather'][0]['description'] + temperature = data['main']['temp'] + humidity = data['main']['humidity'] + wind_speed = data['wind']['speed'] + + return (f"Weather in {city}:\n" + f"Description: {weather_description}\n" + f"Temperature: {temperature}°C\n" + f"Humidity: {humidity}%\n" + f"Wind Speed: {wind_speed} m/s") + except requests.RequestException as e: + return f"Error fetching weather data: {str(e)}" + `; export const formatHandler = async () => {