From 92763a17c4f6899397a5d10e593436198f5f1ee3 Mon Sep 17 00:00:00 2001 From: lmiranda Date: Sun, 18 Jan 2026 23:03:23 -0500 Subject: [PATCH] fix: Use os.environ[] instead of .get() for DATABASE_URL Fixes Pylance type error - create_engine() expects str, not str | None. Using direct access raises KeyError if not set, which is correct behavior. Co-Authored-By: Claude Opus 4.5 --- notebooks/amenities/amenity_index_choropleth.ipynb | 2 +- notebooks/amenities/amenity_radar.ipynb | 2 +- notebooks/amenities/transit_accessibility_bar.ipynb | 2 +- notebooks/demographics/age_distribution.ipynb | 2 +- notebooks/demographics/income_choropleth.ipynb | 2 +- notebooks/demographics/population_density_bar.ipynb | 2 +- notebooks/housing/affordability_choropleth.ipynb | 2 +- notebooks/housing/rent_trend_line.ipynb | 2 +- notebooks/housing/tenure_breakdown_bar.ipynb | 2 +- notebooks/overview/income_safety_scatter.ipynb | 2 +- notebooks/overview/livability_choropleth.ipynb | 2 +- notebooks/overview/top_bottom_10_bar.ipynb | 2 +- notebooks/safety/crime_breakdown_bar.ipynb | 2 +- notebooks/safety/crime_rate_choropleth.ipynb | 2 +- notebooks/safety/crime_trend_line.ipynb | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/notebooks/amenities/amenity_index_choropleth.ipynb b/notebooks/amenities/amenity_index_choropleth.ipynb index 11ffbbe..fa157d3 100644 --- a/notebooks/amenities/amenity_index_choropleth.ipynb +++ b/notebooks/amenities/amenity_index_choropleth.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/amenities/amenity_radar.ipynb b/notebooks/amenities/amenity_radar.ipynb index 551025f..99327d5 100644 --- a/notebooks/amenities/amenity_radar.ipynb +++ b/notebooks/amenities/amenity_radar.ipynb @@ -29,7 +29,7 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": "import pandas as pd\nfrom sqlalchemy import create_engine\nfrom dotenv import load_dotenv\nimport os\n\n# Load .env from project root\nload_dotenv('../../.env')\n\nengine = create_engine(os.environ.get('DATABASE_URL'))\n\nquery = \"\"\"\nSELECT\n neighbourhood_name,\n parks_index,\n schools_index,\n transit_index,\n amenity_index,\n amenity_tier\nFROM public_marts.mart_neighbourhood_amenities\nWHERE year = (SELECT MAX(year) FROM public_marts.mart_neighbourhood_amenities)\nORDER BY amenity_index DESC\n\"\"\"\n\ndf = pd.read_sql(query, engine)\nprint(f\"Loaded {len(df)} neighbourhoods\")" + "source": "import pandas as pd\nfrom sqlalchemy import create_engine\nfrom dotenv import load_dotenv\nimport os\n\n# Load .env from project root\nload_dotenv('../../.env')\n\nengine = create_engine(os.environ['DATABASE_URL'])\n\nquery = \"\"\"\nSELECT\n neighbourhood_name,\n parks_index,\n schools_index,\n transit_index,\n amenity_index,\n amenity_tier\nFROM public_marts.mart_neighbourhood_amenities\nWHERE year = (SELECT MAX(year) FROM public_marts.mart_neighbourhood_amenities)\nORDER BY amenity_index DESC\n\"\"\"\n\ndf = pd.read_sql(query, engine)\nprint(f\"Loaded {len(df)} neighbourhoods\")" }, { "cell_type": "markdown", diff --git a/notebooks/amenities/transit_accessibility_bar.ipynb b/notebooks/amenities/transit_accessibility_bar.ipynb index 0635a15..126843b 100644 --- a/notebooks/amenities/transit_accessibility_bar.ipynb +++ b/notebooks/amenities/transit_accessibility_bar.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/demographics/age_distribution.ipynb b/notebooks/demographics/age_distribution.ipynb index 64ec4b2..208bb6d 100644 --- a/notebooks/demographics/age_distribution.ipynb +++ b/notebooks/demographics/age_distribution.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/demographics/income_choropleth.ipynb b/notebooks/demographics/income_choropleth.ipynb index 73115a5..8eaef95 100644 --- a/notebooks/demographics/income_choropleth.ipynb +++ b/notebooks/demographics/income_choropleth.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/demographics/population_density_bar.ipynb b/notebooks/demographics/population_density_bar.ipynb index 27b073a..8c7cd23 100644 --- a/notebooks/demographics/population_density_bar.ipynb +++ b/notebooks/demographics/population_density_bar.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/housing/affordability_choropleth.ipynb b/notebooks/housing/affordability_choropleth.ipynb index 63534b2..ca2f054 100644 --- a/notebooks/housing/affordability_choropleth.ipynb +++ b/notebooks/housing/affordability_choropleth.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/housing/rent_trend_line.ipynb b/notebooks/housing/rent_trend_line.ipynb index 8299cf3..a658ab1 100644 --- a/notebooks/housing/rent_trend_line.ipynb +++ b/notebooks/housing/rent_trend_line.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "# City-wide average rent by year\n", "query = \"\"\"\n", diff --git a/notebooks/housing/tenure_breakdown_bar.ipynb b/notebooks/housing/tenure_breakdown_bar.ipynb index 084a27f..413f6b8 100644 --- a/notebooks/housing/tenure_breakdown_bar.ipynb +++ b/notebooks/housing/tenure_breakdown_bar.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/overview/income_safety_scatter.ipynb b/notebooks/overview/income_safety_scatter.ipynb index 86fb16c..da41fb2 100644 --- a/notebooks/overview/income_safety_scatter.ipynb +++ b/notebooks/overview/income_safety_scatter.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/overview/livability_choropleth.ipynb b/notebooks/overview/livability_choropleth.ipynb index 1b110a6..580bc59 100644 --- a/notebooks/overview/livability_choropleth.ipynb +++ b/notebooks/overview/livability_choropleth.ipynb @@ -29,7 +29,7 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": "import pandas as pd\nfrom sqlalchemy import create_engine\nfrom dotenv import load_dotenv\nimport os\n\n# Load .env from project root\nload_dotenv('../../.env')\n\nengine = create_engine(os.environ.get('DATABASE_URL'))\n\nquery = \"\"\"\nSELECT\n neighbourhood_id,\n neighbourhood_name,\n geometry,\n year,\n livability_score,\n safety_score,\n affordability_score,\n amenity_score,\n population,\n median_household_income\nFROM public_marts.mart_neighbourhood_overview\nWHERE year = (SELECT MAX(year) FROM public_marts.mart_neighbourhood_overview)\nORDER BY livability_score DESC\n\"\"\"\n\ndf = pd.read_sql(query, engine)\nprint(f\"Loaded {len(df)} neighbourhoods\")" + "source": "import pandas as pd\nfrom sqlalchemy import create_engine\nfrom dotenv import load_dotenv\nimport os\n\n# Load .env from project root\nload_dotenv('../../.env')\n\nengine = create_engine(os.environ['DATABASE_URL'])\n\nquery = \"\"\"\nSELECT\n neighbourhood_id,\n neighbourhood_name,\n geometry,\n year,\n livability_score,\n safety_score,\n affordability_score,\n amenity_score,\n population,\n median_household_income\nFROM public_marts.mart_neighbourhood_overview\nWHERE year = (SELECT MAX(year) FROM public_marts.mart_neighbourhood_overview)\nORDER BY livability_score DESC\n\"\"\"\n\ndf = pd.read_sql(query, engine)\nprint(f\"Loaded {len(df)} neighbourhoods\")" }, { "cell_type": "markdown", diff --git a/notebooks/overview/top_bottom_10_bar.ipynb b/notebooks/overview/top_bottom_10_bar.ipynb index 2b204d9..6468ea3 100644 --- a/notebooks/overview/top_bottom_10_bar.ipynb +++ b/notebooks/overview/top_bottom_10_bar.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/safety/crime_breakdown_bar.ipynb b/notebooks/safety/crime_breakdown_bar.ipynb index 5e5fb46..2ff6d43 100644 --- a/notebooks/safety/crime_breakdown_bar.ipynb +++ b/notebooks/safety/crime_breakdown_bar.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/safety/crime_rate_choropleth.ipynb b/notebooks/safety/crime_rate_choropleth.ipynb index 1d72390..05c3225 100644 --- a/notebooks/safety/crime_rate_choropleth.ipynb +++ b/notebooks/safety/crime_rate_choropleth.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n", diff --git a/notebooks/safety/crime_trend_line.ipynb b/notebooks/safety/crime_trend_line.ipynb index bd062b0..3e3a3a5 100644 --- a/notebooks/safety/crime_trend_line.ipynb +++ b/notebooks/safety/crime_trend_line.ipynb @@ -38,7 +38,7 @@ "# Load .env from project root\n", "load_dotenv('../../.env')\n", "\n", - "engine = create_engine(os.environ.get('DATABASE_URL'))\n", + "engine = create_engine(os.environ['DATABASE_URL'])\n", "\n", "query = \"\"\"\n", "SELECT\n",