Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 14 additions & 32 deletions linodecli/configuration/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,7 @@ def default_username(self) -> str:
:returns: The `default-user` username or an empty string.
:rtype: str
"""
if self.config.has_option("DEFAULT", "default-user"):
return self.config.get("DEFAULT", "default-user")

return ""
return self.config.get("DEFAULT", "default-user", fallback="")

def set_user(self, username: str):
"""
Expand Down Expand Up @@ -153,15 +150,11 @@ def get_token(self) -> str:
:rtype: str
"""
if self.used_env_token:
return os.environ.get(ENV_TOKEN_NAME, None)
return os.getenv(ENV_TOKEN_NAME, None)

if self.config.has_option(
self.username or self.default_username(), "token"
):
return self.config.get(
self.username or self.default_username(), "token"
)
return ""
return self.config.get(
self.username or self.default_username(), "token", fallback=""
)

def get_value(self, key: str) -> Optional[Any]:
"""
Expand All @@ -180,12 +173,9 @@ def get_value(self, key: str) -> Optional[Any]:
current user.
:rtype: any
"""
username = self.username or self.default_username()

if not self.config.has_option(username, key):
return None

return self.config.get(username, key)
return self.config.get(
self.username or self.default_username(), key, fallback=None
)

def get_bool(self, key: str) -> bool:
"""
Expand All @@ -204,12 +194,10 @@ def get_bool(self, key: str) -> bool:
current user.
:rtype: any
"""
username = self.username or self.default_username()

if not self.config.has_option(username, key):
return False

return self.config.getboolean(username, key)
return self.config.getboolean(
self.username or self.default_username(), key, fallback=False
)

# plugin methods - these are intended for plugins to utilize to store their
# own persistent config information
Expand Down Expand Up @@ -258,10 +246,7 @@ def plugin_get_value(self, key: str) -> Optional[Any]:
username = self.username or self.default_username() or "DEFAULT"
full_key = f"plugin-{self.running_plugin}-{key}"

if not self.config.has_option(username, full_key):
return None

return self.config.get(username, full_key)
return self.config.get(username, full_key, fallback=None)

# TODO: this is more of an argparsing function than it is a config function
# might be better to move this to argparsing during refactor and just have
Expand Down Expand Up @@ -308,11 +293,8 @@ def update(
# these don't get included in the updated namespace
if key.startswith("plugin-"):
continue
value = None
if self.config.has_option(username, key):
value = self.config.get(username, key)
else:
value = ns_dict[key]

value = self.config.get(username, key, fallback=ns_dict.get(key))

if not value:
continue
Expand Down
4 changes: 1 addition & 3 deletions linodecli/configuration/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,4 @@ def _config_get_with_default(
:returns: The value pulled from the config or the default value.
:rtype: Any
"""
return (
config.get(user, field) if config.has_option(user, field) else default
)
return config.get(user, field, fallback=default)