sources: Handle all OSErrors when reading files
This commit is contained in:
@@ -39,7 +39,7 @@ class Application(Adw.Application):
|
|||||||
for source in sources:
|
for source in sources:
|
||||||
try:
|
try:
|
||||||
yield from source.get_games(skip_ids=skip_ids)
|
yield from source.get_games(skip_ids=skip_ids)
|
||||||
except FileNotFoundError:
|
except OSError:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ class _StoreSource(_Source):
|
|||||||
try:
|
try:
|
||||||
with (_config_dir() / cls._INSTALLED_PATH).open() as fp:
|
with (_config_dir() / cls._INSTALLED_PATH).open() as fp:
|
||||||
data = json.load(fp)
|
data = json.load(fp)
|
||||||
except (FileNotFoundError, JSONDecodeError):
|
except (OSError, JSONDecodeError):
|
||||||
return set()
|
return set()
|
||||||
|
|
||||||
return set(cls._installed(data))
|
return set(cls._installed(data))
|
||||||
@@ -130,7 +130,7 @@ def _hidden_app_names() -> Generator[str]:
|
|||||||
try:
|
try:
|
||||||
with (_config_dir() / "store" / "config.json").open() as fp:
|
with (_config_dir() / "store" / "config.json").open() as fp:
|
||||||
config = json.load(fp)
|
config = json.load(fp)
|
||||||
except (FileNotFoundError, JSONDecodeError):
|
except (OSError, JSONDecodeError):
|
||||||
return
|
return
|
||||||
|
|
||||||
with suppress(TypeError, KeyError):
|
with suppress(TypeError, KeyError):
|
||||||
@@ -145,7 +145,7 @@ def _games_from(
|
|||||||
try:
|
try:
|
||||||
with (_config_dir() / source.library_path()).open() as fp:
|
with (_config_dir() / source.library_path()).open() as fp:
|
||||||
library = json.load(fp)
|
library = json.load(fp)
|
||||||
except (FileNotFoundError, JSONDecodeError):
|
except (OSError, JSONDecodeError):
|
||||||
return
|
return
|
||||||
|
|
||||||
if not isinstance(library := library.get(source.LIBRARY_KEY), Iterable):
|
if not isinstance(library := library.get(source.LIBRARY_KEY), Iterable):
|
||||||
|
|||||||
Reference in New Issue
Block a user