Skip to content

Commit b2bb8f0

Browse files
authored
Added reporting for CLI token commands (#2297)
1 parent 68487d2 commit b2bb8f0

File tree

4 files changed

+40
-15
lines changed

4 files changed

+40
-15
lines changed

deeplake/cli/auth.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
save_reporting_config,
1111
get_reporting_config,
1212
deeplake_reporter,
13+
set_username,
1314
)
1415
from deeplake.util.exceptions import AuthenticationException, LoginException
1516

@@ -33,6 +34,7 @@ def login(username: str, password: str, token: str):
3334
)
3435
username = click.prompt("Username")
3536
password = click.prompt("Password", hide_input=True)
37+
# username_reporting = username
3638
if not password:
3739
password = click.prompt(
3840
f"Please enter password for user {username}", hide_input=True
@@ -52,10 +54,12 @@ def login(username: str, password: str, token: str):
5254
"Invalid API token. Please make sure the token is correct and try again."
5355
)
5456
write_token(token)
57+
username = client.get_user_profile()["name"]
5558
click.echo("Successfully logged in to Activeloop.")
5659
reporting_config = get_reporting_config()
5760
if reporting_config.get("username") != username:
5861
save_reporting_config(True, username=username)
62+
set_username(deeplake_reporter, username)
5963
break
6064
except AuthenticationException:
6165
chances -= 1

deeplake/client/client.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,15 @@ class DeepLakeBackendClient:
5050
"""Communicates with Activeloop Backend"""
5151

5252
def __init__(self, token: Optional[str] = None):
53+
from deeplake.util.bugout_reporter import (
54+
save_reporting_config,
55+
get_reporting_config,
56+
deeplake_reporter,
57+
set_username,
58+
)
59+
5360
self.version = deeplake.__version__
61+
self._token_from_env = False
5462
self.auth_header = None
5563
self.token = token or self.get_token()
5664
self.auth_header = f"Bearer {self.token}"
@@ -62,13 +70,22 @@ def __init__(self, token: Optional[str] = None):
6270
remove_token()
6371
self.token = token or self.get_token()
6472
self.auth_header = f"Bearer {self.token}"
73+
if self._token_from_env:
74+
username = self.get_user_profile()["name"]
75+
if get_reporting_config().get("username") != username:
76+
save_reporting_config(True, username=username)
77+
set_username(deeplake_reporter, username)
6578

6679
def get_token(self):
6780
"""Returns a token"""
68-
token = read_token()
81+
self._token_from_env = False
82+
token = read_token(from_env=False)
6983
if token is None:
70-
token = self.request_auth_token(username="public", password="")
71-
84+
token = read_token(from_env=True)
85+
if token is None:
86+
token = self.request_auth_token(username="public", password="")
87+
else:
88+
self._token_from_env = True
7289
return token
7390

7491
def request(

deeplake/client/utils.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,14 @@ def write_token(token: str):
3535
f.write(token)
3636

3737

38-
def read_token():
38+
def read_token(from_env=True):
3939
"""Returns the token. Searches for the token first in token file and then in enviroment variables."""
4040
token = None
4141
if os.path.exists(TOKEN_FILE_PATH):
4242
with open(TOKEN_FILE_PATH) as f:
4343
token = f.read()
44-
else:
44+
elif from_env:
4545
token = os.environ.get(DEEPLAKE_AUTH_TOKEN)
46-
4746
return token
4847

4948

deeplake/util/bugout_reporter.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,17 @@ def blacklist_token_parameters_fn(params: Dict[str, Any]) -> Dict[str, Any]:
119119
tags=[],
120120
)
121121

122+
123+
def set_username(reporter: HumbugReporter, username: str) -> None:
124+
index, current_username = find_current_username(reporter)
125+
126+
if current_username is None:
127+
reporter.tags.append(f"username:{username}")
128+
else:
129+
if f"username:{username}" != current_username:
130+
reporter.tags[index] = f"username:{username}"
131+
132+
122133
hub_user = bugout_reporting_config.get("username")
123134
if hub_user is not None:
124135
deeplake_reporter.tags.append(f"username:{hub_user}")
@@ -145,22 +156,16 @@ def feature_report_path(
145156
client = DeepLakeBackendClient(token=token)
146157
username = client.get_user_profile()["name"]
147158

148-
index, current_username = find_current_username()
149-
150-
if current_username is None:
151-
deeplake_reporter.tags.append(f"username:{username}")
152-
else:
153-
if f"username:{username}" != current_username:
154-
deeplake_reporter.tags[index] = f"username:{username}"
159+
set_username(deeplake_reporter, username)
155160

156161
deeplake_reporter.feature_report(
157162
feature_name=feature_name,
158163
parameters=parameters,
159164
)
160165

161166

162-
def find_current_username():
163-
for index, tag in enumerate(deeplake_reporter.tags):
167+
def find_current_username(reporter: HumbugReporter):
168+
for index, tag in enumerate(reporter.tags):
164169
if "username" in tag:
165170
return index, tag
166171
return None, None

0 commit comments

Comments
 (0)