Error logging and mutables as function defaults (#930)

* Remove mutable iterables as function defaults
* Improve error reporting and standardise how it's done
This commit is contained in:
Veronica Berglyd Olsen
2021-11-10 00:32:01 +01:00
committed by GitHub
parent 67d2e266fd
commit 00eea24e3f
15 changed files with 88 additions and 65 deletions
+17 -13
View File
@@ -37,14 +37,15 @@ from PyQt5.QtCore import QCoreApplication
from novelwriter.core.tree import NWTree
from novelwriter.core.item import NWItem
from novelwriter.core.document import NWDoc
from novelwriter.core.status import NWStatus
from novelwriter.core.options import OptionState
from novelwriter.core.document import NWDoc
from novelwriter.enum import nwItemType, nwItemClass, nwItemLayout, nwAlert
from novelwriter.error import logException
from novelwriter.common import (
checkString, checkBool, checkInt, isHandle, formatTimeStamp,
makeFileNameSafe, hexToInt
)
from novelwriter.enum import nwItemType, nwItemClass, nwItemLayout, nwAlert
from novelwriter.constants import trConst, nwFiles, nwLabels
logger = logging.getLogger(__name__)
@@ -236,10 +237,13 @@ class NWProject():
return
def newProject(self, projData={}):
def newProject(self, projData=None):
"""Create a new project by populating the project tree with a
few starter items.
"""
if projData is None:
projData = {}
popMinimal = projData.get("popMinimal", True)
popCustom = projData.get("popCustom", False)
popSample = projData.get("popSample", False)
@@ -1252,7 +1256,7 @@ class NWProject():
except Exception:
logger.error("Failed to project language file")
novelwriter.logException()
logException()
return False
return True
@@ -1277,7 +1281,7 @@ class NWProject():
except Exception:
logger.error("Failed to read project lockfile")
novelwriter.logException()
logException()
return ["ERROR"]
return theLines
@@ -1298,7 +1302,7 @@ class NWProject():
except Exception:
logger.error("Failed to write project lockfile")
novelwriter.logException()
logException()
return False
return True
@@ -1315,7 +1319,7 @@ class NWProject():
os.unlink(lockFile)
except Exception:
logger.error("Failed to remove project lockfile")
novelwriter.logException()
logException()
return False
return True
@@ -1488,7 +1492,7 @@ class NWProject():
except Exception:
logger.error("Failed to write session stats file")
novelwriter.logException()
logException()
return False
return True
@@ -1526,7 +1530,7 @@ class NWProject():
except Exception:
errList.append(self.tr("Could not move: {0}").format(theFile))
logger.error("Could not move: %s", theFile)
novelwriter.logException()
logException()
elif len(dataItem) == 21 and dataItem.endswith("_main.bak"):
try:
@@ -1535,7 +1539,7 @@ class NWProject():
except Exception:
errList.append(self.tr("Could not delete: {0}").format(theFile))
logger.error("Could not delete: %s", theFile)
novelwriter.logException()
logException()
else:
theErr = self._moveUnknownItem(theData, dataItem)
@@ -1549,7 +1553,7 @@ class NWProject():
except Exception:
errList.append(self.tr("Could not delete: {0}").format(theFolder))
logger.error("Could not delete: %s", theFolder)
novelwriter.logException()
logException()
return errList
@@ -1569,7 +1573,7 @@ class NWProject():
logger.info("Moved to junk: %s", theSrc)
except Exception:
logger.error("Could not move item %s to junk", theSrc)
novelwriter.logException()
logException()
return self.tr("Could not move item {0} to {1}.").format(theSrc, theJunk)
return ""
@@ -1604,7 +1608,7 @@ class NWProject():
os.unlink(rmFile)
except Exception:
logger.error("Could not delete: %s", rmFile)
novelwriter.logException()
logException()
return False
return True