Skip to content

Commit d970566

Browse files
usability tweaks (#17)
* add download badge to README * read the docs badge * CLI UX feedback when logging in, since it's not always obvious what it is doing. * add the ability to hide builtin profiles for better UX
1 parent f347dde commit d970566

File tree

4 files changed

+33
-8
lines changed

4 files changed

+33
-8
lines changed

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Planet Auth Utility Library
22
[![Build Status](https://github.com/planetlabs/planet-auth-python/actions/workflows/test.yml/badge.svg)](https://github.com/planetlabs/planet-auth-python/actions/workflows/test.yml)
3+
[![PyPI Downloads](https://static.pepy.tech/badge/planet-auth)](https://pepy.tech/projects/planet-auth)
4+
[![Read The Docs](https://app.readthedocs.org/projects/planet-auth/badge/)](https://planet-auth.readthedocs.io/)
35

46
The Planet Auth Library provides generic authentication utilities for clients
57
and for services. For clients, it provides means to obtain access tokens that

src/planet_auth_utils/commands/cli/main.py

+1
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ def cmd_plauth_login(
206206
# auth_password_opt=auth_password,
207207
)
208208

209+
print(f"Logging in with authentication profile {override_auth_context.profile_name()}...")
209210
_ = override_auth_context.login(
210211
requested_scopes=scope,
211212
requested_audiences=audience,

src/planet_auth_utils/commands/cli/oauth_cmd.py

+1
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ def cmd_oauth_login(
114114
login_extra["organization"] = organization
115115

116116
current_auth_context = ctx.obj["AUTH"]
117+
print(f"Logging in with authentication profile {current_auth_context.profile_name()}...")
117118
current_auth_context.login(
118119
requested_scopes=scope,
119120
requested_audiences=audience,

src/planet_auth_utils/commands/cli/profile_cmd.py

+29-8
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,18 @@ def _dialogue_choose_auth_client_type():
6161

6262

6363
def _dialogue_choose_auth_profile():
64-
all_profile_names = Builtins.builtin_profile_names() + Profile.list_on_disk_profiles()
64+
filtered_builtin_profile_names = []
65+
for profile_name in Builtins.builtin_profile_names():
66+
config_dict = Builtins.builtin_profile_auth_client_config_dict(profile_name)
67+
# The idea of a "hidden" profile currently only applies to built-in profiles.
68+
# This is largely so we can have partial SKEL profiles.
69+
if not config_dict.get("_hidden", False):
70+
filtered_builtin_profile_names.append(profile_name)
71+
72+
filtered_builtin_profile_names.sort()
73+
sorted_on_disk_profile_names = Profile.list_on_disk_profiles().copy()
74+
sorted_on_disk_profile_names.sort()
75+
all_profile_names = filtered_builtin_profile_names + sorted_on_disk_profile_names
6576
choices = []
6677
for profile_name in all_profile_names:
6778
choices.append((profile_name, f"{profile_name}"))
@@ -129,21 +140,31 @@ def cmd_profile_list(long):
129140
display_object = OrderedDict()
130141
for profile_name in profile_names:
131142
config_dict = Builtins.builtin_profile_auth_client_config_dict(profile_name)
132-
display_object[profile_name] = config_dict
143+
# The idea of a "hidden" profile currently only applies to built-in profiles.
144+
# This is largely so we can have partial SKEL profiles.
145+
if not config_dict.get("_hidden", False):
146+
display_object[profile_name] = config_dict
133147
print_obj(display_object)
134148

135149
click.echo("\nLocally defined profiles:")
136150
print_obj(_load_all_on_disk_profiles())
137151

138152
else:
139153
click.echo("Built-in profiles:")
140-
profile_names = Builtins.builtin_profile_names().copy()
141-
profile_names.sort()
142-
print_obj(profile_names)
154+
display_profile_names = []
155+
for profile_name in Builtins.builtin_profile_names():
156+
config_dict = Builtins.builtin_profile_auth_client_config_dict(profile_name)
157+
# The idea of a "hidden" profile currently only applies to built-in profiles.
158+
# This is largely so we can have partial SKEL profiles.
159+
if not config_dict.get("_hidden", False):
160+
display_profile_names.append(profile_name)
161+
display_profile_names.sort()
162+
print_obj(display_profile_names)
163+
143164
click.echo("\nLocally defined profiles:")
144-
profile_names = Profile.list_on_disk_profiles()
145-
profile_names.sort()
146-
print_obj(profile_names)
165+
display_profile_names = Profile.list_on_disk_profiles()
166+
display_profile_names.sort()
167+
print_obj(display_profile_names)
147168

148169

149170
@cmd_profile.command("create")

0 commit comments

Comments
 (0)