Home Assistant Unofficial Reference 2024.12.1
homeassistant.components.recorder.purge Namespace Reference

Functions

None _purge_batch_attributes_ids (Recorder instance, Session session, set[int] attributes_ids)
 
None _purge_batch_data_ids (Recorder instance, Session session, set[int] data_ids)
 
None _purge_event_ids (Session session, set[int] event_ids)
 
bool _purge_events_and_data_ids (Recorder instance, Session session, int events_batch_size, datetime purge_before)
 
bool _purge_filtered_data (Recorder instance, Session session)
 
bool _purge_filtered_events (Recorder instance, Session session, list[int] excluded_event_type_ids, float purge_before_timestamp)
 
bool _purge_filtered_states (Recorder instance, Session session, list[str] metadata_ids_to_purge, DatabaseEngine database_engine, float purge_before_timestamp)
 
bool _purge_legacy_format (Recorder instance, Session session, datetime purge_before)
 
None _purge_old_entity_ids (Recorder instance, Session session)
 
None _purge_old_event_types (Recorder instance, Session session)
 
None _purge_old_recorder_runs (Recorder instance, Session session, datetime purge_before)
 
None _purge_short_term_statistics (Session session, list[int] short_term_statistics)
 
None _purge_state_ids (Recorder instance, Session session, set[int] state_ids)
 
bool _purge_states_and_attributes_ids (Recorder instance, Session session, int states_batch_size, datetime purge_before)
 
None _purge_statistics_runs (Session session, list[int] statistics_runs)
 
None _purge_unused_attributes_ids (Recorder instance, Session session, set[int] attributes_ids_batch)
 
None _purge_unused_data_ids (Recorder instance, Session session, set[int] data_ids_batch)
 
bool _purging_legacy_format (Session session)
 
tuple[set[int], set[int]] _select_event_data_ids_to_purge (Session session, datetime purge_before, int max_bind_vars)
 
tuple[set[int], set[int]] _select_legacy_detached_state_and_attributes_and_data_ids_to_purge (Session session, datetime purge_before, int max_bind_vars)
 
tuple[set[int], set[int], set[int], set[int]] _select_legacy_event_state_and_attributes_and_data_ids_to_purge (Session session, datetime purge_before, int max_bind_vars)
 
list[int] _select_short_term_statistics_to_purge (Session session, datetime purge_before, int max_bind_vars)
 
tuple[set[int], set[int]] _select_state_attributes_ids_to_purge (Session session, datetime purge_before, int max_bind_vars)
 
list[int] _select_statistics_runs_to_purge (Session session, datetime purge_before, int max_bind_vars)
 
set[int] _select_unused_attributes_ids (Recorder instance, Session session, set[int] attributes_ids, DatabaseEngine database_engine)
 
set[int] _select_unused_event_data_ids (Recorder instance, Session session, set[int] data_ids, DatabaseEngine database_engine)
 
bool purge_entity_data (Recorder instance, Callable[[str], bool]|None entity_filter, datetime purge_before)
 
bool purge_old_data (Recorder instance, datetime purge_before, bool repack, bool apply_filter=False, int events_batch_size=DEFAULT_EVENTS_BATCHES_PER_PURGE, int states_batch_size=DEFAULT_STATES_BATCHES_PER_PURGE)
 

Variables

 _LOGGER = logging.getLogger(__name__)
 
int DEFAULT_EVENTS_BATCHES_PER_PURGE = 15
 
int DEFAULT_STATES_BATCHES_PER_PURGE = 20
 

Detailed Description

Purge old data helper.

Function Documentation

◆ _purge_batch_attributes_ids()

None homeassistant.components.recorder.purge._purge_batch_attributes_ids ( Recorder  instance,
Session  session,
set[int]   attributes_ids 
)
private
Delete old attributes ids in batches of max_bind_vars.

Definition at line 534 of file purge.py.

◆ _purge_batch_data_ids()

None homeassistant.components.recorder.purge._purge_batch_data_ids ( Recorder  instance,
Session  session,
set[int]   data_ids 
)
private
Delete old event data ids in batches of max_bind_vars.

Definition at line 548 of file purge.py.

◆ _purge_event_ids()

None homeassistant.components.recorder.purge._purge_event_ids ( Session  session,
set[int]  event_ids 
)
private
Delete by event id.

