Skip to content

Commit

Permalink
fix comparing types and use isinstance (#105)
Browse files Browse the repository at this point in the history
  • Loading branch information
rgildein authored Aug 22, 2023
1 parent 8c3034c commit 57e7a6f
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
4 changes: 2 additions & 2 deletions lib/charms/operator_libs_linux/v0/apt.py
Original file line number Diff line number Diff line change
Expand Up @@ -748,7 +748,7 @@ def add_package(

packages = {"success": [], "retry": [], "failed": []}

package_names = [package_names] if type(package_names) is str else package_names
package_names = [package_names] if isinstance(package_names, str) else package_names
if not package_names:
raise TypeError("Expected at least one package name to add, received zero!")

Expand Down Expand Up @@ -818,7 +818,7 @@ def remove_package(
"""
packages = []

package_names = [package_names] if type(package_names) is str else package_names
package_names = [package_names] if isinstance(package_names, str) else package_names
if not package_names:
raise TypeError("Expected at least one package name to add, received zero!")

Expand Down
8 changes: 4 additions & 4 deletions lib/charms/operator_libs_linux/v0/passwd.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ def user_exists(user: Union[str, int]) -> Optional[pwd.struct_passwd]:
TypeError: where neither a string or int is passed as the first argument
"""
try:
if type(user) is int:
if isinstance(user, int) and not isinstance(user, bool):
return pwd.getpwuid(user)
elif type(user) is str:
elif isinstance(user, str):
return pwd.getpwnam(user)
else:
raise TypeError("specified argument '%r' should be a string or int", user)
Expand All @@ -79,9 +79,9 @@ def group_exists(group: Union[str, int]) -> Optional[grp.struct_group]:
TypeError: where neither a string or int is passed as the first argument
"""
try:
if type(group) is int:
if isinstance(group, int) and not isinstance(group, bool):
return grp.getgrgid(group)
elif type(group) is str:
elif isinstance(group, str):
return grp.getgrnam(group)
else:
raise TypeError("specified argument '%r' should be a string or int", group)
Expand Down
6 changes: 3 additions & 3 deletions lib/charms/operator_libs_linux/v2/snap.py
Original file line number Diff line number Diff line change
Expand Up @@ -898,11 +898,11 @@ def add(
if not channel and not revision:
channel = "latest"

snap_names = [snap_names] if type(snap_names) is str else snap_names
snap_names = [snap_names] if isinstance(snap_names, str) else snap_names
if not snap_names:
raise TypeError("Expected at least one snap to add, received zero!")

if type(state) is str:
if isinstance(state, str):
state = SnapState(state)

return _wrap_snap_operations(snap_names, state, channel, classic, cohort, revision)
Expand All @@ -918,7 +918,7 @@ def remove(snap_names: Union[str, List[str]]) -> Union[Snap, List[Snap]]:
Raises:
SnapError if some snaps failed to install.
"""
snap_names = [snap_names] if type(snap_names) is str else snap_names
snap_names = [snap_names] if isinstance(snap_names, str) else snap_names
if not snap_names:
raise TypeError("Expected at least one snap to add, received zero!")

Expand Down

0 comments on commit 57e7a6f

Please sign in to comment.