diff --git a/src/linkahead/connection/authentication/input.py b/src/linkahead/connection/authentication/input.py index 2799207354b3949063461229d7d465e8a83c83ae..697ca5ddfaf2a1eaf223f0c39f48c94bc1497ba1 100644 --- a/src/linkahead/connection/authentication/input.py +++ b/src/linkahead/connection/authentication/input.py @@ -25,13 +25,13 @@ A CredentialsProvider which reads the password from the input line. """ -from __future__ import absolute_import, unicode_literals, print_function +from __future__ import absolute_import, unicode_literals, print_function, annotations from .interface import CredentialsProvider, CredentialsAuthenticator - +from typing import Optional import getpass -def get_authentication_provider(): +def get_authentication_provider() -> CredentialsAuthenticator: """get_authentication_provider. Return an authenticator which uses the input for username/password credentials. @@ -61,8 +61,8 @@ class InputCredentialsProvider(CredentialsProvider): def __init__(self): super(InputCredentialsProvider, self).__init__() - self._password = None - self._username = None + self._password: Optional[str] = None + self._username: Optional[str] = None def configure(self, **config): """configure. diff --git a/src/linkahead/connection/authentication/interface.py b/src/linkahead/connection/authentication/interface.py index 04ca11cd5b207ec825faa6155fc9c19d99018545..cd61427be05af78bdc99be50756a01850e7d913e 100644 --- a/src/linkahead/connection/authentication/interface.py +++ b/src/linkahead/connection/authentication/interface.py @@ -26,12 +26,17 @@ LinkAhead server. Implementing modules muts provide a `get_authentication_provider()` method. """ +from __future__ import annotations from abc import ABC, abstractmethod import logging from ..utils import urlencode from ..interface import CaosDBServerConnection from ..utils import parse_auth_token, auth_token_to_cookie from ...exceptions import LoginFailedError +from typing import TYPE_CHECKING, Dict, Optional +if TYPE_CHECKING: + from ..interface import CaosDBHTTPResponse + QueryDict = Dict[str, Optional[str]] _LOGGER = logging.getLogger(__name__) @@ -106,7 +111,7 @@ class AbstractAuthenticator(ABC): """ pass - def on_response(self, response): + def on_response(self, response: CaosDBHTTPResponse): """on_response. A call-back with is to be called by the connection after each @@ -123,7 +128,7 @@ class AbstractAuthenticator(ABC): self.auth_token = parse_auth_token( response.getheader("Set-Cookie")) - def on_request(self, method, path, headers, **kwargs): + def on_request(self, method: str, path: str, headers: QueryDict, **kwargs): # pylint: disable=unused-argument """on_request. diff --git a/src/linkahead/connection/authentication/keyring.py b/src/linkahead/connection/authentication/keyring.py index 202520bbab7e940ccce6517e640eff5904039553..dad6ed9b4ad77175db6b75e30b70152878da487d 100644 --- a/src/linkahead/connection/authentication/keyring.py +++ b/src/linkahead/connection/authentication/keyring.py @@ -35,7 +35,7 @@ from .external_credentials_provider import ExternalCredentialsProvider from .interface import CredentialsAuthenticator -def get_authentication_provider(): +def get_authentication_provider() -> CredentialsAuthenticator: """get_authentication_provider. Return an authenticator which uses plain text username/password credentials. diff --git a/src/linkahead/connection/authentication/pass.py b/src/linkahead/connection/authentication/pass.py index bec307401f945a6cd2e223195e0cce2396602061..81a901523fcad65680d34947cd9cc741e06a0352 100644 --- a/src/linkahead/connection/authentication/pass.py +++ b/src/linkahead/connection/authentication/pass.py @@ -33,7 +33,7 @@ from .interface import CredentialsAuthenticator from .external_credentials_provider import ExternalCredentialsProvider -def get_authentication_provider(): +def get_authentication_provider() -> CredentialsAuthenticator: """get_authentication_provider. Return an authenticator which uses plain text username/password credentials. diff --git a/src/linkahead/connection/utils.py b/src/linkahead/connection/utils.py index bfb27a7278b30e20068cc9823aa49385aef08ec5..099db32946895956022a2d1c32837442395e5fb3 100644 --- a/src/linkahead/connection/utils.py +++ b/src/linkahead/connection/utils.py @@ -117,7 +117,7 @@ def make_uri_path(segments: Optional[List[str]] = None, return str("?".join([ path_no_query, "&".join([ quote(key) + "=" + - (quote(query[key]) if query[key] is not None else "") + (quote(query[key]) if query[key] is not None else "") # type: ignore for key in query ]) ]))