Definition at line 576 of file purge.py.

◆ _purge_events_and_data_ids()

bool homeassistant.components.recorder.purge._purge_events_and_data_ids ( Recorder  instance,
Session  session,
int  events_batch_size,
datetime  purge_before 
)
private
Purge states and linked attributes id in a batch.

Returns true if there are more states to purge.

Definition at line 216 of file purge.py.

◆ _purge_filtered_data()

bool homeassistant.components.recorder.purge._purge_filtered_data ( Recorder  instance,
Session  session 
)
private
Remove filtered states and events that shouldn't be in the database.

Returns true if all states and events are purged.

Definition at line 636 of file purge.py.

◆ _purge_filtered_events()

bool homeassistant.components.recorder.purge._purge_filtered_events ( Recorder  instance,
Session  session,
list[int]  excluded_event_type_ids,
float  purge_before_timestamp 
)
private
Remove filtered events and linked states.

Return true if all events are purged.

Definition at line 724 of file purge.py.

◆ _purge_filtered_states()

bool homeassistant.components.recorder.purge._purge_filtered_states ( Recorder  instance,
Session  session,
list[str]  metadata_ids_to_purge,
DatabaseEngine  database_engine,
float  purge_before_timestamp 
)
private
Remove filtered states and linked events.

Return true if all states are purged

Definition at line 681 of file purge.py.

◆ _purge_legacy_format()

bool homeassistant.components.recorder.purge._purge_legacy_format ( Recorder  instance,
Session  session,
datetime   purge_before 
)
private
Purge rows that are still linked by the event_ids.

Definition at line 139 of file purge.py.

◆ _purge_old_entity_ids()

None homeassistant.components.recorder.purge._purge_old_entity_ids ( Recorder  instance,
Session  session 
)
private
Purge all old entity_ids.

Definition at line 616 of file purge.py.

◆ _purge_old_event_types()

None homeassistant.components.recorder.purge._purge_old_event_types ( Recorder  instance,
Session  session 
)
private
Purge all old event types.

Definition at line 597 of file purge.py.

◆ _purge_old_recorder_runs()

None homeassistant.components.recorder.purge._purge_old_recorder_runs ( Recorder  instance,
Session  session,
datetime   purge_before 
)
private
Purge all old recorder runs.

Definition at line 584 of file purge.py.

◆ _purge_short_term_statistics()

None homeassistant.components.recorder.purge._purge_short_term_statistics ( Session  session,
list[int]   short_term_statistics 
)
private
Delete by id.

Definition at line 566 of file purge.py.

◆ _purge_state_ids()

None homeassistant.components.recorder.purge._purge_state_ids ( Recorder  instance,
Session  session,
set[int]  state_ids 
)
private
Disconnect states and delete by state id.

Definition at line 515 of file purge.py.

◆ _purge_states_and_attributes_ids()

bool homeassistant.components.recorder.purge._purge_states_and_attributes_ids ( Recorder  instance,
Session  session,
int  states_batch_size,
datetime  purge_before 
)
private
Purge states and linked attributes id in a batch.

Returns true if there are more states to purge.

Definition at line 179 of file purge.py.

◆ _purge_statistics_runs()

None homeassistant.components.recorder.purge._purge_statistics_runs ( Session  session,
list[int]  statistics_runs 
)
private
Delete by run_id.

Definition at line 560 of file purge.py.

◆ _purge_unused_attributes_ids()

None homeassistant.components.recorder.purge._purge_unused_attributes_ids ( Recorder  instance,
Session  session,
set[int]  attributes_ids_batch 
)
private
Purge unused attributes ids.

Definition at line 367 of file purge.py.

◆ _purge_unused_data_ids()

None homeassistant.components.recorder.purge._purge_unused_data_ids ( Recorder  instance,
Session  session,
set[int]   data_ids_batch 
)
private

Definition at line 417 of file purge.py.

◆ _purging_legacy_format()

bool homeassistant.components.recorder.purge._purging_legacy_format ( Session  session)
private
Check if there are any legacy event_id linked states rows remaining.

Definition at line 134 of file purge.py.

◆ _select_event_data_ids_to_purge()

