Phase 2.1: Additional Sports Stadiums - 3 plans created (MLS, WNBA, NWSL modules) - CBB deferred to future phase (350+ D1 teams) - 6 total tasks defined - Ready for execution Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5.4 KiB
phase, plan, type
| phase | plan | type |
|---|---|---|
| 2.1-additional-sports-stadiums | 02 | execute |
Purpose: Enable WNBA stadium data to flow through the canonicalization pipeline. Output: wnba.py module with 13 arenas including capacity, year_opened, and coordinates.
<execution_context> ~/.claude/get-shit-done/workflows/execute-phase.md ~/.claude/get-shit-done/templates/summary.md </execution_context>
@.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.mdPrior plan in this phase:
@.planning/phases/2.1-add-stadium-data-mls-wnba-nwsl-cbb/02.1-01-SUMMARY.md
Pattern reference:
@Scripts/mlb.py @Scripts/mls.py (created in 02.1-01)
Current WNBA data:
@Scripts/scrape_schedules.py (WNBA_TEAMS dict at line 77)
NBA arenas (many shared with WNBA):
@Scripts/nba.py
Core module:
@Scripts/core.py
Tech stack available: Python 3, dataclasses, requests Established patterns: Sport module structure from mlb.py, mls.py Key insight: Many WNBA teams share arenas with NBA teams - can reference nba.py hardcoded data for coordinates/capacity
Task 1: Create wnba.py module with complete stadium data Scripts/wnba.py Create wnba.py following the established pattern:- Module docstring and imports (try/except for core imports)
- all exports list
- WNBA_TEAMS dict (copy from scrape_schedules.py, 13 teams)
- get_wnba_team_abbrev() function
- Hardcoded WNBA arenas dict with COMPLETE data:
WNBA Teams and Arenas (2025 season - 13 teams):
- ATL: Atlanta Dream → Gateway Center Arena (College Park, GA) - WNBA-specific, ~3,500 capacity, opened 2018
- CHI: Chicago Sky → Wintrust Arena (Chicago, IL) - WNBA-specific, ~10,387 capacity, opened 2017
- CON: Connecticut Sun → Mohegan Sun Arena (Uncasville, CT) - ~10,000 capacity, opened 2001
- DAL: Dallas Wings → College Park Center (Arlington, TX) - ~7,000 capacity, opened 2012
- GSV: Golden State Valkyries → Chase Center (San Francisco, CA) - shared with NBA Warriors, ~18,064, opened 2019
- IND: Indiana Fever → Gainbridge Fieldhouse (Indianapolis, IN) - shared with NBA Pacers, ~17,923, opened 1999
- LVA: Las Vegas Aces → Michelob Ultra Arena (Las Vegas, NV) - ~12,000 capacity, opened 2016
- LA: Los Angeles Sparks → Crypto.com Arena (Los Angeles, CA) - shared with NBA Lakers/Clippers, ~19,079, opened 1999
- MIN: Minnesota Lynx → Target Center (Minneapolis, MN) - shared with NBA Timberwolves, ~18,978, opened 1990
- NY: New York Liberty → Barclays Center (Brooklyn, NY) - shared with NBA Nets, ~17,732, opened 2012
- PHO: Phoenix Mercury → Footprint Center (Phoenix, AZ) - shared with NBA Suns, ~17,071, opened 1992
- SEA: Seattle Storm → Climate Pledge Arena (Seattle, WA) - shared with NHL Kraken, ~17,100, opened 1962 (renovated 2021)
- WAS: Washington Mystics → Entertainment & Sports Arena (Washington, DC) - WNBA-specific, ~4,200, opened 2018
- scrape_wnba_stadiums_hardcoded() function returning list[Stadium]
- scrape_wnba_stadiums() function with fallback sources
- WNBA_STADIUM_SOURCES configuration
Note: Use WNBA-specific capacity where different from NBA configuration. Cross-reference nba.py for shared arena coordinates. python3 -c "from Scripts.wnba import WNBA_TEAMS, scrape_wnba_stadiums_hardcoded; s = scrape_wnba_stadiums_hardcoded(); print(f'{len(s)} arenas'); assert len(s) == 13; assert all(st.capacity > 0 for st in s); assert all(st.year_opened for st in s)" wnba.py exists with 13 teams, 13 arenas, all with non-zero capacity and year_opened values
Task 2: Integrate WNBA module with scrape_schedules.py Scripts/scrape_schedules.py Update scrape_schedules.py to use the new wnba.py module:-
Add import at top (with try/except pattern):
- from wnba import WNBA_TEAMS, get_wnba_team_abbrev, scrape_wnba_stadiums, WNBA_STADIUM_SOURCES
-
Remove inline WNBA_TEAMS dict (lines ~77-91) - now imported from wnba.py
-
Update get_team_abbrev() function to use get_wnba_team_abbrev() for WNBA
-
Update scrape_wnba_stadiums() stub function to use the new module's implementation
-
Verify WNBA games scraping still works
Do NOT remove the game scraping functions - those stay inline for now. cd Scripts && python3 -c "from scrape_schedules import WNBA_TEAMS, get_team_abbrev; print(f'WNBA teams: {len(WNBA_TEAMS)}'); abbrev = get_team_abbrev('Las Vegas Aces', 'WNBA'); print(f'Aces abbrev: {abbrev}'); assert abbrev == 'LVA'" scrape_schedules.py imports WNBA_TEAMS from wnba.py, get_team_abbrev works for WNBA, inline WNBA_TEAMS removed
Before declaring plan complete: - [ ] wnba.py exists with complete module structure - [ ] All 13 WNBA arenas have capacity > 0 and year_opened values - [ ] scrape_schedules.py imports from wnba.py successfully - [ ] No import errors when running pipeline<success_criteria>
- wnba.py module created following established pattern
- 13 WNBA arenas with complete data (capacity, year_opened, coordinates)
- scrape_schedules.py integration works
- Shared NBA arenas have correct coordinates </success_criteria>