Avoid having to work out the job type for each entity service at startup (#112557)

This commit is contained in:
J. Nick Koston 2024-03-06 16:09:55 -10:00 committed by GitHub
parent 869128e951
commit 84455dbe1d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 2 deletions

View file

@ -2014,9 +2014,10 @@ class Service:
service: str,
context: Context | None = None,
supports_response: SupportsResponse = SupportsResponse.NONE,
job_type: HassJobType | None = None,
) -> None:
"""Initialize a service."""
self.job = HassJob(func, f"service {domain}.{service}")
self.job = HassJob(func, f"service {domain}.{service}", job_type=job_type)
self.schema = schema
self.supports_response = supports_response
@ -2158,6 +2159,7 @@ class ServiceRegistry:
],
schema: vol.Schema | None = None,
supports_response: SupportsResponse = SupportsResponse.NONE,
job_type: HassJobType | None = None,
) -> None:
"""Register a service.
@ -2168,7 +2170,12 @@ class ServiceRegistry:
domain = domain.lower()
service = service.lower()
service_obj = Service(
service_func, schema, domain, service, supports_response=supports_response
service_func,
schema,
domain,
service,
supports_response=supports_response,
job_type=job_type,
)
if domain in self._services:

View file

@ -22,6 +22,7 @@ from homeassistant.const import (
from homeassistant.core import (
Event,
HassJob,
HassJobType,
HomeAssistant,
ServiceCall,
ServiceResponse,
@ -278,6 +279,7 @@ class EntityComponent(Generic[_EntityT]):
),
schema,
supports_response,
job_type=HassJobType.Coroutinefunction,
)
async def async_setup_platform(