tuple[set[int], set[int]] homeassistant.components.recorder.purge._select_event_data_ids_to_purge ( Session  session,
datetime  purge_before,
int   max_bind_vars 
)
private
Return sets of event and data ids to purge.

Definition at line 271 of file purge.py.

◆ _select_legacy_detached_state_and_attributes_and_data_ids_to_purge()

tuple[set[int], set[int]] homeassistant.components.recorder.purge._select_legacy_detached_state_and_attributes_and_data_ids_to_purge ( Session  session,
datetime  purge_before,
int   max_bind_vars 
)
private
Return a list of state, and attribute ids to purge.

We do not link these anymore since state_change events
do not exist in the events table anymore, however we
still need to be able to purge them.

Definition at line 460 of file purge.py.

◆ _select_legacy_event_state_and_attributes_and_data_ids_to_purge()

tuple[set[int], set[int], set[int], set[int]] homeassistant.components.recorder.purge._select_legacy_event_state_and_attributes_and_data_ids_to_purge ( Session  session,
datetime  purge_before,
int   max_bind_vars 
)
private
Return a list of event, state, and attribute ids to purge linked by the event_id.

We do not link these anymore since state_change events
do not exist in the events table anymore, however we
still need to be able to purge them.

Definition at line 485 of file purge.py.

◆ _select_short_term_statistics_to_purge()

list[int] homeassistant.components.recorder.purge._select_short_term_statistics_to_purge ( Session  session,
datetime  purge_before,
int   max_bind_vars 
)
private
Return a list of short term statistics to purge.

Definition at line 449 of file purge.py.

◆ _select_state_attributes_ids_to_purge()

tuple[set[int], set[int]] homeassistant.components.recorder.purge._select_state_attributes_ids_to_purge ( Session  session,
datetime  purge_before,
int   max_bind_vars 
)
private
Return sets of state and attribute ids to purge.

Definition at line 251 of file purge.py.

◆ _select_statistics_runs_to_purge()

list[int] homeassistant.components.recorder.purge._select_statistics_runs_to_purge ( Session  session,
datetime  purge_before,
int   max_bind_vars 
)
private
Return a list of statistic runs to purge.

Takes care to keep the newest run.

Definition at line 428 of file purge.py.

◆ _select_unused_attributes_ids()

set[int] homeassistant.components.recorder.purge._select_unused_attributes_ids ( Recorder  instance,
Session  session,
set[int]  attributes_ids,
DatabaseEngine  database_engine 
)
private
Return a set of attributes ids that are not used by any states in the db.

Definition at line 289 of file purge.py.

◆ _select_unused_event_data_ids()

set[int] homeassistant.components.recorder.purge._select_unused_event_data_ids ( Recorder  instance,
Session  session,
set[int]  data_ids,
DatabaseEngine  database_engine 
)
private
Return a set of event data ids that are not used by any events in the db.

Definition at line 381 of file purge.py.

◆ purge_entity_data()

bool homeassistant.components.recorder.purge.purge_entity_data ( Recorder  instance,
Callable[[str], bool] | None  entity_filter,
datetime  purge_before 
)
Purge states and events of specified entities.

Definition at line 772 of file purge.py.

◆ purge_old_data()

bool homeassistant.components.recorder.purge.purge_old_data ( Recorder  instance,
datetime  purge_before,
bool  repack,
bool   apply_filter = False,
int   events_batch_size = DEFAULT_EVENTS_BATCHES_PER_PURGE,
int   states_batch_size = DEFAULT_STATES_BATCHES_PER_PURGE 
)
Purge events and states older than purge_before.

Cleans up an timeframe of an hour, based on the oldest record.

Definition at line 58 of file purge.py.

Variable Documentation

◆ _LOGGER

homeassistant.components.recorder.purge._LOGGER = logging.getLogger(__name__)
private

Definition at line 50 of file purge.py.

◆ DEFAULT_EVENTS_BATCHES_PER_PURGE

int homeassistant.components.recorder.purge.DEFAULT_EVENTS_BATCHES_PER_PURGE = 15

Definition at line 54 of file purge.py.

◆ DEFAULT_STATES_BATCHES_PER_PURGE

int homeassistant.components.recorder.purge.DEFAULT_STATES_BATCHES_PER_PURGE = 20

Definition at line 53 of file purge.py.