diff --git a/tableauserverclient/models/tableau_auth.py b/tableauserverclient/models/tableau_auth.py index 8cb2a8848..10cf58723 100644 --- a/tableauserverclient/models/tableau_auth.py +++ b/tableauserverclient/models/tableau_auth.py @@ -1,16 +1,20 @@ import abc +from typing import Dict, Optional class Credentials(abc.ABC): - def __init__(self, site_id=None, user_id_to_impersonate=None): + def __init__(self, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None) -> None: self.site_id = site_id or "" self.user_id_to_impersonate = user_id_to_impersonate or None @property @abc.abstractmethod - def credentials(self): - credentials = "Credentials can be username/password, Personal Access Token, or JWT" - +"This method returns values to set as an attribute on the credentials element of the request" + def credentials(self) -> Dict[str, str]: + credentials = ( + "Credentials can be username/password, Personal Access Token, or JWT" + "This method returns values to set as an attribute on the credentials element of the request" + ) + return {"key": "value"} @abc.abstractmethod def __repr__(self): @@ -28,7 +32,9 @@ def deprecate_site_attribute(): # The traditional auth type: username/password class TableauAuth(Credentials): - def __init__(self, username, password, site_id=None, user_id_to_impersonate=None): + def __init__( + self, username: str, password: str, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None + ) -> None: super().__init__(site_id, user_id_to_impersonate) if password is None: raise TabError("Must provide a password when using traditional authentication") @@ -36,7 +42,7 @@ def __init__(self, username, password, site_id=None, user_id_to_impersonate=None self.username = username @property - def credentials(self): + def credentials(self) -> Dict[str, str]: return {"name": self.username, "password": self.password} def __repr__(self): @@ -49,7 +55,13 @@ def __repr__(self): # A Tableau-generated Personal Access Token class PersonalAccessTokenAuth(Credentials): - def __init__(self, token_name, personal_access_token, site_id=None, user_id_to_impersonate=None): + def __init__( + self, + token_name: str, + personal_access_token: str, + site_id: Optional[str] = None, + user_id_to_impersonate: Optional[str] = None, + ) -> None: if personal_access_token is None or token_name is None: raise TabError("Must provide a token and token name when using PAT authentication") super().__init__(site_id=site_id, user_id_to_impersonate=user_id_to_impersonate) @@ -57,7 +69,7 @@ def __init__(self, token_name, personal_access_token, site_id=None, user_id_to_i self.personal_access_token = personal_access_token @property - def credentials(self): + def credentials(self) -> Dict[str, str]: return { "personalAccessTokenName": self.token_name, "personalAccessTokenSecret": self.personal_access_token, @@ -76,14 +88,14 @@ def __repr__(self): # A standard JWT generated specifically for Tableau class JWTAuth(Credentials): - def __init__(self, jwt: str, site_id=None, user_id_to_impersonate=None): + def __init__(self, jwt: str, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None) -> None: if jwt is None: raise TabError("Must provide a JWT token when using JWT authentication") super().__init__(site_id, user_id_to_impersonate) self.jwt = jwt @property - def credentials(self): + def credentials(self) -> Dict[str, str]: return {"jwt": self.jwt} def __repr__(self):