28 lines
727 B
Python
28 lines
727 B
Python
|
"""Patch recorder related functions."""
|
||
|
|
||
|
from __future__ import annotations
|
||
|
|
||
|
from contextlib import contextmanager
|
||
|
import sys
|
||
|
|
||
|
# Patch recorder util session scope
|
||
|
from homeassistant.helpers import recorder as recorder_helper # noqa: E402
|
||
|
|
||
|
# Make sure homeassistant.components.recorder.util is not already imported
|
||
|
assert "homeassistant.components.recorder.util" not in sys.modules
|
||
|
|
||
|
real_session_scope = recorder_helper.session_scope
|
||
|
|
||
|
|
||
|
@contextmanager
|
||
|
def _session_scope_wrapper(*args, **kwargs):
|
||
|
"""Make session_scope patchable.
|
||
|
|
||
|
This function will be imported by recorder modules.
|
||
|
"""
|
||
|
with real_session_scope(*args, **kwargs) as ses:
|
||
|
yield ses
|
||
|
|
||
|
|
||
|
recorder_helper.session_scope = _session_scope_wrapper
|