Moved the value check functions to a common.py file

This commit is contained in:
Veronica K. B. Olsen
2019-05-12 15:47:02 +02:00
parent 00cc5617a5
commit 3ce2bb8a0e
3 changed files with 65 additions and 60 deletions
+52
View File
@@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
"""novelWriter Common Functions
novelWriter Common Functions
================================
Various functions used multiple places
File History:
Created: 2019-05-12 [0.1.0]
"""
import logging
import nw
logger = logging.getLogger(__name__)
def checkString(checkValue, defaultValue, allowNone=False):
if allowNone:
if checkValue == None: return None
if checkValue == "None": return None
if isinstance(checkValue,str): return str(checkValue)
return defaultValue
def checkInt(checkValue, defaultValue, allowNone=False):
if allowNone:
if checkValue == None: return None
if checkValue == "None": return None
try:
return int(checkValue)
except:
return defaultValue
def checkBool(checkValue, defaultValue, allowNone=False):
if allowNone:
if checkValue == None: return None
if checkValue == "None": return None
if isinstance(checkValue, str):
if checkValue == "True":
return True
elif checkValue == "False":
return False
else:
return defaultValue
elif isinstance(checkValue, int):
if checkValue == 1:
return True
elif checkValue == 0:
return False
else:
return defaultValue
return defaultValue
+9 -21
View File
@@ -13,11 +13,12 @@
import logging import logging
import nw import nw
from os import path, mkdir from os import path, mkdir
from lxml import etree from lxml import etree
from datetime import datetime from datetime import datetime
from nw.enum import nwItemType, nwItemClass, nwItemLayout from nw.enum import nwItemType, nwItemClass, nwItemLayout
from nw.common import checkInt
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -153,7 +154,7 @@ class NWItem():
return return
def setStatus(self, theStatus): def setStatus(self, theStatus):
theStatus = self._checkInt(theStatus,0) theStatus = checkInt(theStatus,0)
self.itemStatus = theStatus self.itemStatus = theStatus
return return
@@ -169,31 +170,18 @@ class NWItem():
## ##
def setCharCount(self, theCount): def setCharCount(self, theCount):
theCount = self._checkInt(theCount,0) theCount = checkInt(theCount,0)
self.charCount = theCount self.charCount = theCount
return return
def setWordCount(self, theCount): def setWordCount(self, theCount):
theCount = self._checkInt(theCount,0) theCount = checkInt(theCount,0)
self.wordCount = theCount self.wordCount = theCount
return return
def setParaCount(self, theCount): def setParaCount(self, theCount):
theCount = self._checkInt(theCount,0) theCount = checkInt(theCount,0)
self.paraCount = theCount self.paraCount = theCount
return return
##
# Internal Functions
##
def _checkInt(self,checkValue,defaultValue,allowNone=False):
if allowNone:
if checkValue == None: return None
if checkValue == "None": return None
try:
return int(checkValue)
except:
return defaultValue
# END Class NWItem # END Class NWItem
+4 -39
View File
@@ -20,6 +20,7 @@ from datetime import datetime
from time import time from time import time
from nw.enum import nwItemType, nwItemClass, nwItemLayout from nw.enum import nwItemType, nwItemClass, nwItemLayout
from nw.common import checkString, checkBool
from nw.project.item import NWItem from nw.project.item import NWItem
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -197,7 +198,7 @@ class NWProject():
for xItem in xChild: for xItem in xChild:
if xItem.text is None: continue if xItem.text is None: continue
if xItem.tag == "spellCheck": if xItem.tag == "spellCheck":
self.spellCheck = self._checkBool(xItem.text,False) self.spellCheck = checkBool(xItem.text,False)
elif xChild.tag == "content": elif xChild.tag == "content":
logger.debug("Found project content") logger.debug("Found project content")
for xItem in xChild: for xItem in xChild:
@@ -427,8 +428,8 @@ class NWProject():
return return
def _appendItem(self, tHandle, pHandle, nwItem): def _appendItem(self, tHandle, pHandle, nwItem):
tHandle = self._checkString(tHandle,self._makeHandle(),False) tHandle = checkString(tHandle,self._makeHandle(),False)
pHandle = self._checkString(pHandle,None,True) pHandle = checkString(pHandle,None,True)
logger.verbose("Adding entry %s with parent %s" % (str(tHandle),str(pHandle))) logger.verbose("Adding entry %s with parent %s" % (str(tHandle),str(pHandle)))
nwItem.setHandle(tHandle) nwItem.setHandle(tHandle)
@@ -466,40 +467,4 @@ class NWProject():
itemHandle = self._makeHandle(addSeed+"!") itemHandle = self._makeHandle(addSeed+"!")
return itemHandle return itemHandle
def _checkString(self,checkValue,defaultValue,allowNone=False):
if allowNone:
if checkValue == None: return None
if checkValue == "None": return None
if isinstance(checkValue,str): return str(checkValue)
return defaultValue
def _checkInt(self,checkValue,defaultValue,allowNone=False):
if allowNone:
if checkValue == None: return None
if checkValue == "None": return None
try:
return int(checkValue)
except:
return defaultValue
def _checkBool(self,checkValue,defaultValue,allowNone=False):
if allowNone:
if checkValue == None: return None
if checkValue == "None": return None
if isinstance(checkValue, str):
if checkValue == "True":
return True
elif checkValue == "False":
return False
else:
return defaultValue
elif isinstance(checkValue, int):
if checkValue == 1:
return True
elif checkValue == 0:
return False
else:
return defaultValue
return defaultValue
# END Class NWProject # END Class NWProject