Source code for olo._namespaces

"""Robot namespace resolution helpers."""

from dataclasses import dataclass

from olo.errors import OloAmbiguousNamespace, OloNotFound


[docs] @dataclass(frozen=True, slots=True) class RobotNamespaces: """Robot namespaces available through the appliance.""" has_global: bool = False namespaces: tuple[str, ...] = ()
[docs] def resolve_default(self) -> str: """Return the unambiguous default robot namespace, or raise.""" if len(self.namespaces) == 1: return self.namespaces[0] if not self.namespaces and self.has_global: return "" if not self.namespaces: raise OloNotFound("No robot namespace found") raise OloAmbiguousNamespace( "Multiple robot namespaces available " f"({', '.join(self.namespaces)}); pass one explicitly" )
__all__ = ["RobotNamespaces"]