diff --git a/src/blueapi/config.py b/src/blueapi/config.py index 378bdc33b..78fd9864b 100644 --- a/src/blueapi/config.py +++ b/src/blueapi/config.py @@ -131,7 +131,7 @@ class OAuthClientConfig(BlueapiBaseModel): class CLIClientConfig(OAuthClientConfig): - token_file_path: Path | None = Path("~/token") + token_file_path: Path = Path("~/token") class ApplicationConfig(BlueapiBaseModel): @@ -146,7 +146,7 @@ class ApplicationConfig(BlueapiBaseModel): api: RestConfig = Field(default_factory=RestConfig) scratch: ScratchConfig | None = None oauth_server: OAuthServerConfig | None = None - oauth_client: CLIClientConfig | None = None + oauth_client: OAuthClientConfig | CLIClientConfig | None = None def __eq__(self, other: object) -> bool: if isinstance(other, ApplicationConfig): diff --git a/src/blueapi/service/authentication.py b/src/blueapi/service/authentication.py index 3ebe9150a..abc83caae 100644 --- a/src/blueapi/service/authentication.py +++ b/src/blueapi/service/authentication.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import base64 import json import os @@ -109,15 +111,14 @@ def from_config( cls, server_config: OAuthServerConfig | None, client_config: OAuthClientConfig | None, - ) -> "SessionManager": + ) -> SessionManager | None: if server_config and client_config: if isinstance(client_config, CLIClientConfig): return SessionManager( server_config, client_config, - CLITokenManager(Path(client_config.token_file_path)), # type: ignore + CLITokenManager(Path(client_config.token_file_path)), ) - # raise NotImplementedError("Only CLI client config is supported") def get_token(self) -> dict[str, Any] | None: return self._token_manager.load_token()