A few minor code cleanups and fixes (#47)

* Avoid exception if trying to delete missing "removed" key

`.pop(key)` throws an exception if that `key` is missing. Using a default value (in this case None) means we don't throw any errors when deleting a missing key. Which is what we want here, for safety. We just want to delete the key. We don't care if it's existing or not.

There are other places in the codebase that also use `.pop(key)`, but all of those first check the validity of the key before popping, so this was the only one that needed fixing.

* Improve performance by removing keys() calls

Every `.keys()` call create a new `[list...]` of all keys from the given dictionary. It's a total waste of performance, since we can already check if a key exists in a dictionary by just using `if "key" in the_dict`.

* Use more pythonic "not in" syntax

The syntax is supposed to be `if "thing" not in other_thing`. We already use this proper `not in` syntax everywhere else in the codebase. Just fixing this location.
This commit is contained in:
Bananaman
2023-03-31 15:24:02 +02:00
committed by GitHub
parent 780fd0a09f
commit 77b083e219
4 changed files with 9 additions and 9 deletions

View File

@@ -53,9 +53,9 @@ class game(Gtk.Box): # pylint: disable=invalid-name
self.hidden = data["hidden"]
self.last_played = data["last_played"]
self.name = data["name"]
self.developer = data["developer"] if "developer" in data.keys() else None
self.removed = "removed" in data.keys()
self.blacklisted = "blacklisted" in data.keys()
self.developer = data["developer"] if "developer" in data else None
self.removed = "removed" in data
self.blacklisted = "blacklisted" in data
self.pixbuf = self.get_cover()
@@ -125,7 +125,7 @@ class game(Gtk.Box): # pylint: disable=invalid-name
def get_cover(self):
# If the cover is already in memory, return
if self.game_id in self.parent_widget.pixbufs.keys():
if self.game_id in self.parent_widget.pixbufs:
return self.parent_widget.pixbufs[self.game_id]
# Create a new pixbuf

View File

@@ -285,7 +285,7 @@ class PreferencesWindow(Adw.PreferencesWindow):
def undo_remove_all(self, _widget, _unused):
for game_id in self.removed_games:
data = get_games([game_id])[game_id]
if "removed" in data.keys():
if "removed" in data:
data.pop("removed")
save_game(data)
self.parent_widget.update_games(self.removed_games)
@@ -294,7 +294,7 @@ class PreferencesWindow(Adw.PreferencesWindow):
def remove_all_games(self, _widget):
for game in get_games().values():
if not "removed" in game.keys():
if "removed" not in game:
self.removed_games.append(game["game_id"])
game["removed"] = True
save_game(game)

View File

@@ -57,7 +57,7 @@ class Importer:
self.games_no += 1
save_game(values)
self.parent_widget.update_games([values["game_id"]])
if "blacklisted" in values.keys():
if "blacklisted" in values:
self.games_no -= 1
self.queue -= 1

View File

@@ -87,7 +87,7 @@ class CartridgesWindow(Adw.ApplicationWindow):
)
current_games = get_games()
for current_game in current_games:
if "removed" in current_games[current_game].keys():
if "removed" in current_games[current_game]:
os.remove(
os.path.join(
os.getenv("XDG_DATA_HOME")
@@ -421,7 +421,7 @@ class CartridgesWindow(Adw.ApplicationWindow):
except IndexError:
return
data = get_games([game_id])[game_id]
data.pop("removed")
data.pop("removed", None)
save_game(data)
self.update_games([game_id])
self.toasts[game_id].dismiss()