Add a mechanism to sanitize options.
This simplifies usage of the Scour module while avoiding any compatibility issues that might be caused by adding/removing/renaming options.
This commit is contained in:
parent
1a9d6119e0
commit
e701acdc25
1 changed files with 15 additions and 2 deletions
|
|
@ -2866,8 +2866,9 @@ def serializeXML(element, options, ind = 0, preserveWhitespace = False):
|
||||||
# input is a string representation of the input XML
|
# input is a string representation of the input XML
|
||||||
# returns a string representation of the output XML
|
# returns a string representation of the output XML
|
||||||
def scourString(in_string, options=None):
|
def scourString(in_string, options=None):
|
||||||
if options is None:
|
# sanitize options (take missing attributes from defaults, discard unknown attributes)
|
||||||
options = _options_parser.get_default_values()
|
options = sanitizeOptions(options)
|
||||||
|
|
||||||
getcontext().prec = options.digits
|
getcontext().prec = options.digits
|
||||||
global numAttrsRemoved
|
global numAttrsRemoved
|
||||||
global numStylePropsFixed
|
global numStylePropsFixed
|
||||||
|
|
@ -3289,6 +3290,18 @@ def generateDefaultOptions():
|
||||||
return Struct(**d)
|
return Struct(**d)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# sanitizes options by updating attributes in a set of defaults options while discarding unknown attributes
|
||||||
|
def sanitizeOptions(options):
|
||||||
|
optionsDict = dict((key, getattr(options, key)) for key in dir(options) if not key.startswith('__'))
|
||||||
|
|
||||||
|
sanitizedOptions = _options_parser.get_default_values()
|
||||||
|
sanitizedOptions._update_careful(optionsDict)
|
||||||
|
|
||||||
|
return sanitizedOptions
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def start(options, input, output):
|
def start(options, input, output):
|
||||||
|
|
||||||
start = walltime()
|
start = walltime()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue