Make HassJob job_type lookup lazy (#112563)

This commit is contained in:
J. Nick Koston 2024-03-06 17:03:27 -10:00 committed by GitHub
parent a7b4cd3512
commit e12e129065
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 4 deletions

View File

@ -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:

View File

@ -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