Skip to content

Commit

Permalink
making project ready for tesm PR
Browse files Browse the repository at this point in the history
  • Loading branch information
Reem Konsowa authored and Reem Konsowa committed Sep 15, 2024
1 parent a388f65 commit af5b936
Show file tree
Hide file tree
Showing 4 changed files with 550 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,275 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "13933ab3",
"metadata": {},
"source": [
"#Part 3 Demo of a RESTful access of the AccuWeather website with an API key\n",
"Step 1. Register on accuweather.com\n",
"Step2: Go to https://developer.accuweather.com/packages and get a free key (remember not to make too many calls - there is a limit)\n",
"Step 3: Use the key for working on Lab 2.3 (set the key in the file api_key.txt and read it into your code). "
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "f48627a3-1f6d-42c6-aa20-a317b2843f28",
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"from pathlib import Path"
]
},
{
"cell_type": "markdown",
"id": "68a4114c-0e63-4339-b259-e7baa6453299",
"metadata": {},
"source": [
"# Get a free key from AccuWeather site (has limited services and limited number of trys in a day)\n",
"\n",
"Insert the file named api_key.txt with the key value and place the file in the same folder as this notebook"
]
},
{
"cell_type": "markdown",
"id": "dae2a1c5-86fa-450f-9372-ba2c45af9e56",
"metadata": {},
"source": [
"Q1. What does the following function return?\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "7cc88e49",
"metadata": {},
"source": [
"This function returns the contents of a file as a text without any trailing spaces or white spaces. It basically cleans the file."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f46330f6-acd5-4d1c-84c5-9cb2f26bc424",
"metadata": {},
"outputs": [],
"source": [
"def read_api_key(filepath):\n",
" # Feel free to modify this function if you are storing the API Key differently\n",
" return Path(filepath).read_text().strip()"
]
},
{
"cell_type": "markdown",
"id": "2767380a-06de-4d96-b6ae-fa86d177185e",
"metadata": {},
"source": [
"Q2. What does the following function return?\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "6de86387",
"metadata": {},
"source": [
"This function returns the city code for a specified city by querying the AccuWeather API. However, if the API does not work it prints an error message and returns 0."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "cf895b5c-42df-4aa9-a2c1-d9dd69c34ebf",
"metadata": {},
"outputs": [],
"source": [
"def get_citycode(citystring, api_key):\n",
" url=f\"http://dataservice.accuweather.com/locations/v1/cities/search?apikey={api_key}&q={citystring}\"\n",
" response = requests.get(url)\n",
" if response.status_code == 200:\n",
" data = response.json()\n",
" print(data)\n",
" return data[0]['Key']#271669\n",
" else:\n",
" print(\"Failed to retrieve data from: \"+ url+ \"\\n\"+ str(response))\n",
" return 0\n"
]
},
{
"cell_type": "markdown",
"id": "af302688-c771-46df-a303-ce92c7967701",
"metadata": {},
"source": [
"Q3. What does the following function return?\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "44276518",
"metadata": {},
"source": [
"The following function returns the weather forecast for a specific city using the AccuWeather API. However, if the API does not work then it prints an error message."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "ebba52c6-752a-4e30-8c34-065f31f0e9d4",
"metadata": {},
"outputs": [],
"source": [
"def get_weather(api_key, city_code):\n",
" url = f\"http://dataservice.accuweather.com/forecasts/v1/daily/1day/{city_code}?apikey={api_key}&details=true&metric=true\"\n",
" response = requests.get(url)\n",
" if response.status_code == 200:\n",
" data = response.json()\n",
" print(data)\n",
" return data\n",
" else:\n",
" print(\"Failed to retrieve data\")\n",
" print(url)\n",
" print(response)"
]
},
{
"cell_type": "markdown",
"id": "ee7bc35b-cfa7-40a0-8782-2561a4a890a7",
"metadata": {},
"source": [
"Q4. Explain the code in the following cell\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "d4e9dc8c",
"metadata": {},
"source": [
"The code in the cell uses the functions that we previously defined to read an API key from a file that we input. Then it uses it to get the city code of a specified city."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "57e14ff2-29bf-43fa-9dfd-a8f9622dca05",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'Version': 1, 'Key': '1310', 'Type': 'City', 'Rank': 35, 'LocalizedName': 'Pittsburgh', 'EnglishName': 'Pittsburgh', 'PrimaryPostalCode': '15219', 'Region': {'ID': 'NAM', 'LocalizedName': 'North America', 'EnglishName': 'North America'}, 'Country': {'ID': 'US', 'LocalizedName': 'United States', 'EnglishName': 'United States'}, 'AdministrativeArea': {'ID': 'PA', 'LocalizedName': 'Pennsylvania', 'EnglishName': 'Pennsylvania', 'Level': 1, 'LocalizedType': 'State', 'EnglishType': 'State', 'CountryID': 'US'}, 'TimeZone': {'Code': 'EDT', 'Name': 'America/New_York', 'GmtOffset': -4.0, 'IsDaylightSaving': True, 'NextOffsetChange': '2024-11-03T06:00:00Z'}, 'GeoPosition': {'Latitude': 40.441, 'Longitude': -79.996, 'Elevation': {'Metric': {'Value': 219.0, 'Unit': 'm', 'UnitType': 5}, 'Imperial': {'Value': 718.0, 'Unit': 'ft', 'UnitType': 0}}}, 'IsAlias': False, 'SupplementalAdminAreas': [{'Level': 2, 'LocalizedName': 'Allegheny', 'EnglishName': 'Allegheny'}], 'DataSets': ['AirQualityCurrentConditions', 'AirQualityForecasts', 'Alerts', 'DailyAirQualityForecast', 'DailyPollenForecast', 'ForecastConfidence', 'FutureRadar', 'MinuteCast', 'ProximityNotification-Lightning', 'Radar']}]\n",
"City code: 1310\n"
]
}
],
"source": [
"api_key = read_api_key(filepath='''/Users/reemkonsowa/Desktop/api/api-key.txt''') # Replace the file with your actual API key\n",
"city_string=\"Pittsburgh, PA\"\n",
"city_code = get_citycode(city_string, api_key)\n",
"print(f\"City code: {city_code}\")"
]
},
{
"cell_type": "markdown",
"id": "c67d3a1e-cd18-43be-be6d-132c81c6f50a",
"metadata": {},
"source": [
"Q5. Explain the code in the following cell\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "8a225ec2",
"metadata": {},
"source": [
"The code in the following cell prints the weather information of a specific city. It stores different information that is being retrieved from other functions and then prints it. "
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "f8e616f3-c37f-4865-a3e8-f60324763a9f",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'Headline': {'EffectiveDate': '2024-09-07T08:00:00-04:00', 'EffectiveEpochDate': 1725710400, 'Severity': 4, 'Text': 'Noticeably cooler Saturday', 'Category': 'cooler', 'EndDate': '2024-09-07T20:00:00-04:00', 'EndEpochDate': 1725753600, 'MobileLink': 'http://www.accuweather.com/en/us/pittsburgh-pa/15219/daily-weather-forecast/1310?unit=c&lang=en-us', 'Link': 'http://www.accuweather.com/en/us/pittsburgh-pa/15219/daily-weather-forecast/1310?unit=c&lang=en-us'}, 'DailyForecasts': [{'Date': '2024-09-05T07:00:00-04:00', 'EpochDate': 1725534000, 'Sun': {'Rise': '2024-09-05T06:52:00-04:00', 'EpochRise': 1725533520, 'Set': '2024-09-05T19:44:00-04:00', 'EpochSet': 1725579840}, 'Moon': {'Rise': '2024-09-05T09:13:00-04:00', 'EpochRise': 1725541980, 'Set': '2024-09-05T20:50:00-04:00', 'EpochSet': 1725583800, 'Phase': 'WaxingCrescent', 'Age': 3}, 'Temperature': {'Minimum': {'Value': 14.3, 'Unit': 'C', 'UnitType': 17}, 'Maximum': {'Value': 28.3, 'Unit': 'C', 'UnitType': 17}}, 'RealFeelTemperature': {'Minimum': {'Value': 14.0, 'Unit': 'C', 'UnitType': 17, 'Phrase': 'Cool'}, 'Maximum': {'Value': 30.4, 'Unit': 'C', 'UnitType': 17, 'Phrase': 'Very Warm'}}, 'RealFeelTemperatureShade': {'Minimum': {'Value': 14.0, 'Unit': 'C', 'UnitType': 17, 'Phrase': 'Cool'}, 'Maximum': {'Value': 27.0, 'Unit': 'C', 'UnitType': 17, 'Phrase': 'Very Warm'}}, 'HoursOfSun': 12.7, 'DegreeDaySummary': {'Heating': {'Value': 0.0, 'Unit': 'C', 'UnitType': 17}, 'Cooling': {'Value': 3.0, 'Unit': 'C', 'UnitType': 17}}, 'AirAndPollen': [{'Name': 'AirQuality', 'Value': 46, 'Category': 'Good', 'CategoryValue': 1, 'Type': 'Nitrogen Dioxide'}, {'Name': 'Grass', 'Value': 12, 'Category': 'Moderate', 'CategoryValue': 2}, {'Name': 'Mold', 'Value': 0, 'Category': 'Low', 'CategoryValue': 1}, {'Name': 'Ragweed', 'Value': 30, 'Category': 'Moderate', 'CategoryValue': 2}, {'Name': 'Tree', 'Value': 0, 'Category': 'Low', 'CategoryValue': 1}, {'Name': 'UVIndex', 'Value': 6, 'Category': 'High', 'CategoryValue': 3}], 'Day': {'Icon': 1, 'IconPhrase': 'Sunny', 'HasPrecipitation': False, 'ShortPhrase': 'Plenty of sunshine', 'LongPhrase': 'Plenty of sunshine', 'PrecipitationProbability': 0, 'ThunderstormProbability': 0, 'RainProbability': 0, 'SnowProbability': 0, 'IceProbability': 0, 'Wind': {'Speed': {'Value': 9.3, 'Unit': 'km/h', 'UnitType': 7}, 'Direction': {'Degrees': 128, 'Localized': 'SE', 'English': 'SE'}}, 'WindGust': {'Speed': {'Value': 20.4, 'Unit': 'km/h', 'UnitType': 7}, 'Direction': {'Degrees': 116, 'Localized': 'ESE', 'English': 'ESE'}}, 'TotalLiquid': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'Rain': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'Snow': {'Value': 0.0, 'Unit': 'cm', 'UnitType': 4}, 'Ice': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'HoursOfPrecipitation': 0.0, 'HoursOfRain': 0.0, 'HoursOfSnow': 0.0, 'HoursOfIce': 0.0, 'CloudCover': 1, 'Evapotranspiration': {'Value': 4.6, 'Unit': 'mm', 'UnitType': 3}, 'SolarIrradiance': {'Value': 7194.5, 'Unit': 'W/m²', 'UnitType': 33}, 'RelativeHumidity': {'Minimum': 31, 'Maximum': 75, 'Average': 45}, 'WetBulbTemperature': {'Minimum': {'Value': 12.2, 'Unit': 'C', 'UnitType': 17}, 'Maximum': {'Value': 17.0, 'Unit': 'C', 'UnitType': 17}, 'Average': {'Value': 15.9, 'Unit': 'C', 'UnitType': 17}}, 'WetBulbGlobeTemperature': {'Minimum': {'Value': 14.4, 'Unit': 'C', 'UnitType': 17}, 'Maximum': {'Value': 23.2, 'Unit': 'C', 'UnitType': 17}, 'Average': {'Value': 20.6, 'Unit': 'C', 'UnitType': 17}}}, 'Night': {'Icon': 33, 'IconPhrase': 'Clear', 'HasPrecipitation': False, 'ShortPhrase': 'Clear', 'LongPhrase': 'Clear', 'PrecipitationProbability': 2, 'ThunderstormProbability': 0, 'RainProbability': 2, 'SnowProbability': 0, 'IceProbability': 0, 'Wind': {'Speed': {'Value': 9.3, 'Unit': 'km/h', 'UnitType': 7}, 'Direction': {'Degrees': 129, 'Localized': 'SE', 'English': 'SE'}}, 'WindGust': {'Speed': {'Value': 14.8, 'Unit': 'km/h', 'UnitType': 7}, 'Direction': {'Degrees': 113, 'Localized': 'ESE', 'English': 'ESE'}}, 'TotalLiquid': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'Rain': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'Snow': {'Value': 0.0, 'Unit': 'cm', 'UnitType': 4}, 'Ice': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'HoursOfPrecipitation': 0.0, 'HoursOfRain': 0.0, 'HoursOfSnow': 0.0, 'HoursOfIce': 0.0, 'CloudCover': 0, 'Evapotranspiration': {'Value': 0.5, 'Unit': 'mm', 'UnitType': 3}, 'SolarIrradiance': {'Value': 71.4, 'Unit': 'W/m²', 'UnitType': 33}, 'RelativeHumidity': {'Minimum': 43, 'Maximum': 89, 'Average': 69}, 'WetBulbTemperature': {'Minimum': {'Value': 13.5, 'Unit': 'C', 'UnitType': 17}, 'Maximum': {'Value': 16.3, 'Unit': 'C', 'UnitType': 17}, 'Average': {'Value': 14.9, 'Unit': 'C', 'UnitType': 17}}, 'WetBulbGlobeTemperature': {'Minimum': {'Value': 15.2, 'Unit': 'C', 'UnitType': 17}, 'Maximum': {'Value': 21.0, 'Unit': 'C', 'UnitType': 17}, 'Average': {'Value': 17.6, 'Unit': 'C', 'UnitType': 17}}}, 'Sources': ['AccuWeather'], 'MobileLink': 'http://www.accuweather.com/en/us/pittsburgh-pa/15219/daily-weather-forecast/1310?day=1&unit=c&lang=en-us', 'Link': 'http://www.accuweather.com/en/us/pittsburgh-pa/15219/daily-weather-forecast/1310?day=1&unit=c&lang=en-us'}]}\n",
"{'Headline': {'EffectiveDate': '2024-09-07T08:00:00-04:00', 'EffectiveEpochDate': 1725710400, 'Severity': 4, 'Text': 'Noticeably cooler Saturday', 'Category': 'cooler', 'EndDate': '2024-09-07T20:00:00-04:00', 'EndEpochDate': 1725753600, 'MobileLink': 'http://www.accuweather.com/en/us/pittsburgh-pa/15219/daily-weather-forecast/1310?unit=c&lang=en-us', 'Link': 'http://www.accuweather.com/en/us/pittsburgh-pa/15219/daily-weather-forecast/1310?unit=c&lang=en-us'}, 'DailyForecasts': [{'Date': '2024-09-05T07:00:00-04:00', 'EpochDate': 1725534000, 'Sun': {'Rise': '2024-09-05T06:52:00-04:00', 'EpochRise': 1725533520, 'Set': '2024-09-05T19:44:00-04:00', 'EpochSet': 1725579840}, 'Moon': {'Rise': '2024-09-05T09:13:00-04:00', 'EpochRise': 1725541980, 'Set': '2024-09-05T20:50:00-04:00', 'EpochSet': 1725583800, 'Phase': 'WaxingCrescent', 'Age': 3}, 'Temperature': {'Minimum': {'Value': 14.3, 'Unit': 'C', 'UnitType': 17}, 'Maximum': {'Value': 28.3, 'Unit': 'C', 'UnitType': 17}}, 'RealFeelTemperature': {'Minimum': {'Value': 14.0, 'Unit': 'C', 'UnitType': 17, 'Phrase': 'Cool'}, 'Maximum': {'Value': 30.4, 'Unit': 'C', 'UnitType': 17, 'Phrase': 'Very Warm'}}, 'RealFeelTemperatureShade': {'Minimum': {'Value': 14.0, 'Unit': 'C', 'UnitType': 17, 'Phrase': 'Cool'}, 'Maximum': {'Value': 27.0, 'Unit': 'C', 'UnitType': 17, 'Phrase': 'Very Warm'}}, 'HoursOfSun': 12.7, 'DegreeDaySummary': {'Heating': {'Value': 0.0, 'Unit': 'C', 'UnitType': 17}, 'Cooling': {'Value': 3.0, 'Unit': 'C', 'UnitType': 17}}, 'AirAndPollen': [{'Name': 'AirQuality', 'Value': 46, 'Category': 'Good', 'CategoryValue': 1, 'Type': 'Nitrogen Dioxide'}, {'Name': 'Grass', 'Value': 12, 'Category': 'Moderate', 'CategoryValue': 2}, {'Name': 'Mold', 'Value': 0, 'Category': 'Low', 'CategoryValue': 1}, {'Name': 'Ragweed', 'Value': 30, 'Category': 'Moderate', 'CategoryValue': 2}, {'Name': 'Tree', 'Value': 0, 'Category': 'Low', 'CategoryValue': 1}, {'Name': 'UVIndex', 'Value': 6, 'Category': 'High', 'CategoryValue': 3}], 'Day': {'Icon': 1, 'IconPhrase': 'Sunny', 'HasPrecipitation': False, 'ShortPhrase': 'Plenty of sunshine', 'LongPhrase': 'Plenty of sunshine', 'PrecipitationProbability': 0, 'ThunderstormProbability': 0, 'RainProbability': 0, 'SnowProbability': 0, 'IceProbability': 0, 'Wind': {'Speed': {'Value': 9.3, 'Unit': 'km/h', 'UnitType': 7}, 'Direction': {'Degrees': 128, 'Localized': 'SE', 'English': 'SE'}}, 'WindGust': {'Speed': {'Value': 20.4, 'Unit': 'km/h', 'UnitType': 7}, 'Direction': {'Degrees': 116, 'Localized': 'ESE', 'English': 'ESE'}}, 'TotalLiquid': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'Rain': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'Snow': {'Value': 0.0, 'Unit': 'cm', 'UnitType': 4}, 'Ice': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'HoursOfPrecipitation': 0.0, 'HoursOfRain': 0.0, 'HoursOfSnow': 0.0, 'HoursOfIce': 0.0, 'CloudCover': 1, 'Evapotranspiration': {'Value': 4.6, 'Unit': 'mm', 'UnitType': 3}, 'SolarIrradiance': {'Value': 7194.5, 'Unit': 'W/m²', 'UnitType': 33}, 'RelativeHumidity': {'Minimum': 31, 'Maximum': 75, 'Average': 45}, 'WetBulbTemperature': {'Minimum': {'Value': 12.2, 'Unit': 'C', 'UnitType': 17}, 'Maximum': {'Value': 17.0, 'Unit': 'C', 'UnitType': 17}, 'Average': {'Value': 15.9, 'Unit': 'C', 'UnitType': 17}}, 'WetBulbGlobeTemperature': {'Minimum': {'Value': 14.4, 'Unit': 'C', 'UnitType': 17}, 'Maximum': {'Value': 23.2, 'Unit': 'C', 'UnitType': 17}, 'Average': {'Value': 20.6, 'Unit': 'C', 'UnitType': 17}}}, 'Night': {'Icon': 33, 'IconPhrase': 'Clear', 'HasPrecipitation': False, 'ShortPhrase': 'Clear', 'LongPhrase': 'Clear', 'PrecipitationProbability': 2, 'ThunderstormProbability': 0, 'RainProbability': 2, 'SnowProbability': 0, 'IceProbability': 0, 'Wind': {'Speed': {'Value': 9.3, 'Unit': 'km/h', 'UnitType': 7}, 'Direction': {'Degrees': 129, 'Localized': 'SE', 'English': 'SE'}}, 'WindGust': {'Speed': {'Value': 14.8, 'Unit': 'km/h', 'UnitType': 7}, 'Direction': {'Degrees': 113, 'Localized': 'ESE', 'English': 'ESE'}}, 'TotalLiquid': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'Rain': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'Snow': {'Value': 0.0, 'Unit': 'cm', 'UnitType': 4}, 'Ice': {'Value': 0.0, 'Unit': 'mm', 'UnitType': 3}, 'HoursOfPrecipitation': 0.0, 'HoursOfRain': 0.0, 'HoursOfSnow': 0.0, 'HoursOfIce': 0.0, 'CloudCover': 0, 'Evapotranspiration': {'Value': 0.5, 'Unit': 'mm', 'UnitType': 3}, 'SolarIrradiance': {'Value': 71.4, 'Unit': 'W/m²', 'UnitType': 33}, 'RelativeHumidity': {'Minimum': 43, 'Maximum': 89, 'Average': 69}, 'WetBulbTemperature': {'Minimum': {'Value': 13.5, 'Unit': 'C', 'UnitType': 17}, 'Maximum': {'Value': 16.3, 'Unit': 'C', 'UnitType': 17}, 'Average': {'Value': 14.9, 'Unit': 'C', 'UnitType': 17}}, 'WetBulbGlobeTemperature': {'Minimum': {'Value': 15.2, 'Unit': 'C', 'UnitType': 17}, 'Maximum': {'Value': 21.0, 'Unit': 'C', 'UnitType': 17}, 'Average': {'Value': 17.6, 'Unit': 'C', 'UnitType': 17}}}, 'Sources': ['AccuWeather'], 'MobileLink': 'http://www.accuweather.com/en/us/pittsburgh-pa/15219/daily-weather-forecast/1310?day=1&unit=c&lang=en-us', 'Link': 'http://www.accuweather.com/en/us/pittsburgh-pa/15219/daily-weather-forecast/1310?day=1&unit=c&lang=en-us'}]}\n",
"Pittsburgh, PA\n",
"Headline Text: Noticeably cooler Saturday\n",
"Temperature Minimum Value: 14.3\n"
]
}
],
"source": [
"if (city_code!=0):\n",
" weather_data=get_weather(api_key, city_code)\n",
" print(weather_data)\n",
"# Extract 'Text' from 'Headline'\n",
" headline_text = weather_data['Headline']['Text']\n",
"# Extract 'Temperature Minimum' value\n",
" temperature_minimum = weather_data['DailyForecasts'][0]['Temperature']['Minimum']['Value']\n",
" print(city_string)\n",
" print(\"Headline Text:\", headline_text)\n",
" print(\"Temperature Minimum Value:\", temperature_minimum)\n",
"else: \n",
" print(\"Invalid search term\")"
]
},
{
"cell_type": "markdown",
"id": "29a8a8e9-102c-46e0-ad76-87c11f3002fd",
"metadata": {},
"source": [
"# Run all the cells and find the minimum temperature in Tucson, Arizona today \n",
"Write the minimum temperature here: \n",
"# Submit both .ipynb and .html files "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3f2cf97c",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.4"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading

0 comments on commit af5b936

Please sign in to comment.