diff --git a/homeassistant/components/recorder/models.py b/homeassistant/components/recorder/models.py index 55d6f73108c99a1c6345cd0045dae2a9af7b2e50..579f47ed4a7d16e0b5af4a49cacb642a43b0ad5b 100644 --- a/homeassistant/components/recorder/models.py +++ b/homeassistant/components/recorder/models.py @@ -77,7 +77,7 @@ DOUBLE_TYPE = ( ) -class Events(Base): # type: ignore +class Events(Base): # type: ignore[misc,valid-type] """Event history data.""" __table_args__ = ( @@ -141,7 +141,7 @@ class Events(Base): # type: ignore return None -class States(Base): # type: ignore +class States(Base): # type: ignore[misc,valid-type] """State change history.""" __table_args__ = ( @@ -276,13 +276,13 @@ class StatisticsBase: @classmethod def from_stats(cls, metadata_id: int, stats: StatisticData): """Create object from a statistics.""" - return cls( # type: ignore + return cls( # type: ignore[call-arg,misc] metadata_id=metadata_id, **stats, ) -class Statistics(Base, StatisticsBase): # type: ignore +class Statistics(Base, StatisticsBase): # type: ignore[misc,valid-type] """Long term statistics.""" duration = timedelta(hours=1) @@ -294,7 +294,7 @@ class Statistics(Base, StatisticsBase): # type: ignore __tablename__ = TABLE_STATISTICS -class StatisticsShortTerm(Base, StatisticsBase): # type: ignore +class StatisticsShortTerm(Base, StatisticsBase): # type: ignore[misc,valid-type] """Short term statistics.""" duration = timedelta(minutes=5) @@ -322,7 +322,7 @@ class StatisticMetaData(TypedDict): unit_of_measurement: str | None -class StatisticsMeta(Base): # type: ignore +class StatisticsMeta(Base): # type: ignore[misc,valid-type] """Statistics meta data.""" __table_args__ = ( @@ -343,7 +343,7 @@ class StatisticsMeta(Base): # type: ignore return StatisticsMeta(**meta) -class RecorderRuns(Base): # type: ignore +class RecorderRuns(Base): # type: ignore[misc,valid-type] """Representation of recorder run.""" __table_args__ = (Index("ix_recorder_runs_start_end", "start", "end"),) @@ -393,7 +393,7 @@ class RecorderRuns(Base): # type: ignore return self -class SchemaChanges(Base): # type: ignore +class SchemaChanges(Base): # type: ignore[misc,valid-type] """Representation of schema version changes.""" __tablename__ = TABLE_SCHEMA_CHANGES @@ -411,7 +411,7 @@ class SchemaChanges(Base): # type: ignore ) -class StatisticsRuns(Base): # type: ignore +class StatisticsRuns(Base): # type: ignore[misc,valid-type] """Representation of statistics run.""" __tablename__ = TABLE_STATISTICS_RUNS @@ -491,7 +491,7 @@ class LazyState(State): self._last_updated = None self._context = None - @property # type: ignore + @property # type: ignore[override] def attributes(self): """State attributes.""" if not self._attributes: @@ -508,7 +508,7 @@ class LazyState(State): """Set attributes.""" self._attributes = value - @property # type: ignore + @property # type: ignore[override] def context(self): """State context.""" if not self._context: @@ -520,7 +520,7 @@ class LazyState(State): """Set context.""" self._context = value - @property # type: ignore + @property # type: ignore[override] def last_changed(self): """Last changed datetime.""" if not self._last_changed: @@ -532,7 +532,7 @@ class LazyState(State): """Set last changed datetime.""" self._last_changed = value - @property # type: ignore + @property # type: ignore[override] def last_updated(self): """Last updated datetime.""" if not self._last_updated: diff --git a/homeassistant/components/recorder/purge.py b/homeassistant/components/recorder/purge.py index e44ae9aafff3ead310788f5fd540e853a2efb581..dd80fb15479d52142b4954fc67962561733b04e7 100644 --- a/homeassistant/components/recorder/purge.py +++ b/homeassistant/components/recorder/purge.py @@ -34,7 +34,7 @@ def purge_old_data( purge_before.isoformat(sep=" ", timespec="seconds"), ) - with session_scope(session=instance.get_session()) as session: # type: ignore + with session_scope(session=instance.get_session()) as session: # type: ignore[misc] # Purge a max of MAX_ROWS_TO_PURGE, based on the oldest states or events record event_ids = _select_event_ids_to_purge(session, purge_before) state_ids = _select_state_ids_to_purge(session, purge_before, event_ids) @@ -267,7 +267,7 @@ def _purge_filtered_states( "Selected %s state_ids to remove that should be filtered", len(state_ids) ) _purge_state_ids(instance, session, set(state_ids)) - _purge_event_ids(session, event_ids) # type: ignore # type of event_ids already narrowed to 'list[int]' + _purge_event_ids(session, event_ids) # type: ignore[arg-type] # type of event_ids already narrowed to 'list[int]' def _purge_filtered_events( @@ -295,7 +295,7 @@ def _purge_filtered_events( @retryable_database_job("purge") def purge_entity_data(instance: Recorder, entity_filter: Callable[[str], bool]) -> bool: """Purge states and events of specified entities.""" - with session_scope(session=instance.get_session()) as session: # type: ignore + with session_scope(session=instance.get_session()) as session: # type: ignore[misc] selected_entity_ids: list[str] = [ entity_id for (entity_id,) in session.query(distinct(States.entity_id)).all() diff --git a/homeassistant/components/recorder/statistics.py b/homeassistant/components/recorder/statistics.py index 6c305242f5fd0dade6294578803abab7d8453f19..4154ae830555f775d5a7357c3cc73414b480b0f4 100644 --- a/homeassistant/components/recorder/statistics.py +++ b/homeassistant/components/recorder/statistics.py @@ -488,7 +488,7 @@ def compile_hourly_statistics( ) if stats: - for metadata_id, group in groupby(stats, lambda stat: stat["metadata_id"]): # type: ignore + for metadata_id, group in groupby(stats, lambda stat: stat["metadata_id"]): # type: ignore[no-any-return] ( metadata_id, last_reset, @@ -527,7 +527,7 @@ def compile_statistics(instance: Recorder, start: datetime) -> bool: end = start + timedelta(minutes=5) # Return if we already have 5-minute statistics for the requested period - with session_scope(session=instance.get_session()) as session: # type: ignore + with session_scope(session=instance.get_session()) as session: # type: ignore[misc] if session.query(StatisticsRuns).filter_by(start=start).first(): _LOGGER.debug("Statistics already compiled for %s-%s", start, end) return True @@ -546,7 +546,7 @@ def compile_statistics(instance: Recorder, start: datetime) -> bool: # Insert collected statistics in the database with session_scope( - session=instance.get_session(), # type: ignore + session=instance.get_session(), # type: ignore[misc] exception_filter=_filter_unique_constraint_integrity_error(instance), ) as session: for stats in platform_stats: @@ -700,7 +700,7 @@ def _configured_unit(unit: str, units: UnitSystem) -> str: def clear_statistics(instance: Recorder, statistic_ids: list[str]) -> None: """Clear statistics for a list of statistic_ids.""" - with session_scope(session=instance.get_session()) as session: # type: ignore + with session_scope(session=instance.get_session()) as session: # type: ignore[misc] session.query(StatisticsMeta).filter( StatisticsMeta.statistic_id.in_(statistic_ids) ).delete(synchronize_session=False) @@ -710,7 +710,7 @@ def update_statistics_metadata( instance: Recorder, statistic_id: str, unit_of_measurement: str | None ) -> None: """Update statistics metadata for a statistic_id.""" - with session_scope(session=instance.get_session()) as session: # type: ignore + with session_scope(session=instance.get_session()) as session: # type: ignore[misc] session.query(StatisticsMeta).filter( StatisticsMeta.statistic_id == statistic_id ).update({StatisticsMeta.unit_of_measurement: unit_of_measurement}) @@ -1093,7 +1093,7 @@ def _sorted_statistics_to_dict( def no_conversion(val: Any, _: Any) -> float | None: """Return x.""" - return val # type: ignore + return val # type: ignore[no-any-return] # Set all statistic IDs to empty lists in result set to maintain the order if statistic_ids is not None: @@ -1101,7 +1101,7 @@ def _sorted_statistics_to_dict( result[stat_id] = [] # Identify metadata IDs for which no data was available at the requested start time - for meta_id, group in groupby(stats, lambda stat: stat.metadata_id): # type: ignore + for meta_id, group in groupby(stats, lambda stat: stat.metadata_id): # type: ignore[no-any-return] first_start_time = process_timestamp(next(group).start) if start_time and first_start_time > start_time: need_stat_at_start_time.add(meta_id) @@ -1115,12 +1115,12 @@ def _sorted_statistics_to_dict( stats_at_start_time[stat.metadata_id] = (stat,) # Append all statistic entries, and optionally do unit conversion - for meta_id, group in groupby(stats, lambda stat: stat.metadata_id): # type: ignore + for meta_id, group in groupby(stats, lambda stat: stat.metadata_id): # type: ignore[no-any-return] unit = metadata[meta_id]["unit_of_measurement"] statistic_id = metadata[meta_id]["statistic_id"] convert: Callable[[Any, Any], float | None] if convert_units: - convert = UNIT_CONVERSIONS.get(unit, lambda x, units: x) # type: ignore + convert = UNIT_CONVERSIONS.get(unit, lambda x, units: x) # type: ignore[arg-type,no-any-return] else: convert = no_conversion ent_results = result[meta_id] @@ -1249,7 +1249,7 @@ def add_external_statistics( """Process an add_statistics job.""" with session_scope( - session=instance.get_session(), # type: ignore + session=instance.get_session(), # type: ignore[misc] exception_filter=_filter_unique_constraint_integrity_error(instance), ) as session: metadata_id = _update_or_add_metadata(instance.hass, session, metadata)