From f413ac410f8e3782885ae3872e956a9d0b0757f9 Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Sat, 7 Jun 2025 11:58:49 -0500 Subject: [PATCH 1/2] improved error text --- appdaemon/adapi.py | 15 ++++++++++++++- appdaemon/exceptions.py | 8 ++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/appdaemon/adapi.py b/appdaemon/adapi.py index 2c8e05743..3715cf594 100644 --- a/appdaemon/adapi.py +++ b/appdaemon/adapi.py @@ -1845,7 +1845,20 @@ def register_service(self, service: str, cb: Callable, namespace: str | None = N self.logger.debug("register_service: %s, %s", service, kwargs) namespace = namespace or self.namespace - self.AD.services.register_service(namespace, *service.split("/"), cb, __async="auto", name=self.name, **kwargs) + try: + domain, service = service.split("/", 2) + except ValueError as e: + raise ade.DomainNotSpecified(namespace, service) from e + else: + self.AD.services.register_service( + namespace, + domain=domain, + service=service, + callback=cb, + __async="auto", + name=self.name, + **kwargs + ) # fmt: skip def deregister_service(self, service: str, namespace: str | None = None) -> bool: """Deregister a service that had been previously registered. diff --git a/appdaemon/exceptions.py b/appdaemon/exceptions.py index b546dae93..caf4e1dfc 100644 --- a/appdaemon/exceptions.py +++ b/appdaemon/exceptions.py @@ -227,6 +227,14 @@ def __str__(self): f"Services that exist in {self.domain}: {', '.join(self.domain_services)}" ) +@dataclass +class DomainNotSpecified(AppDaemonException): + namespace: str + service: str + + def __str__(self): + return f"domain not specified for service '{self.service}'" + @dataclass class AppCallbackFail(AppDaemonException): From 15bb36a2ed82d6c2e537483a4232767e8471b4b0 Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Sat, 7 Jun 2025 11:59:56 -0500 Subject: [PATCH 2/2] linting --- appdaemon/exceptions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appdaemon/exceptions.py b/appdaemon/exceptions.py index caf4e1dfc..ca4dbb812 100644 --- a/appdaemon/exceptions.py +++ b/appdaemon/exceptions.py @@ -231,7 +231,7 @@ def __str__(self): class DomainNotSpecified(AppDaemonException): namespace: str service: str - + def __str__(self): return f"domain not specified for service '{self.service}'"