diff --git a/CHANGELOG.md b/CHANGELOG.md index d3efacc..198b5fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/custom_components/usgs_earthquakes_feed/helpers.py b/custom_components/usgs_earthquakes_feed/helpers.py index 1d138bd..1d9d0c9 100644 --- a/custom_components/usgs_earthquakes_feed/helpers.py +++ b/custom_components/usgs_earthquakes_feed/helpers.py @@ -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 "" diff --git a/custom_components/usgs_earthquakes_feed/manifest.json b/custom_components/usgs_earthquakes_feed/manifest.json index 879d733..ff0cd4c 100644 --- a/custom_components/usgs_earthquakes_feed/manifest.json +++ b/custom_components/usgs_earthquakes_feed/manifest.json @@ -13,5 +13,5 @@ "aio-geojson-usgs-earthquakes==0.3", "aio-geojson-client==0.12" ], - "version": "1.2.2" + "version": "1.2.3" } diff --git a/custom_components/usgs_earthquakes_feed/sensor.py b/custom_components/usgs_earthquakes_feed/sensor.py index 33c0378..db0b2a1 100644 --- a/custom_components/usgs_earthquakes_feed/sensor.py +++ b/custom_components/usgs_earthquakes_feed/sensor.py @@ -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