--- a/eric6/Project/ProjectFile.py Wed Apr 14 19:38:19 2021 +0200 +++ b/eric6/Project/ProjectFile.py Wed Apr 14 19:59:16 2021 +0200 @@ -9,6 +9,7 @@ import json import time +import contextlib import typing from PyQt5.QtCore import QObject @@ -69,30 +70,24 @@ "SOURCES", "FORMS", "TRANSLATIONS", "TRANSLATIONEXCEPTIONS", "RESOURCES", "INTERFACES", "PROTOCOLS", "OTHERS" ): - try: + with contextlib.suppress(KeyError): projectDict["project"][key] = [ Utilities.fromNativeSeparators(f) for f in projectDict["project"][key] ] - except KeyError: - # ignore non-existent elements - pass for key in ( "SPELLWORDS", "SPELLEXCLUDES", "TRANSLATIONPATTERN", "TRANSLATIONSBINPATH", "MAINSCRIPT" ): - try: + with contextlib.suppress(KeyError): projectDict["project"][key] = Utilities.fromNativeSeparators( projectDict["project"][key]) - except KeyError: - # ignore non-existent elements - pass try: jsonString = json.dumps(projectDict, indent=2, sort_keys=True) with open(filename, "w", newline="") as f: f.write(jsonString) - except (TypeError, EnvironmentError) as err: + except (TypeError, OSError) as err: with E5OverridenCursor(): E5MessageBox.critical( None, @@ -119,7 +114,7 @@ with open(filename, "r") as f: jsonString = f.read() projectDict = json.loads(jsonString) - except (EnvironmentError, json.JSONDecodeError) as err: + except (OSError, json.JSONDecodeError) as err: E5MessageBox.critical( None, self.tr("Read Project File"), @@ -135,24 +130,18 @@ "SOURCES", "FORMS", "TRANSLATIONS", "TRANSLATIONEXCEPTIONS", "RESOURCES", "INTERFACES", "PROTOCOLS", "OTHERS" ): - try: + with contextlib.suppress(KeyError): projectDict["project"][key] = [ Utilities.toNativeSeparators(f) for f in projectDict["project"][key] ] - except KeyError: - # ignore non-existent elements - pass for key in ( "SPELLWORDS", "SPELLEXCLUDES", "TRANSLATIONPATTERN", "TRANSLATIONSBINPATH", "MAINSCRIPT" ): - try: + with contextlib.suppress(KeyError): projectDict["project"][key] = Utilities.toNativeSeparators( projectDict["project"][key]) - except KeyError: - # ignore non-existent elements - pass self.__project.pdata = projectDict["project"]