Skip to content

Commit a5c28da

Browse files
committed
chore: type hint auth models
1 parent 6c4374b commit a5c28da

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

tableauserverclient/models/tableau_auth.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
import abc
2+
from typing import Optional
23

34

45
class Credentials(abc.ABC):
5-
def __init__(self, site_id=None, user_id_to_impersonate=None):
6+
def __init__(self, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None) -> None:
67
self.site_id = site_id or ""
78
self.user_id_to_impersonate = user_id_to_impersonate or None
89

910
@property
1011
@abc.abstractmethod
11-
def credentials(self):
12-
credentials = "Credentials can be username/password, Personal Access Token, or JWT"
13-
+"This method returns values to set as an attribute on the credentials element of the request"
12+
def credentials(self) -> dict[str, str]:
13+
credentials = ("Credentials can be username/password, Personal Access Token, or JWT"
14+
"This method returns values to set as an attribute on the credentials element of the request")
15+
return {"key": "value"}
1416

1517
@abc.abstractmethod
1618
def __repr__(self):
@@ -28,15 +30,15 @@ def deprecate_site_attribute():
2830

2931
# The traditional auth type: username/password
3032
class TableauAuth(Credentials):
31-
def __init__(self, username, password, site_id=None, user_id_to_impersonate=None):
33+
def __init__(self, username: str, password: str, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None) -> None:
3234
super().__init__(site_id, user_id_to_impersonate)
3335
if password is None:
3436
raise TabError("Must provide a password when using traditional authentication")
3537
self.password = password
3638
self.username = username
3739

3840
@property
39-
def credentials(self):
41+
def credentials(self) -> dict[str, str]:
4042
return {"name": self.username, "password": self.password}
4143

4244
def __repr__(self):
@@ -49,15 +51,15 @@ def __repr__(self):
4951

5052
# A Tableau-generated Personal Access Token
5153
class PersonalAccessTokenAuth(Credentials):
52-
def __init__(self, token_name, personal_access_token, site_id=None, user_id_to_impersonate=None):
54+
def __init__(self, token_name: str, personal_access_token: str, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None) -> None:
5355
if personal_access_token is None or token_name is None:
5456
raise TabError("Must provide a token and token name when using PAT authentication")
5557
super().__init__(site_id=site_id, user_id_to_impersonate=user_id_to_impersonate)
5658
self.token_name = token_name
5759
self.personal_access_token = personal_access_token
5860

5961
@property
60-
def credentials(self):
62+
def credentials(self) -> dict[str, str]:
6163
return {
6264
"personalAccessTokenName": self.token_name,
6365
"personalAccessTokenSecret": self.personal_access_token,
@@ -76,14 +78,14 @@ def __repr__(self):
7678

7779
# A standard JWT generated specifically for Tableau
7880
class JWTAuth(Credentials):
79-
def __init__(self, jwt: str, site_id=None, user_id_to_impersonate=None):
81+
def __init__(self, jwt: str, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None) -> None:
8082
if jwt is None:
8183
raise TabError("Must provide a JWT token when using JWT authentication")
8284
super().__init__(site_id, user_id_to_impersonate)
8385
self.jwt = jwt
8486

8587
@property
86-
def credentials(self):
88+
def credentials(self) -> dict[str, str]:
8789
return {"jwt": self.jwt}
8890

8991
def __repr__(self):

0 commit comments

Comments
 (0)