diff --git a/homeassistant/core.py b/homeassistant/core.py index aa15872c29b..f0b10760228 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -289,8 +289,6 @@ class HassJob(Generic[_P, _R_co]): we run the job. """ - __slots__ = ("job_type", "target", "name", "_cancel_on_shutdown") - def __init__( self, target: Callable[_P, _R_co], @@ -302,8 +300,13 @@ class HassJob(Generic[_P, _R_co]): """Create a job object.""" self.target = target self.name = name - self.job_type = job_type or _get_hassjob_callable_job_type(target) self._cancel_on_shutdown = cancel_on_shutdown + self._job_type = job_type + + @cached_property + def job_type(self) -> HassJobType: + """Return the job type.""" + return self._job_type or _get_hassjob_callable_job_type(self.target) @property def cancel_on_shutdown(self) -> bool | None: diff --git a/tests/test_core.py b/tests/test_core.py index 987f228bea8..75d06a7c61f 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -2190,7 +2190,7 @@ async def test_hassjob_forbid_coroutine() -> None: coro = bla() with pytest.raises(ValueError): - ha.HassJob(coro) + ha.HassJob(coro).job_type # To avoid warning about unawaited coro await coro