Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

All notable changes to this project will be documented in this file.

## [1.2.3] - 2026-03-15

### Fixed
- **Redundant lambda wrappers removed from `sensor.py`**: Both `sorted()` calls that used `key=lambda e: parse_event_time(e)` now use `key=parse_event_time` directly, as suggested by code review.
- **`parse_event_time` now handles event dicts**: Updated `helpers.py` so that `parse_event_time` correctly extracts the `"time"` field when passed a full event dict, allowing it to be used directly as a sort key without an intermediate lambda.

## [1.2.2] - 2026-03-15

### Fixed
Expand Down
8 changes: 6 additions & 2 deletions custom_components/usgs_earthquakes_feed/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,12 @@
_LOGGER = logging.getLogger(__name__)


def parse_event_time(time_val: Any) -> datetime:
"""Parse an event time value that may be a datetime object or an ISO string."""
def parse_event_time(event_or_time: Any) -> datetime:
"""Parse an event time value that may be an event dict, datetime object, or ISO string."""
if isinstance(event_or_time, dict):
time_val = event_or_time.get("time")
else:
time_val = event_or_time
if isinstance(time_val, datetime):
return time_val
t_str = str(time_val) if time_val is not None else ""
Expand Down
2 changes: 1 addition & 1 deletion custom_components/usgs_earthquakes_feed/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@
"aio-geojson-usgs-earthquakes==0.3",
"aio-geojson-client==0.12"
],
"version": "1.2.2"
"version": "1.2.3"
}
4 changes: 2 additions & 2 deletions custom_components/usgs_earthquakes_feed/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,12 @@ async def _async_update_events(self) -> None:
# Agregar nuevos eventos y reordenar
self._events.extend(filtered_events)
self._events = sorted(
self._events, key=lambda e: parse_event_time(e), reverse=True
self._events, key=parse_event_time, reverse=True
)[:MAX_EVENTS]

# latest_events: eventos nuevos de esta actualización, ordenados del más reciente al más antiguo
self._latest_events = sorted(
filtered_events, key=lambda e: parse_event_time(e), reverse=True
filtered_events, key=parse_event_time, reverse=True
)

# Publicar latest_events en hass.data para que el servicio format_events pueda leerlos
Expand Down
Loading