feat: NWS high/low temperature pairing in forecasts #295
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Pairs NWS daytime/nighttime forecast periods to show high/low temperatures, matching how Visual Crossing already works.
How it works
NWS returns alternating day/night periods (e.g., "Today" 34°F, "Tonight" 16°F). After parsing, daytime periods now get
temperature_lowpopulated from the following nighttime period. The display layer already formats this as "34°F / 16°F" whentemperature_lowis set.Changes
weather_client_nws.py: After parsing all periods inparse_nws_forecast, iterates through and pairs daytime periods with the next nighttime period using theisDaytimeflagtests/test_nws_high_low.py: 6 tests covering day/night pairing, night-first forecasts, single periods, empty data, and consecutive daytime periodsEdge cases handled